Eu quero depurar uma conexão SSL, então segui a resposta para esta pergunta e queria executar o primeiro teste:
# openssl s_client -connect SERVER_IP:PORT -state -debug
e obteve a seguinte saída:
socket: Connection refused
connect:errno=111
Eu procurei e descobri que não tem nada a ver com SSL, isso significa que o servidor não está sendo executado ou a porta está bloqueada pelo firewall. Eu entrei no servidor e verifiquei que, de fato, ele está em execução e que o PORT está aberto para ouvir todos os endereços IP:
# netstat -plan | grep PORT
tcp 0 0 0.0.0.0:PORT 0.0.0.0:* LISTEN PID/java
Aqui está a parte engraçada: quando eu usei o IP interno do meu servidor para executar o comando openssl acima, obtive a saída esperada.
O comportamento é o mesmo, independentemente de eu tentar conectar-me ao servidor a partir do cliente ou do próprio servidor.
Eu adicionei a porta ao iptables. Aqui está como eles se parecem agora:
# iptables -L -v | grep PORT
40 4252 ACCEPT tcp -- any any anywhere anywhere tcp dpt:PORT
0 0 ACCEPT tcp -- any any anywhere anywhere state NEW tcp dpt:PORT
Por que não consigo me conectar ao servidor usando o IP externo, mas funciona com o IP interno?
Editar: todas as minhas regras iptables
têm a palavra-chave ACCEPT
- o comando iptables -L -v | grep REJECT
não fornece saída.