Esta é uma pergunta canônica sobre conexão recusada
Vemos muitas perguntas para o efeito
Quando tento me conectar a um sistema, recebo uma mensagem
Ligação recusada
Por que é isso ?
Esta é uma pergunta canônica sobre conexão recusada
Vemos muitas perguntas para o efeito
Quando tento me conectar a um sistema, recebo uma mensagem
Ligação recusada
Por que é isso ?
Respostas:
Nota : Esta mensagem é um sintoma do problema que você está tentando resolver. A compreensão da causa da mensagem acabará por levá-lo a resolver seu problema.
A mensagem 'Conexão recusada' tem duas causas principais:
Nenhum processo está escutando.
Esse é de longe o motivo mais comum para a mensagem. Primeiro verifique se você está tentando se conectar ao sistema correto. Se você deve determinar se esse é o problema, no sistema remoto, execute netstat ou ss 1, por exemplo, se você espera que um processo esteja escutando na porta 22222
sudo netstat -tnlp | grep :22222
ou
ss -tnlp | grep :22222
Para OSX, um comando adequado é
sudo netstat -tnlp tcp | grep '\.80 '
Se nada estiver ouvindo, o item acima não produzirá saída. Se você vir alguma saída, confirme se é o que você espera, consulte a seção de firewall abaixo.
Se você não tem acesso ao sistema remoto e deseja confirmar o problema antes de relatá-lo aos administradores relevantes, pode usar o tcpdump (wireshark ou similar).
Quando uma conexão é tentada a uma porta IP: onde nada está escutando, a resposta do sistema remoto ao pacote SYN inicial é um pacote com os sinalizadores RST, ACK definidos. Isso fecha a conexão e causa a mensagem Conexão recusada, por exemplo
$ sudo tcpdump -n host 192.0.2.1 e porta 22222
tcpdump: saída detalhada suprimida, use -v ou -vv para decodificação de protocolo completo
escutando enp14s0, tipo de link EN10MB (Ethernet), tamanho da captura 262144 bytes
12: 31: 27.013976 IP 192.0.2.2.34390> 192.0.2.1.22222: Flags [S] , seq 1207858804, win 29200, opções [mss 1460, sackOK, TS val 15306344 ecr 0, nop, wscale 7], comprimento 0
12: 31: 27.020162 IP 192.0.2.1.22222> 192.0.2.2.34390: Flags [R.] , seq 0, ack 1207858805, vitória 0, comprimento 0
Observe que o tcpdump usa a . para representar a bandeira ACK .
A porta está bloqueada por um firewall
Se a porta estiver bloqueada por um firewall e o firewall tiver sido configurado para responder, icmp-port-unreachable
isso também causará uma mensagem de conexão recusada. Novamente, você pode ver isso com tcpdump (ou similar)
$ sudo tcpdump -n icmp
tcpdump: saída detalhada suprimida, use -v ou -vv para decodificação completa de protocolo
em escuta enp14s0, tipo de link EN10MB (Ethernet), tamanho de captura 262144 bytes 13: 03: 24.149897 IP 192.0.2.1> 192.0. 2.2: Porta 22222 tcp ICMP 192.0.2.1 inacessível, comprimento 68
Observe que isso também nos diz onde está o firewall de bloqueio.
Portanto, agora você sabe o que está causando a mensagem de recusa de conexão e deve tomar as medidas apropriadas, por exemplo, entre em contato com o administrador do firewall ou investigue o motivo pelo qual o processo não está escutando.
1 Outras ferramentas provavelmente estão disponíveis.
Para mim, no aperto Debian 6, era tão simples quanto verificar o serviço SSH :
sudo service ssh status
E não foi possível encontrar nada (com a mensagem ssh: unrecognized service
) apenas instalando o serviço :
sudo apt-get install openssh-server
Isso também funciona se você não estiver recebendo uma conexão SFTP, pois o SFTP é um subconjunto do SSH (enquanto o FTPS é um subconjunto do FTP).