Establecer una dirección IP estática en Ubuntu Server 24.04

Publicado por P. Ruiz en

Antes de 2017, Ubuntu Server basaba su configuración de red en los parámetros almacenados en el archivo de configuración /etc/network/interfaces, una estructura heredada directamente de Debian.

Sin embargo, a partir de la versión 17.10, Canonical introduce una nueva herramienta de configuración de red llamada NetPlan, que pretende facilitar el trabajo a desarrolladores y usuarios en general.

El funcionamiento de NetPlan se basa en un archivo con la descripción de los adaptadores de red que necesitemos definir. El archivo estará escrito en YAML (siglas de YAML Ain’t Markup Language), un archivo de texto plano con un formato específico para la serialización que resulta fácilmente comprensible para las personas.

Por lo tanto, a partir de la versión 17.10, deberemos utilizar archivos de configuración con extensión yaml, almacenados en la ruta /etc/netplan.

De forma predeterminada, sólo tenemos un archivo que, en nuestro caso, se llama 50-cloud-init.yaml.

Establecer-una-direccion-IP-estatica-en-Ubuntu-Server-24-04-001

En cuanto a la sintaxis que debemos emplear en estos archivos, hoy trataremos de arrojar algo de luz sobre ella.

La configuración inicial de NetPlan

Para comprobar el valor inicial que tiene el archivo 50-cloud-init.yaml, basta con escribir una orden como esta:

sudo cat /etc/netplan/50-cloud-init.yaml

En versiones anteriores de Ubuntu, podíamos ver (aunque no cambiar) el contenido de este archivo sin usar privilegios administrativos. Sin embargo, ahora, sí que los necesitamos. Por eso hemos escrito la orden sudo por delante de cat.

Contenido del archivo 50-cloud-init.yaml.

Establecer-una-direccion-IP-estatica-en-Ubuntu-Server-24-04-002

Probablemente, te hayan sorprendido los comentarios que aparecen al principio del archivo. Sin embargo, hacen referencia a una imagen que aún no ha realizado su primera ejecución de cloud-init (durante el arranque). En esos casos, los cambios que podamos hace en el archivo serían reemplazados por cloud-init.

Ten en cuenta que cloud-init se utiliza para configurar cosas en el primer arranque. Uno de esos archivos será 50-cloud-init.yaml (o como se llame el archivo predeterminado en tu sistema).

En definitiva, la advertencia se refiere a posibles cambios del archivo en contenedores, máquinas virtuales, etc., que sean utilizadas como plantilla y estén configuradas para configurarse durante el primer arranque.

En el caso de Ubuntu Server, la configuración predeterminada de NetPlan será similar a esta:

network:
  ethernets:
    enp0s3:
      dhcp4: true
  version: 2

Explicado de forma sencilla, lo que establece es que el adaptador de red que estamos definiendo es enp0s3 y que utilizará DHCP. Es decir, que su dirección IP será asignada desde otro dispositivo de nuestra red, normalmente el router que nos facilita el acceso a Internet, que actuará como servidor DHCP.

En ocasiones, también puede aparecer una línea más, parecida a esta:

renderer: networkd

Esto indicará que el demonio systemd-networkd es el encargado de administrar la red. Sin embargo, si realizas esta tarea en un sistema de escritorio, aparece NetworkManager, porque este es el programa que ofrece los servicios de detección y configuración automáticas en la interfaz gráfica.

Establecer una dirección IP fija en NetPlan

La mayoría de las veces, un servidor necesita disponer de una dirección IP fija. Imagina, por ejemplo, que quieres redireccionar algún puerto desde el router, usar SSH para administrar el servidor de forma remota, o alguna tarea por el estilo.

En estos casos, cuando utilicemos Ubuntu Server 24.04 LTS, deberemos editar el archivo de configuración correspondiente (en nuestro ejemplo, 50-cloud-init.yaml) y realizar las modificaciones oportunas.

Para lograrlo, puedes usar el editor de textos nano:

sudo nano /etc/netplan/50-cloud-init.yaml

Como de costumbre, escribimos el comando y pulsamos la tecla Intro.

Establecer-una-direccion-IP-estatica-en-Ubuntu-Server-24-04-003

Una vez que nos encontramos en la ventana de trabajo de nano, sustituiremos su valor por algo como esto:

network:
    ethernets:
      enp0s3:
        addresses:
        - 192.168.1.10/24
        nameservers:
          addresses:
            - 208.67.222.222
        routes:
            - to: default
              via: 192.168.1.1
    version: 2

Obviamente, los valores concretos tendrán que adaptarse a tus necesidades pero, para facilitarte las cosas, a continuación te explicamos cada una de sus partes:

  • addresses: Establece que, en mi red, la dirección IP de equipo será siempre 192.168.1.10.

    También indica que la máscara de red utiliza 24 bits (lo que equivale a 255.255.255.0). Este valor también puede cambiar según las características de tu red.

  • nameservers: Configura la dirección (o direcciones) de Internet donde se encuentra el servidor DNS que usaremos para convertir los nombres de dominio en direcciones IP. En este caso utilizaremos el servidor primario de OpenDNS.

    Si necesitáramos incluir más de una dirección, bastaría con duplicar la línea, como muestra este ejemplo:

          nameservers:
            addresses:
              - 208.67.222.222
              - 208.67.220.220
  • A partir de Ubuntu 22.04 LTS se implementó una nueva versión de NetPlan, que propuso la desaparición de gateway4 y gateway6, aunque seguirán funcionando por un tiempo. Sin embargo, lo recomendable es que, desde ahora, en su lugar comencemos a utilizar routes que, por cada ruta definida establece dos valores:

    • to, para indicar a ruta que debe utilizarse.

    • via, para establecer la dirección IP por la que hacerlo.

    Para una dirección IPv6 sería idéntico, pero usando un valor IPv6 a continuación de vía. En definitiva, algo como esto:

          routes:
              - to: default
                via: 192.168.1.1
              - to: default
                via: 2001:0000:1F40:0000:0000:0AB0:654A:110A

Cuando hayamos completado la configuración, estaremos listos para salir de la edición del archivo.

Para lograrlo, sólo tenemos que pulsar la combinación de teclas Control + X.

Establecer-una-direccion-IP-estatica-en-Ubuntu-Server-24-04-004

Al hacerlo, el editor nos pregunta si queremos guardar los cambios.

Para responder de forma afirmativa, pulsamos la tecla Y.

Establecer-una-direccion-IP-estatica-en-Ubuntu-Server-24-04-005

Entonces, el editor nos permite elegir entre sobrescribir el contenido del archivo original, o elegir un nombre o ubicación diferente.

Para sobrescribir, basta con pulsar la tecla Intro.

Establecer-una-direccion-IP-estatica-en-Ubuntu-Server-24-04-006

Aplicar los cambios

De vuelta en el prompt del sistema, estaremos listos para aplicar los cambios del archivo de configuración. Algo que podemos conseguir ejecutando el siguiente comando:

sudo netplan apply

Escribimos el comando y pulsamos la tecla Intro.

Establecer-una-direccion-IP-estatica-en-Ubuntu-Server-24-04-007

Si el comando no ofrece ninguna información de salida es que todo ha funcionado correctamente. No obstante, para comprobar que los cambios han surtido efecto, podemos consultar la configuración actual de la red:

ip addr

Como antes, escribimos el comando y pulsamos la tecla Intro.

Establecer-una-direccion-IP-estatica-en-Ubuntu-Server-24-04-008

Como puedes comprobar, la configuración coincide con los valores que hemos establecido.

Y hasta aquí el contenido de este artículo. Espero que te resulte útil.