Solución a: “Network is unreachable” en Linux

Si al intentar hacer un ping, conectarte por SSH o acceder a Internet Linux responde Network is unreachable, el problema no necesariamente está en tu conexión a Internet. En muchos casos, el sistema simplemente no sabe por dónde enviar los paquetes.

La buena noticia es que podemos comprobarlo desde la terminal y encontrar rápidamente si falta una ruta, una puerta de enlace o si la interfaz de red no está correctamente configurada.

Traducido literalmente, significa que “la red es inalcanzable”. Pero lo importante es entender qué está pasando realmente.

Cuando Linux necesita comunicarse con una dirección IP, el kernel consulta su tabla de enrutamiento para decidir por qué interfaz debe enviar los paquetes y, cuando corresponde, a través de qué puerta de enlace.

Si no existe una ruta válida para llegar al destino, puede aparecer:

Network is unreachable

Por ejemplo, si ejecutamos:

ping 8.8.8.8

y recibimos:

ping: connect: Network is unreachable

Linux no está diciendo que el servidor de Google esté caído. Está indicando que nuestro propio equipo no tiene una ruta válida para llegar hasta esa dirección.

Las causas pueden ser varias, pero las más habituales son:

  • No existe una ruta por defecto.
  • La puerta de enlace configurada es incorrecta.
  • La interfaz de red está desconectada o desactivada.
  • La interfaz no recibió una dirección IP válida.
  • La configuración de red quedó incompleta después de un cambio.
  • Hay varias interfaces y Linux está utilizando una ruta incorrecta.
  • Se modificaron manualmente las rutas y se eliminó la ruta necesaria.

Por eso no conviene empezar agregando rutas a ciegas. Primero vamos a comprobar qué está ocurriendo.

Lo primero es comprobar que Linux detecta la interfaz y conocer su nombre.

ip addr

Podemos encontrar nombres como eth0, enp3s0, eno1 o similares. En conexiones Wi-Fi normalmente veremos nombres como wlan0 o wlp2s0.

También podemos obtener una vista más sencilla del estado de las interfaces:

ip -br addr

La interfaz que utilizamos para conectarnos debería aparecer activa y, normalmente, tener una dirección IP asignada.

Si la interfaz no tiene dirección IP, el problema puede estar antes de la propia ruta. En ese caso hay que revisar la conexión, DHCP o la configuración de red.

Ahora vamos a comprobar algo fundamental: qué caminos conoce Linux para llegar a otras redes.

ip route

Una configuración típica puede mostrar algo parecido a esto:

default via 192.168.1.1 dev enp3s0
192.168.1.0/24 dev enp3s0 proto kernel scope link src 192.168.1.25

La línea que nos interesa especialmente es:

default via 192.168.1.1 dev enp3s0

Esta es la ruta por defecto. Indica que cuando Linux no tenga una ruta más específica para un destino, debe enviar el tráfico al router 192.168.1.1 utilizando la interfaz enp3s0.

Si no aparece ninguna línea que comience con default, podemos tener justamente la causa del problema: Linux conoce su red local, pero no sabe por dónde salir hacia otras redes.

En lugar de revisar toda la tabla podemos consultar solamente la ruta por defecto:

ip route show default

Si existe, veremos algo similar a:

default via 192.168.1.1 dev enp3s0

Si el comando no devuelve nada, no hay una ruta por defecto configurada en la tabla que estamos consultando.

Este es uno de los pasos más útiles para diagnosticar el problema.

Podemos pedirle a Linux que determine cómo llegaría a una dirección IP concreta:

ip route get 8.8.8.8

Si existe una ruta válida, veremos información similar a:

8.8.8.8 via 192.168.1.1 dev enp3s0 src 192.168.1.25

En cambio, si no existe ninguna ruta válida, podemos recibir:

RTNETLINK answers: Network is unreachable

Este resultado es especialmente importante porque confirma que el problema está en el enrutamiento local: el kernel no encuentra un camino para llegar al destino.

Si comprobamos que la interfaz tiene una dirección IP correcta y que simplemente falta la ruta por defecto, podemos agregarla temporalmente.

Por ejemplo, suponiendo que:

  • La interfaz es enp3s0.
  • El router es 192.168.1.1.

