Ваш 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
говорит, что он закрыт.