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

21

У меня 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:
Мухаммед Могими
источник

Ответы:

25

Ваш 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 вашего сетевого адаптера или универсальный 0.0.0.0 IP. Проблема в том, что я написал выше, ни одна программа не слушает порт 8000 (из внешнего мира), поэтому nmapговорит, что он закрыт.

сокольничий
источник
Я добавил nmap с той же машины. На самом деле есть программа прослушивания 8000
Мохаммад Могими
@MohammadMoghimi Пожалуйста, запустите sudo netstat -tulpnна машине, на которой вы пытаетесь открыть порт, и опубликуйте вывод.
сокольничий
pastebin.com/xhwc6vMN MYIP - мой IP-адрес.
Мохаммад Могими
@MohammadMoghimi Я обновил свой ответ, ваша программа только прослушивает locahost, вот в чем проблема, смотрите мое обновление.
сокольничий
Право сокольника. Измените вашу программу на прослушивание 0.0.0.0 или IP-адрес вашей локальной сети вместо 127.0.0.1.
Ксавье Дж
1

Включить порт в Ubuntu

sudo ufw allow <port_nr>

например, чтобы разрешить SSH

sudo ufw allow 22

sudo ufw enable

Вот и все

Mayur Bhandare
источник
1
Ради бога, НЕ НАПИСАТЬ ЭТО. Будут новички, которые не смогут получить доступ к своим серверам после включения sudo ufw
Vasile