¿Qué es lo que hace que ssh regrese La red no funciona?

2

Estoy intentando, sin éxito, conectarme a un servidor ssh de la red local desde macOS haciendo:

$ ssh user@1111:ab1:123:ab1:011b:12bc:ab12:1a2b

y luego me sale:

ssh: connect to host 1111:ab1:123:ab1:011b:12bc:ab12:1a2b port 22: Network is down

Realmente puedo conectarme a ese servidor desde la aplicación Termius de iPhone (y también hay otras razones para pensar que el servidor está bien), así que creo que hay un problema en el lado del cliente. Probé esa misma aplicación en macOS sin éxito.

Además, ssh para una máquina virtual funciona bien, así como para un servidor aws de Amazon.

También probé verbose:

$ ssh user@1111:ab1:123:ab1:011b:12bc:ab12:1a2b -vvv
OpenSSH_7.6p1, LibreSSL 2.6.2
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 48: Applying options for *
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to 1111:ab1:123:ab1:011b:12bc:ab12:1a2b port 22.
ssh: connect to host 1111:ab1:123:ab1:011b:12bc:ab12:1a2b port 22: Network is down

Y IPV6:

$ ssh -6 -vvv user@1111:ab1:123:ab1:011b:12bc:ab12:1a2b
OpenSSH_7.6p1, LibreSSL 2.6.2
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 48: Applying options for *
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to 1111:ab1:123:ab1:011b:12bc:ab12:1a2b port 22.
ssh: connect to host 1111:ab1:123:ab1:011b:12bc:ab12:1a2b port 22: Network is down

Y ping:

$ ping 1111:ab1:123:ab1:011b:12bc:ab12:1a2b
ping: cannot resolve 1111:ab1:123:ab1:011b:12bc:ab12:1a2b: Unknown host

¿Qué podría estar causando el Network is down ? ¿Cómo debo depurar esto?

    
pregunta KcFnMi 18.04.2018 - 14:53

1 respuesta

2

SSH es solo el mensajero, y es probable que esté llamando a strerror(3) o equivalente en un código de salida incorrecto de alguna llamada de socket:

$ find /usr/include -name "*.h" -exec grep 'Network is down' {} +
/usr/include/apr-1/apr_errno.h:#define SOCENETDOWN             (SOCBASEERR+50)            /* Network is down */
/usr/include/sys/errno.h:#define        ENETDOWN        50              /* Network is down */
$ 

Si buscamos en las páginas de comando man del sistema para ENETDOWN , aparecerá documentación ...

$ find /usr/share/man -type f -exec grep -l ENETDOWN {} +
/usr/share/man/man2/connect.2
/usr/share/man/man2/connectx.2
/usr/share/man/man2/intro.2
/usr/share/man/man2/send.2
...

Aunque no tanto como connect(2) o intro(2) simplemente indica

 [ENETDOWN]         The local network interface is not functioning.
...
 50 ENETDOWN Network is down.  A socket operation encountered a dead net-
         work.

¿IPv6 está trabajando en este host? Probablemente necesitará depurar con ping6 (no ping ) y tal vez verifique la configuración de IPv6 a través de alguna interfaz de clic o en su lugar ifconfig y netstat -rn .

Para evitar la GUI, la configuración de red para IPv6 se puede ajustar con algo como

sudo ipconfig set en0 AUTOMATIC-V6

vea el manual de ipconfig(8) para más detalles.

    
respondido por el thrig 18.04.2018 - 16:25

Lea otras preguntas en las etiquetas