O 127.0.0.1:2626
da saída netstat indica que seu script python está aceitando apenas conexões em 127.0.0.1
. Se você deseja aceitar conexões de qualquer endereço, aceite as conexões em 0.0.0.0
Eu escrevi um script python para ouvir na porta 2626 e executar o script.
prova de que localhost está escutando
tcp 0 0 127.0.0.1:2626 0.0.0.0:* LISTEN
Eu posso conectar via telnet a esta porta através de localhost com o seguinte comando:
:~$ telnet localhost 2626
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
No entanto, quando tento me conectar de uma máquina remota, a conexão é recusada.
:~$ telnet 128.251.xxx.xxx 2626
Trying 128.251.xxx.xxx...
telnet: Unable to connect to remote host: Connection refused
Até emiti o seguinte comando para aceitar tráfego na porta 2626:
sudo iptables -A INPUT -p tcp -i eth0 --dport 2626 -j ACCEPT
Qual poderia ser a razão pela qual o telnet na porta 2626 está recusando conexões de máquinas remotas e como posso corrigi-las?
O 127.0.0.1:2626
da saída netstat indica que seu script python está aceitando apenas conexões em 127.0.0.1
. Se você deseja aceitar conexões de qualquer endereço, aceite as conexões em 0.0.0.0
Essa saída mostra que seu programa está ouvindo apenas 127.0.0.1
. Soquetes de escuta (portas abertas) são ligados a uma interface específica, como neste caso, ou a todas as interfaces (caso em que você verá 0.0.0.0
como uma notação para 'qualquer endereço'). As implicações de vincular-se a 127.0.0.1
são apenas que as conexões através dessa interface irão para o soquete de escuta e, portanto, para o seu programa. Se você estiver usando a biblioteca socket
do python, ligue-se ao seu IP externo na chamada bind()
ou vincule-se a todos os IPs, algo assim:
>>> import socket
>>> s = socket.socket()
>>> s.bind(('', 6666))
>>> s.listen(1)
que dá o resultado que você quer do netstat
tcp 0 0 0.0.0.0:6666 0.0.0.0:* LISTEN
e de fato pode ser conectado a partir de outra máquina
ial@roach> telnet polihale 6666
Trying 128.243.20.139...
Connected to polihale.
Escape character is '^]'.