Cómo corregir un error de conexión de «Sin ruta al host» en Linux

Cuando intentas conectarte a un servicio en Linux, «No route to host» es una de las últimas cosas que quieres escuchar. Es un mensaje amplio que significa que el equipo no puede alcanzar el servidor de destino.

Debido a la naturaleza amplia del mensaje, existen varias posibilidades que podrían estar causándolo.

El host está desconectado/servicio no funciona

Puede parecer dolorosamente obvio, pero primero debe comprobar que el servidor al que está intentando conectarse está incluso en línea. Podría haber sido retirado por mantenimiento o estar experimentando problemas.

Es posible que no se haya iniciado el servicio en sí. Si es su servidor, puede comprobar si el servicio se ha iniciado y está funcionando correctamente. Para hacer esto con Systemd, ejecute el siguiente comando.

sudo systemctl status servicename

Puerto incorrecto

Es posible que esté intentando conectarse en el puerto incorrecto. Muchos administradores de sistemas optan por ejecutar servicios comúnmente orientados como SSH en diferentes puertos para ayudar a frustrar a los posibles atacantes.

Si el servidor no es el suyo, compruebe la documentación disponible o póngase en contacto con sus servicios de soporte.

Para su propio servidor, puede probar utilizando NMAP para averiguar dónde comenzó su servicio.

sudo nmap -sS su.servidor.ip

Si cree que ha utilizado un puerto realmente oscuro, puede utilizar el indicador -p- para escanearlos todos. Pero tardará un poco.

Iptables está bloqueando la conexión

Es posible que haya configurado accidentalmente iptables para bloquear las conexiones en ese puerto. Recibirá el mismo mensaje si configuró iptables en el servidor o en su escritorio, por lo que vale la pena comprobar ambos. Para ver las reglas de tu iptables, ejecuta el siguiente comando.

sudo iptables -S

Su DNS está mal configurado

Si todo lo demás falla, debería intentar hacer ping a la dirección IP a la que desea conectarse. Es posible que el equipo no se esté conectando correctamente a un servidor DNS.

ping -c3 su.servidor.ip

Si el ping funciona pero la conexión de un nombre de dominio no funciona, se trata de un problema de DNS.

Los usuarios de Systemd pueden ejecutar systemd-resolve –status para comprobar los servidores DNS que su sistema está utilizando. Está desglosado por interfaz, así que asegúrate de comprobar a través de la que estás intentando conectarte.

En la mayoría de los casos, su ordenador descubrirá la información DNS relevante a través de DHCP. Si está utilizando una IP estática o algo en su red está configurado de forma diferente, es posible que tenga que configurar sus DNS manualmente.

Abra «/etc/systemd/resolved.conf.». En ese archivo, descomente la línea DNS y añada ya sea la IP de su enrutador u otro servidor DNS conocido. El DNS de emergencia predeterminado para Systemd son los servidores DNS de Google que aparecen en FallbackDNS.

DNS=192.168.1.1

Si está usando OpenRC u otra alternativa de Systemd, puede encontrar su información de DNS en «/etc/resolv.conf».

servidor de nombres 192.168.1.1

Si no hay nada allí, introduzca la dirección IP de su router o cualquier otro servidor DNS conocido que prefiera utilizar.

Después, reinicie la red o todo el equipo.

La manera GUI

Si utiliza un escritorio gráfico con Network Manager, puede editar la información de conexión de esa manera. Abre el applet o revisa la configuración de tu sistema. Seleccione su conexión y busque la pestaña «IPv4». Cambie la conexión a «Manual» e introduzca manualmente la dirección IP de su ordenador y la IP de su router como puerta de enlace. Luego, en el campo DNS de abajo, ingrese la IP de su enrutador o la IP de otro servidor DNS.

Configuración incorrecta de la red o del host

Hay varias otras opciones de configuración que pueden ser incorrectas. Cualquiera de ellos haría imposible que su computadora se conectara al servidor.

En primer lugar, asegúrese de que la configuración de red de su ordenador sea correcta. Compruebe los archivos de configuración y, por supuesto, compruebe si puede conectarse a Internet de otra forma.

Si está utilizando un nombre de host específico para conectarse o ha configurado hosts específicos en el servidor o en el cliente, debe asegurarse de que ambos equipos puedan conectarse entre sí. Comprueba las configuraciones de «/etc/hosts,» «/etc/hosts.allow.» «/etc/hosts.deny.»

Por último, compruebe la configuración de su servidor. Es posible que algo esté mal configurado en el servidor, lo que impide que los clientes se conecten correctamente.

Si bien la determinación de la causa exacta de «No route to host» no es tan sencilla, puede seguir estos pasos para descartar las causas más comunes del error y remediarlo.

Deja un comentario

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