У меня Ubuntu 12.04, и я не могу разрешить определенный порт в брандмауэре. Поэтому я в основном сказал, что позволю все, но это все еще не работает. Пожалуйста помоги. Nmap на этом компьютере с другого компьютера говорит:
$ nmap host_name
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
139/tcp open netbios-ssn
445/tcp open microsoft-ds
, а вот Nmap с того же компьютера
$ nmap localhost
Starting Nmap 5.21 ( http://nmap.org ) at 2014-01-21 11:14 PST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000080s latency).
Not shown: 991 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
80/tcp open http
139/tcp open netbios-ssn
445/tcp open microsoft-ds
631/tcp open ipp
3306/tcp open mysql
8000/tcp open http-alt
Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds
Я хочу открыть порт 8000, и вот вывод iptables.
# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
mmoghimi@titan:~$ sudo netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 14842/mysqld
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 982/smbd
tcp 0 0 127.0.0.1:39346 0.0.0.0:* LISTEN 3405/GoogleTalkPlug
tcp 0 0 127.0.0.1:50995 0.0.0.0:* LISTEN 3405/GoogleTalkPlug
tcp 0 0 127.0.0.1:5939 0.0.0.0:* LISTEN 2412/teamviewerd
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 2429/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 985/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1267/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1748/exim4
tcp 0 0 0.0.0.0:17500 0.0.0.0:* LISTEN 2885/dropbox
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 982/smbd
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN 4134/python
tcp6 0 0 :::139 :::* LISTEN 982/smbd
tcp6 0 0 :::80 :::* LISTEN 1832/apache2
tcp6 0 0 :::22 :::* LISTEN 985/sshd
tcp6 0 0 ::1:631 :::* LISTEN 1267/cupsd
tcp6 0 0 ::1:25 :::* LISTEN 1748/exim4
tcp6 0 0 :::445 :::* LISTEN 982/smbd
udp 0 0 127.0.0.1:53 0.0.0.0:* 2429/dnsmasq
udp 0 0 0.0.0.0:68 0.0.0.0:* 2403/dhclient
udp 0 0 128.54.44.214:123 0.0.0.0:* 3430/ntpd
udp 0 0 MYIP:123 0.0.0.0:* 3430/ntpd
udp 0 0 127.0.0.1:123 0.0.0.0:* 3430/ntpd
udp 0 0 0.0.0.0:123 0.0.0.0:* 3430/ntpd
udp 0 0 137.110.255.255:137 0.0.0.0:* 2602/nmbd
udp 0 0 MYIP:137 0.0.0.0:* 2602/nmbd
udp 0 0 128.54.47.255:137 0.0.0.0:* 2602/nmbd
udp 0 0 128.54.44.214:137 0.0.0.0:* 2602/nmbd
udp 0 0 0.0.0.0:137 0.0.0.0:* 2602/nmbd
udp 0 0 137.110.255.255:138 0.0.0.0:* 2602/nmbd
udp 0 0 MYIP:138 0.0.0.0:* 2602/nmbd
udp 0 0 128.54.47.255:138 0.0.0.0:* 2602/nmbd
udp 0 0 128.54.44.214:138 0.0.0.0:* 2602/nmbd
udp 0 0 0.0.0.0:138 0.0.0.0:* 2602/nmbd
udp 0 0 0.0.0.0:17500 0.0.0.0:* 2885/dropbox
udp 0 0 0.0.0.0:36889 0.0.0.0:* 1356/avahi-daemon:
udp 0 0 0.0.0.0:5353 0.0.0.0:* 1356/avahi-daemon:
udp6 0 0 ::1:123 :::* 3430/ntpd
udp6 0 0 fe80::fab1:56ff:fe9:123 :::* 3430/ntpd
udp6 0 0 fe80::3e77:e6ff:fe6:123 :::* 3430/ntpd
udp6 0 0 :::123 :::* 3430/ntpd
udp6 0 0 :::33792 :::* 1356/avahi-daemon:
udp6 0 0 :::5353 :::* 1356/avahi-daemon:
Ваш вывод 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), поэтому она доступна только от местного, а не снаружи. Программа должна прослушивать IP вашего сетевого адаптера или универсальный 0.0.0.0 IP. Проблема в том, что я написал выше, ни одна программа не слушает порт 8000 (из внешнего мира), поэтому nmap
говорит, что он закрыт. [Тысяча сто двадцать семь]
Включить порт в Ubuntu
sudo ufw allow <port_nr>
, например, разрешить ssh
sudo ufw allow 22
sudo ufw enable
Это ИТ