¿Qué es y por qué aparece el error 'sudo: unable to resolve host' en Linux?
Uno de los mensajes más comunes al utilizar distribuciones basadas en Debian o Ubuntu en la terminal es sudo: unable to resolve host [nombre-de-host]. Este inconveniente surge cuando el sistema operativo no es capaz de asociar el nombre actual de la máquina (hostname) con una dirección IP válida dentro de la red local o en el archivo de configuración local.
Aunque este error no impide que los comandos con privilegios de superusuario (sudo) se ejecuten, resulta sumamente molesto y puede generar retrasos o fallos en scripts automatizados. A continuación, te mostramos las causas principales y los métodos definitivos para corregirlo.
Causas principales del fallo de resolución de host
- Se ha cambiado el nombre del equipo (hostname) recientemente sin actualizar los archivos de configuración del sistema.
- El archivo
/etc/hostsno contiene la asignación correcta entre la dirección127.0.0.1y el nombre de host actual. - Discrepancias entre el contenido del archivo
/etc/hostnamey/etc/hosts.
Método 1: Actualizar el archivo /etc/hosts manualmente
La forma más rápida de solucionar este problema es editar el archivo de hosts local para asegurarnos de que el hostname actual esté correctamente vinculado a la IP de bucle local (localhost).
- Abre tu terminal de comandos.
- Ejecuta el siguiente comando para editar el archivo de hosts con privilegios de administrador utilizando nano:
sudo nano /etc/hosts - Busca la línea que comienza con
127.0.0.1y asegúrate de que incluya tu nombre de host actual al final. Debería verse similar a esto:127.0.0.1 localhost tu-nombre-de-host - Guarda los cambios presionando
Ctrl + O, luegoEnter, y sal del editor conCtrl + X.
Método 2: Verificar y sincronizar el hostname del sistema
A veces, el archivo que almacena el nombre del equipo no coincide con lo que espera el sistema. Vamos a verificar ambos valores y sincronizarlos correctamente.
- Comprueba cuál es el nombre de host actual ejecutando:
cat /etc/hostname - Verifica que este mismo nombre esté presente en el archivo
/etc/hoststal como se indicó en el método anterior. - Si necesitas cambiar o redefinir el hostname de forma limpia, utiliza el comando hostnamectl:
sudo hostnamectl set-hostname tu-nombre-de-host - Reinicia los servicios de red o simplemente abre una nueva sesión de terminal para comprobar que el error ha desaparecido por completo.