telnet отказывается от трафика на произвольном порту по сети в 11.10

Я написал сценарий Python для прослушивания на порту 2626 и выполнил сценарий.

доказательство того, что localhost прослушивает

tcp        0      0 127.0.0.1:2626          0.0.0.0:*               LISTEN

Я могу подключиться через telnet к этому порту через localhost с помощью следующей команды:

:~$ telnet localhost 2626
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

Однако, когда я попробуйте подключиться с удаленного компьютера, соединение будет отклонено.

 :~$ telnet 128.251.xxx.xxx 2626
 Trying 128.251.xxx.xxx...
 telnet: Unable to connect to remote host: Connection refused

Я даже выполнил следующую команду для приема трафика через порт 2626:

 sudo iptables -A INPUT -p tcp -i eth0 --dport 2626 -j ACCEPT

В чем может быть причина, по которой telnet на порту 2626 отказывается от соединений с удаленных компьютеров и как я могу это исправить?

3
задан 11 January 2012 в 17:33

2 ответа

127.0.0.1:2626 из вывода netstat указывает, что ваш скрипт на Python принимает соединения только на 127.0.0.1. Если вы хотите иметь возможность принимать соединения с любого адреса, пусть он принимает соединения на 0.0.0.0

0
ответ дан 11 January 2012 в 17:33

Этот вывод показывает, что ваша программа прослушивает только 127.0.0.1. Прослушивающие сокеты (открытые порты) либо привязаны к определенному интерфейсу, как в этом случае, либо ко всем интерфейсам (в этом случае вы увидите 0.0.0.0 как обозначение «любого адреса»). Последствия привязки только к 127.0.0.1 состоят в том, что только подключения через этот интерфейс будут идти к слушающему сокету и, следовательно, к вашей программе. Если вы используете библиотеку socket в python, либо связывайте свой внешний IP в вызове bind(), либо привязывайте ко всем IP, что-то вроде этого:

>>> import socket
>>> s = socket.socket()
>>> s.bind(('', 6666))
>>> s.listen(1)

, который дает желаемый результат netstat

tcp        0      0 0.0.0.0:6666            0.0.0.0:*               LISTEN

и действительно может быть подключен к другой машине

ial@roach> telnet polihale 6666
Trying 128.243.20.139...
Connected to polihale.
Escape character is '^]'.
0
ответ дан 11 January 2012 в 17:33

Другие вопросы по тегам:

Похожие вопросы: