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:
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 22
e as ListenAddress
linhas 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 TCP
em 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.d
com a #
e reinicie o serviço ( /etc/init.d/sshd restart
ou 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 -S
lhe 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 ACCEPT
ou 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.com
lhe 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
autossh
para conectar seu computador doméstico a outro host, por exemplo, no trabalho (pergunte ao seu empregador antes), seu servidor web, seu VPS. Configureautossh
de 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.