El comando sería:

sudo ip route add default via 192.168.1.1 dev enp3s0

Importante: no copies estos valores literalmente si no corresponden a tu red. La dirección del gateway y el nombre de la interfaz deben ser los de tu propia configuración.

Ubuntu documenta precisamente este método para añadir temporalmente una puerta de enlace por defecto mediante ip route. Estas modificaciones realizadas directamente con ip no son permanentes y pueden desaparecer después de reiniciar. :contentReference[oaicite:1]{index=1}

Después de corregir la ruta, podemos comprobar nuevamente qué camino utilizará Linux:

ip route get 8.8.8.8

Y después probar la conectividad mediante una dirección IP:

ping -c 4 8.8.8.8

Usar primero una dirección IP es útil porque nos permite separar este problema de un posible problema de DNS.

Si el ping funciona mediante IP pero una dirección como google.com no funciona, entonces probablemente estamos ante otro problema relacionado con la resolución de nombres y no con Network is unreachable.

En Ubuntu Desktop, Linux Mint y otras distribuciones de escritorio es habitual que la red sea administrada por NetworkManager.

Podemos comprobar el estado de las conexiones con:

nmcli device status

También podemos consultar el estado general de la conectividad de NetworkManager:

nmcli networking connectivity

Si la conexión debería obtener automáticamente una dirección IP y una ruta mediante DHCP, una forma sencilla de volver a activar el perfil de conexión es desconectarlo y conectarlo nuevamente desde el entorno gráfico o mediante NetworkManager.

Antes de modificar manualmente rutas, conviene comprobar si el problema está realmente en el perfil de conexión.

Agregar una ruta mediante ip route puede servir para comprobar que encontramos la causa, pero no es la solución definitiva si la ruta desaparece después de reiniciar.

En Ubuntu, la configuración de red se gestiona mediante Netplan, que puede utilizar NetworkManager o systemd-networkd como backend. La configuración permanente debe realizarse en el sistema de gestión de red correspondiente. :contentReference[oaicite:2]{index=2}

Por ejemplo, una configuración estática de Netplan puede definir una ruta por defecto de esta manera:

network:
  version: 2
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.25/24
      routes:
        - to: default
          via: 192.168.1.1

Después de modificar la configuración, se aplica con:

sudo netplan apply

No utilices este ejemplo sin adaptarlo a tu red. La interfaz, dirección IP y gateway deben coincidir con tu configuración real.

El procedimiento de diagnóstico es prácticamente el mismo.

Primero comprobamos que la interfaz Wi-Fi tenga una dirección IP:

ip -br addr

Después revisamos la ruta:

ip route

Y finalmente comprobamos qué ruta utilizaría Linux:

ip route get 8.8.8.8

No importa demasiado si la conexión es Ethernet o Wi-Fi: para este error, lo importante es que exista una interfaz correctamente configurada y una ruta válida hacia el destino.

Esta diferencia es importante.

Si Linux muestra:

Network is unreachable

el problema puede estar en la ruta que utiliza el sistema.

En cambio, si podemos hacer:

ping -c 4 8.8.8.8

pero esto falla:

ping -c 4 google.com

la conexión IP puede estar funcionando y el problema puede encontrarse en la resolución DNS.

Por eso, para diagnosticar Network is unreachable, es mejor comenzar utilizando una dirección IP y revisar primero la tabla de rutas.

  • No cambiar DNS antes de comprobar la tabla de rutas.
  • No agregar una puerta de enlace al azar.
  • No borrar todas las rutas de la interfaz sin saber qué configuración utiliza.
  • No modificar archivos de Netplan copiando configuraciones de otra máquina.
  • No asumir que el problema está en Internet solamente porque un sitio web no abre.

El error Network is unreachable suele indicar que Linux no encuentra una ruta válida para llegar al destino. La forma más rápida de comprobarlo es revisar la interfaz, consultar ip route y preguntarle directamente al kernel qué ruta utilizaría con ip route get.

Si falta la ruta por defecto, podemos corregirla temporalmente con ip route y después hacer permanente la configuración mediante el sistema de gestión de red que utilice nuestra distribución.

La clave es sencilla: antes de tocar la configuración de red, comprobar qué ruta falta y por qué.

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *