Ubuntu 16.04 Server / Cómo configurar una IP estática

En Ubuntu 16.04 Server, una dirección IPv4 estática (Internet Protocol version 4) gestionada por ifupdown se configura en /etc/network/interfaces o en un archivo incluido. Comprueba interfaz, dirección, máscara, puerta de enlace y DNS reales, guarda una copia y prepara una consola de recuperación antes de aplicar cambios.

Comprobar si el procedimiento es adecuado

Esta guía modifica una interfaz cableada única típica de una configuración ifupdown existente en Ubuntu 16.04. No añadas lo mismo sin adaptar en servidores gestionados por Netplan, NetworkManager o herramientas de inicialización de la nube. Identifica primero el gestor y el origen de la configuración.

Ubuntu 16.04 es antiguo. El soporte estándar terminó en 2021 y el ESM habitual (Expanded Security Maintenance, mantenimiento de seguridad ampliado), en 2026. Si sigue en uso, comprueba cobertura Legacy y plan de migración en la información de Canonical sobre Ubuntu 16.04. Este no es el método de red predeterminado de Ubuntu actual.

Los nombres de interfaz varían. Estos comandos muestran distribución, dispositivos, direcciones IPv4 y ruta predeterminada. Identifica la interfaz que realmente lleva la conexión, sin copiar simplemente enp0s3.

lsb_release -ds
ip -o link show
ip -4 addr show
ip -4 route
cat /etc/network/interfaces
dpkg -l ifupdown resolvconf

En ip -4 route, default via indica la puerta de enlace y dev su interfaz. Compara con los archivos y revisa los paquetes en dpkg -l. Si falta el archivo o se usa otro gestor, detente y sigue el procedimiento de ese entorno.

Elegir dirección, puerta de enlace y DNS

Una IP estática no se elige arbitrariamente en el servidor. Usa la asignada por el administrador y comprueba reservas o exclusiones DHCP (Dynamic Host Configuration Protocol, protocolo de configuración dinámica de hosts) para evitar el rango de reparto. Una dirección sin respuesta no está necesariamente libre.

  • Dirección y máscara: el ejemplo utiliza 192.168.10.50 y 255.255.255.0, equivalentes a 192.168.10.50/24. No asignes a un host la dirección de red 192.168.10.0 ni la de difusión 192.168.10.255 de esta subred.
  • Puerta de enlace: el ejemplo es 192.168.10.1, accesible directamente en la misma red. Este caso de una interfaz usa una sola ruta predeterminada. Varias redes o políticas de enrutamiento necesitan un diseño aparte.
  • DNS: elige un servidor DNS (Domain Name System, sistema de nombres de dominio) que resuelva nombres a direcciones. 192.168.10.1 solo sirve aquí si ese dispositivo también responde a consultas DNS. Para dominios internos, usa el DNS de la organización que pueda resolverlos.

Los valores describen una red privada de ejemplo. Adáptalos al modo NAT, puente o solo anfitrión de la máquina virtual y a las reglas de asignación de la nube. Fijar la IP privada del invitado puede ser distinto de reservar una IP pública externa.

Guardar una copia y cambiar DHCP por static

  1. Primero verifica acceso a una consola física, de virtualización o de recuperación en la nube. Cambiar la dirección teniendo solo SSH (Secure Shell) puede impedir recuperarla tras la desconexión. Programa una interrupción y anota las direcciones, rutas y DNS anteriores.
  2. Copia la configuración de red a otra ubicación. Si el nombre de copia ya existe, elige otro.
sudo cp -a /etc/network /etc/network.before-static-ip
sudoedit /etc/network/interfaces

Comprueba los archivos incluidos mediante source o source-directory. Si la interfaz está definida en /etc/network/interfaces.d/, edita ese archivo sin duplicarla en el principal. En archivos generados por la nube, revisa si se sobrescriben al arrancar y el método admitido por el proveedor.

  1. Busca el bloque DHCP siguiente. Modifica el bloque IPv4 existente de la interfaz real, sin crear otro nombre de dispositivo.
auto enp0s3
iface enp0s3 inet dhcp
  1. Sustituye solo ese bloque como se indica. Conserva otras interfaces, IPv6, inclusiones y configuración de loopback.
