Tengo un enrutador/módem Netgear C6300 (versión de firmware 2.01.14) y estoy intentando con todas mis fuerzas conectarme externamente a mi raspberry pi. Aquí está mi configuración de reenvío de puertos:
Puedo hacer ssh internamente usando ssh 192.168.0.84
, pero externamente en canyouseeme.com aparece "Error: no se pudo ver su servicio en el puerto (22). Mi sshd_config tiene la línea Port 22
y las ListenAddress
líneas están comentadas. En otras palabras, no he tocado esto archivo. ¿Qué está pasando aquí?
Respuesta1
Me vienen a la mente varias cosas.
El reenvío en su captura de pantalla parece correcto. Podrías intentar configurarlo TCP
en lugar de TCP/UDP
, porque ssh es un protocolo TCP.
dyndns
¿Está seguro de que utiliza el nombre de host correcto actualizado dinámicamente o su dirección IP pública correcta? Para encontrar su dirección IP pública, abra una consola en Raspberry o SSH (internamente) y use curl icanhazip.com
.
sshd_config
Asegúrese, en /etc/ssh/sshd_config
, que sshd escuche la interfaz correcta, en caso de que tenga varias. Comente la línea ListenAddress a.b.c.d
con a #
y reinicie el servicio ( /etc/init.d/sshd restart
o systemctl restart sshd
, según su distribución). Editar: lo siento, ya dijiste eso.
Editar:
enrutamiento
Si no puede obtener una salida de curl icanhazip.com
, es probable que su Raspberry no sepa cómo acceder a Internet. Por lo tanto, no puede responder a su intento de conexión desde el exterior. Añade una ruta, por ejemplo con ip route add default via <your modem's IP address>
e inténtalo de nuevo.
iptables
Asegúrese de que su firewall interno de Raspberry permita SSH desde direcciones externas. iptables -S
Le dará una lista de reglas. Busque líneas 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
En ese caso, permita todo el tráfico entrante con iptables -P INPUT ACCEPT
o iptables -I INPUT -p tcp --dport 22 -j ACCEPT
.
DS-Lite (doble pila Lite)
Internamente, en su red doméstica, utiliza direcciones IPv4. En su ejemplo 192.168.0.x. Sin embargo, su ISP podría utilizar IPv6 en su red. El enrutador traduce sus direcciones IPv4 a IPv6. Esto generalmente resulta en la imposibilidad de conectarse a su red doméstica de forma remota.
Si curl icanhazip.com
le proporcionó una dirección IPv6, por ejemplo 2001:a61::35:2
, podría ser un indicador. Además, tal vez su C6300 muestre información al respecto. (Yo uso un AVM Fritz!Box 7360 y muestra explícitamente "Fritz!Box usa un túnel DS-Lite").
Para estar 100% seguro, llame a su ISP.
Editar:
En caso de que esté detrás de un túnel DS-Lite, le vienen a la mente las siguientes opciones para conectarse a casa desde el control remoto:
- pídale a su proveedor/ISP que cambie su línea a una que no sea DS-Lite
- Úselo
autossh
para que la computadora de su hogar se conecte a otro host, por ejemplo, en el trabajo (pregúntele a su empleador antes), su servidor web, su VPS. Configureautossh
de manera que cree un túnel inverso, por ejemplo . Luego puede enviar ssh a yourvps.com y volver a casa mediante ssh desde allí a través de .ssh -R 10000:localhost:22 [email protected]
ssh -p 10000 user@localhost
Editar:
Específico para Netgear C6300
Parece haber un error en los firmwares hasta o hasta la versión de firmware 2.01.14 que hará que los puertos abiertos sean visibles solo si la opción "Responder al ping en el puerto WAN de Internet" en "Configuración avanzada" > "Configuración WAN" está activada.