Как открыть порт?

Ваш iptables вывод показывает, что ни один порт не заблокирован.

Итак, вопрос в следующем: прослушивается ли что-нибудь на порту 8000? Если порт не прослушивается, но порт не заблокирован брандмауэром nmap сообщит об этом как closed. Из здесь:

закрытый

Закрытый порт доступен (он принимает и отвечает на пробные пакеты Nmap), но на нем нет прослушивающего приложения. Они могут быть полезны для отображения того, что хост подключен к IP-адресу (обнаружение хоста или проверка ping), а также как часть обнаружения операционной системы. Поскольку закрытые порты доступны, возможно, стоит просканировать их позже на случай, если некоторые из них откроются. Администраторы могут захотеть рассмотреть возможность блокировки таких портов с помощью брандмауэра. Затем они появятся в отфильтрованном состоянии, обсуждаемом далее.

Так что nmap доклад: "996 closed ports" на самом деле говорят, что эти порты не заблокированы брандмауэром, но ни одна программа их не прослушивает. nmap сообщает о заблокированном порту как filtered:

фильтрованный

Nmap не может определить, открыт ли порт, поскольку фильтрация пакетов предотвращает попадание его зондов в порт. Фильтрация может осуществляться с помощью выделенного устройства брандмауэра, правил маршрутизатора или программного обеспечения брандмауэра на базе хоста. ...

Таким образом, если вы переведете приложение в состояние прослушивания на порту 8000, оно, скорее всего, появится в выходных данных nmap. Вы можете сделать это, если просто запустите python3 -m http.server или python -m SimpleHTTPServer на компьютере, на котором вы пытаетесь открыть порты, это приведет к тому, что HTTP-сервер будет прослушивать порт 8000. Затем беги nmap снова просканируйте машину.

ОБНОВЛЕНИЕ:

Ваш netstat на выходе есть эта строка:

tcp        0      0 127.0.0.1:8000          0.0.0.0:*               LISTEN      4134/python  

Это означает, что ваша программа python прослушивает только localhost (127.0.0.1), поэтому она доступна только с localhost, а не извне. Программа должна прослушивать IP-адрес вашего сетевого адаптера или универсальный IP-адрес 0.0.0.0. Проблема в том, что я написал выше, ни одна программа не прослушивает порт 8000 (из внешнего мира), поэтому nmap говорит, что он закрыт.