auto enp0s3
iface enp0s3 inet static
    address 192.168.10.50
    netmask 255.255.255.0
    gateway 192.168.10.1
    dns-nameservers 192.168.10.1

Este bloque no sustituye el archivo entero. Conserva entradas como auto lo e iface lo inet loopback. auto indica las interfaces activadas al arrancar y inet static elige IPv4 estática. Consulta la sintaxis en el manual interfaces de ifupdown.

Entender cuándo se aplica dns-nameservers

dns-nameservers cumple otra función que la dirección IP o la ruta predeterminada. En Ubuntu 16.04 deben funcionar resolvconf y sus scripts de integración con ifupdown para transmitir ese valor al DNS. El manual resolvconf de Ubuntu 16.04 explica esta integración y la separación por espacios de varias direcciones DNS.

Si /etc/resolv.conf se genera automáticamente, las modificaciones directas pueden sobrescribirse. Consulta su destino y contenido con estos comandos; si está disponible resolvconf, muestra también la información DNS registrada.

readlink -f /etc/resolv.conf
cat /etc/resolv.conf
if command -v resolvconf >/dev/null 2>&1; then
    resolvconf -l
fi

Sin instalación o integración, añadir solo dns-nameservers no cambia el DNS. Identifica y ajusta primero su gestor real. Algunas configuraciones muestran un resolvedor local de caché en resolv.conf; no ver una dirección externa directamente no demuestra un fallo.

Aplicar la configuración y comprobar el resultado

  1. Tras guardar, consulta los ajustes leídos por ifupdown. Nombre, dirección, máscara y puerta de enlace deben coincidir con el plan. Este comando consulta la configuración sin aplicarla a la red.
ifquery enp0s3

Un ifquery correcto no prueba conflictos de IP ni conectividad real. Si hay errores o una interfaz no definida, corrige primero inclusiones, nombre y sintaxis. Su alcance está en el manual ifquery e ifup de ifupdown.

  1. Con consola de recuperación e interrupción planificada, reinicia para aplicar la configuración de arranque. El comando siguiente reinicia todo el servidor; ejecútalo solo cuando estés preparado.
sudo reboot

Reiniciar solo el servicio de red no garantiza que se eliminen direcciones antiguas y estado DHCP. Reiniciar repetidamente porque la IP no cambia tampoco corrige errores. Tras arrancar, comprueba dirección y rutas en la consola y conecta a la nueva IP.

ip -4 addr show dev enp0s3
ip -4 route
ping -c 3 192.168.10.1
getent ahostsv4 ubuntu.com

En el ejemplo, la interfaz debe mostrar 192.168.10.50/24 y la ruta incluir default via 192.168.10.1 dev enp0s3. Comprueba por separado puerta de enlace y resolución de nombres. Si se bloquean respuestas ICMP, un ping fallido no prueba una avería: prueba los servicios necesarios y el acceso desde otro cliente.

Diagnosticar fallos y restaurar los ajustes

Sin dirección, revisa dispositivo, archivo, gestor y sintaxis. Con dirección pero sin acceso a otras redes, examina máscara, puerta de enlace y rutas. Si funcionan las IP pero no los nombres, revisa DNS y dominios internos. Direcciones incorrectas, reparto DHCP solapado y definiciones duplicadas también causan fallos.

Consulta errores con sudo systemctl status networking.service y sudo journalctl -u networking.service -b --no-pager. Un servicio sano no garantiza direcciones y comunicación correctas; compáralo con las verificaciones anteriores.

Para revertir, usa la consola de recuperación y restaura solo los archivos modificados. El ejemplo supone que solo cambió /etc/network/interfaces. Para un fragmento, restaura su copia en el lugar correspondiente. No copies todo el directorio y sobrescribas ajustes ajenos añadidos desde entonces.

sudo cp -a /etc/network.before-static-ip/interfaces /etc/network/interfaces
sudo reboot

Si antes se usaba DHCP, no se garantiza la misma dirección tras reiniciar. Consulta dirección asignada y ruta en la consola, y confirma DNS y acceso administrativo antes de terminar.