Pode fazer ssh internamente, mas não externamente

Pode fazer ssh internamente, mas não externamente

Eu tenho um roteador/modem Netgear C6300 (firmware versão 2.01.14) e estou tentando com todas as minhas forças fazer ssh em meu raspberry pi externamente. Aqui está minha configuração de encaminhamento de porta: insira a descrição da imagem aqui

Posso ssh internamente usando ssh 192.168.0.84, mas externamente em canyouseeme.com recebo "Erro: não foi possível ver seu serviço na porta (22). Meu sshd_config tem a linha Port 22e as ListenAddresslinhas estão comentadas. Em outras palavras, não toquei nisso arquivo. O que está acontecendo aqui?

Responder1

Várias coisas vêm à minha mente.

O encaminhamento na sua captura de tela parece OK. Você poderia tentar configurá-lo TCPem vez de TCP/UDP, porque ssh é um protocolo TCP.

dindns

Tem certeza de que usa o nome de host atualizado dinamicamente correto ou o endereço IP público correto? Para encontrar seu endereço IP público, abra um console no Raspberry ou SSH (internamente) nele e use curl icanhazip.com.

sshd_config

Certifique-se, em /etc/ssh/sshd_config, que o sshd escuta a interface correta, caso você tenha várias. Comente a linha ListenAddress a.b.c.dcom a #e reinicie o serviço ( /etc/init.d/sshd restartou systemctl restart sshd, dependendo da sua distribuição). Editar: desculpe, você já disse isso.

Editar:

roteamento

Se você não conseguir obter uma saída curl icanhazip.com, é provável que seu Raspberry não saiba como acessar a Internet. Portanto, ele não pode responder à sua tentativa de conexão externa. Adicione uma rota, por exemplo, com ip route add default via <your modem's IP address>e tente novamente.

tabelas de ip

Certifique-se de que o firewall interno do Raspberry permita SSH de endereços externos. iptables -Slhe dará uma lista de regras. Procure por linhas como

-A INPUT -s 192.168.0.0/24 -p tcp -m tcp --dport 22 -j ACCEPT
# SSH only allowed from the internal network, if iptables policy INPUT is DROP

Nesse caso, permita todo o tráfego de entrada com iptables -P INPUT ACCEPTou iptables -I INPUT -p tcp --dport 22 -j ACCEPT.

DS-Lite (Dual Stack Lite)

Internamente, na sua rede doméstica, você usa endereços IPv4. No seu exemplo 192.168.0.x. No entanto, o seu ISP pode usar IPv6 na sua rede. O roteador traduz seus endereços IPv4 para IPv6. Isso geralmente resulta na incapacidade de se conectar remotamente à sua rede doméstica.

Se curl icanhazip.comlhe for fornecido um endereço IPv6, por exemplo 2001:a61::35:2, pode ser um indicador. Além disso, talvez o seu C6300 mostre informações sobre isso. (Eu uso um AVM Fritz! Box 7360 e ele exibe explicitamente "Fritz! Box usa um túnel DS-Lite").

Para ter 100% de certeza, ligue para seu ISP.

Editar:

Caso você esteja atrás de um túnel DS-Lite, as seguintes opções vêm à mente para se conectar remotamente em casa:

  • peça ao seu provedor/ISP para mudar sua linha para uma que não seja DS-Lite
  • use autosshpara conectar seu computador doméstico a outro host, por exemplo, no trabalho (pergunte ao seu empregador antes), seu servidor web, seu VPS. Configure autosshde forma que crie um túnel reverso, por exemplo . Então você pode fazer ssh para yourvps.com e ssh de lá para casa via .ssh -R 10000:localhost:22 [email protected]ssh -p 10000 user@localhost

Editar:

Específico para Netgear C6300

Parece haver um bug nos firmwares até ou até a versão de firmware 2.01.14 que tornará as portas abertas visíveis apenas se a opção "Responder ao Ping na porta WAN da Internet" em "Configuração avançada" > "Configuração WAN" estiver ativada.

Configuração WAN Netgear C6300

informação relacionada