Cómo configurar una dirección IP estática en Linux

Introducción

Por defecto, la mayoría de servidores obtienen su dirección IP a través de DHCP. Sin embargo, los servidores deben usar una IP estática para asegurar que la dirección no cambie después de un reinicio. Esta guía cubre tres métodos según su distribución de Linux.

Método 1: Netplan (Ubuntu 18.04+)

Ubuntu usa Netplan para la configuración de red. Los archivos de configuración se encuentran en /etc/netplan/.

Paso 1: Identificar su interfaz de red

ip link show

Nombres comunes: eth0, ens18, enp0s3.

Paso 2: Editar la configuración de Netplan

sudo nano /etc/netplan/01-netcfg.yaml

Reemplace el contenido con:

network:
  version: 2
  renderer: networkd
  ethernets:
    ens18:
      addresses:
        - 203.0.113.10/24
      routes:
        - to: default
          via: 203.0.113.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 1.1.1.1

Reemplace ens18 con el nombre de su interfaz, y ajuste los valores de IP, puerta de enlace y DNS.

Paso 3: Aplicar la configuración

sudo netplan apply

Paso 4: Verificar

ip addr show ens18
ip route show

Método 2: /etc/network/interfaces (Debian)

Debian usa el archivo tradicional interfaces para la configuración de red.

Paso 1: Editar el archivo interfaces

sudo nano /etc/network/interfaces

Busque la sección de su interfaz (ej.: eth0) y cámbiela de dhcp a static:

auto eth0
iface eth0 inet static
    address 203.0.113.10
    netmask 255.255.255.0
    gateway 203.0.113.1
    dns-nameservers 8.8.8.8 1.1.1.1

Paso 2: Reiniciar la red

sudo systemctl restart networking

Paso 3: Verificar

ip addr show eth0
ip route show

Método 3: NetworkManager (AlmaLinux / RHEL / Rocky Linux)

Las distribuciones basadas en RHEL usan NetworkManager y la herramienta de línea de comandos nmcli.

Paso 1: Identificar el nombre de la conexión

nmcli connection show

Ejemplo de salida:

NAME                UUID                                  TYPE      DEVICE
System eth0         a1b2c3d4-e5f6-7890-abcd-ef1234567890  ethernet  eth0

Anote el nombre de la conexión (ej.: System eth0 o ens18).

Paso 2: Configurar la IP estática

sudo nmcli connection modify "System eth0"   ipv4.addresses 203.0.113.10/24   ipv4.gateway 203.0.113.1   ipv4.dns "8.8.8.8 1.1.1.1"   ipv4.method manual

Paso 3: Reiniciar la conexión

sudo nmcli connection down "System eth0"
sudo nmcli connection up "System eth0"

Paso 4: Verificar

nmcli connection show "System eth0" | grep ipv4
ip addr show eth0

Alternativa: Editar el archivo de conexión directamente

NetworkManager almacena los archivos de conexión en /etc/NetworkManager/system-connections/ (o /etc/sysconfig/network-scripts/ en sistemas más antiguos). Puede editar estos archivos y luego recargar:

sudo nmcli connection reload
sudo nmcli connection up "System eth0"

Configurar DNS por separado

Si el DNS no se configura a través de la configuración de red, puede editar /etc/resolv.conf directamente:

nameserver 8.8.8.8
nameserver 1.1.1.1

Nota: En sistemas que usan NetworkManager o systemd-resolved, este archivo puede ser sobrescrito. Use los métodos anteriores para configurar DNS de forma persistente.

Referencia rápida

Distribución Método de configuración Archivo(s) de configuración Comando para aplicar
Ubuntu 18.04+ Netplan /etc/netplan/*.yaml sudo netplan apply
Debian interfaces /etc/network/interfaces sudo systemctl restart networking
AlmaLinux / RHEL NetworkManager nmcli o /etc/NetworkManager/system-connections/ sudo nmcli connection up "nombre"