Inicio » [SOLUCIONADO] Error: sudo: unable to resolve host en Ubuntu y Debian
Sistemas y Servidores

[SOLUCIONADO] Error: sudo: unable to resolve host en Ubuntu y Debian

✨ Respuesta Rápida

Cada vez que ejecutas un comando con sudo, la terminal pausa brevemente y devuelve la advertencia sudo: unable to resolve host <nombre-servidor>: Name or service not known. Aunque el comando termine ejecutándose, esta advertencia retrasa la ejecución y puede provocar fallos en scripts automáticos, despliegues CI/CD y servicios que dependen de la resolución local de nombres.

El Diagnóstico Rápido

Causa
El nombre de equipo configurado en /etc/hostname no está registrado en /etc/hosts
Solución
Añadir la correspondencia 127.0.1.1 con el hostname exacto en /etc/hosts
Causa
Cambio de nombre de servidor VPS o instancia cloud (AWS, Hetzner, DigitalOcean) sin actualizar el mapeo local
Solución
Sincronizar el comando hostnamectl con el archivo /etc/hosts

Solución Rápida (1 Minuto):

  1. Consulta tu nombre de host actual: hostname
  2. Añade la IP de loopback local en /etc/hosts: echo "127.0.1.1 $(hostname)" | sudo tee -a /etc/hosts

La Solución Paso a Paso

  1. 1

    Paso 1: Comprobar el hostname actual del sistema

    Ejecuta el comando para verificar exactamente qué nombre tiene asignado tu máquina en el kernel:

    BASH
    hostname
    # O mediante hostnamectl
    hostnamectl --static
    

    Imaginemos que tu servidor devuelve vps-servidor01.

  2. 2

    Paso 2: Editar el archivo /etc/hosts y añadir la resolución local

    Abre el archivo de mapeo estático de hosts con permisos de superusuario:

    BASH
    sudo nano /etc/hosts
    

    Verifica que exista la línea que vincula la dirección IP de bucle invertido 127.0.1.1 con tu nombre de host exacto:

    PLAINTEXT
    127.0.0.1 localhost
    127.0.1.1 vps-servidor01
    

    Guarda los cambios con Ctrl + O y sal con Ctrl + X.

  3. 3

    Paso 3: Verificar la desaparición del error

    Ejecuta cualquier comando con sudo para confirmar que la advertencia ha desaparecido por completo:

    BASH
    sudo true
    

    Si no aparece ningún mensaje de error, la resolución local de nombres ha quedado reparada definitivamente.

Preguntas Frecuentes

¿Por qué sudo necesita resolver el nombre de host del sistema?

sudo consulta la base de datos NSS (Name Service Switch) para verificar en el archivo sudoers si el usuario actual tiene privilegios para ejecutar comandos en el host específico.

¿Cuál es la diferencia entre 127.0.0.1 y 127.0.1.1 en Debian y Ubuntu?

127.0.0.1 está reservado para el nombre genérico "localhost". Debian y Ubuntu utilizan 127.0.1.1 para asociar el nombre de host FQDN de la máquina sin depender de una IP estática externa.

Consejo de Prevención

Prácticas de seguridad recomendadas:

  • Al cambiar el nombre de un servidor con hostnamectl set-hostname nuevo-nombre, actualiza simultáneamente /etc/hosts.
  • En proveedores en la nube que regeneran configuraciones de red (cloud-init), edita la plantilla /etc/cloud/cloud.cfg para preservar los cambios locales.
Autor • Diseñador Web & Creador de Apps

Rodolfo Castro

Diseñador web, creador de aplicaciones y fundador de SoporteCero. Especialista en desarrollo de productos digitales, interfaz de usuario y arquitectura web. Cada tutorial y solución de SoporteCero es reproducido y verificado en laboratorio técnico para ofrecer guías funcionales y actualizadas.