5 Configurar la red de nuestra máquina virtual

 

Configurar IP Estática y Acceso a Internet en Ubuntu Server

Este tutorial te guiará para asignar una dirección IP estática a tu máquina virtual con Ubuntu Server, permitiéndole acceder a Internet y ser accesible desde tu computadora local.

Requisitos Previos

  • Una máquina virtual con Ubuntu Server (18.04 o superior) instalada.

  • Acceso a la máquina virtual con un usuario con privilegios sudo.

  • Conocimiento de los datos de tu red local:

    • Dirección IP deseada (estática, que no esté en uso).

    • Máscara de subred (en notación CIDR, ej. /24 para 255.255.255.0).

    • Puerta de enlace (Gateway) (la IP de tu router).

    • Servidores DNS (ej. los de Google: 8.8.8.8 y 8.8.4.4).

Paso 1: Configurar el Adaptador de Red en "Puente" (Bridge)

Para que tu máquina virtual sea visible en tu red local como un equipo más, debes configurar su adaptador de red en modo puente.

  1. Apaga la máquina virtual:

    bash
    sudo shutdown now
  2. En la configuración de tu virtualizador (VirtualBox, VMware, etc.), ve a la sección de Red.

  3. Configura el adaptador como "Adaptador Puente" (Bridge Adapter) y selecciona la interfaz de red de tu computadora host (por ejemplo, Wi-Fi o Ethernet).

  4. Inicia la máquina virtual nuevamente.

Paso 2: Obtener los Datos de tu Red Local

Necesitas conocer el rango de IPs, la puerta de enlace y la máscara de subred de tu red.

  1. En tu computadora local, abre una terminal (CMD en Windows, Terminal en macOS/Linux).

  2. Ejecuta el siguiente comando para ver tu configuración de red:

    bash
    ipconfig       # En Windows
    ifconfig       # En macOS/Linux
  3. Busca la información de tu adaptador activo (Wi-Fi o Ethernet). Anota:

    • Dirección IPv4: Por ejemplo, 192.168.1.100. Esto te indica que tu red usa el rango 192.168.1.x.

    • Puerta de enlace predeterminada: Por ejemplo, 192.168.1.1.

    • Máscara de subred: Por ejemplo, 255.255.255.0 (equivalente a /24 en notación CIDR).

Paso 3: Identificar la Interfaz de Red en Ubuntu Server

Dentro de tu máquina virtual, abre una terminal y ejecuta:

bash
ip a

Este comando listará todas las interfaces de red. Identifica la interfaz física (no lo, que es el loopback). Su nombre suele ser algo como enp0s3, ens33 o eth0. En el tutorial original, el nombre era enp0s3. Anota este nombre, ya que lo usarás en la configuración.

Paso 4: Configurar una IP Estática con Netplan

Ubuntu Server utiliza Netplan para la configuración de red desde la versión 17.10. Los archivos de configuración están en /etc/netplan/ y usan formato YAML.

4.1. Localizar el Archivo de Configuración

Lista los archivos en el directorio de Netplan:

bash
ls /etc/netplan/

Verás uno o varios archivos con extensión .yaml, como 50-cloud-init.yaml o 00-installer-config.yaml.

4.2. Editar (o Crear) el Archivo de Configuración

Novedad importante: En lugar de editar el archivo existente (que podría ser sobrescrito por cloud-init), es una mejor práctica crear un nuevo archivo con un número más alto en el nombre para que tenga prioridad. Por ejemplo, 01-netcfg.yaml o 01-static.yaml.

Vamos a crear y editar un nuevo archivo:

bash
sudo nano /etc/netplan/01-static.yaml

4.3. Escribir la Configuración

Dentro del editor, escribe la siguiente configuración, respetando la indentación con espacios (nunca tabs). La indentación típica es de 2 espacios.

yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:                # Reemplaza con el nombre de tu interfaz
      dhcp4: false
      addresses:
        - 192.168.1.208/24  # Reemplaza con tu IP estática y máscara (CIDR)
      routes:
        - to: default
          via: 192.168.1.1  # Reemplaza con tu puerta de enlace
      nameservers:
        addresses:
          - 8.8.8.8         # DNS de Google
          - 8.8.4.4         # DNS secundario de Google

Explicación de cada parte:

  • version: 2: Especifica la versión del formato Netplan.

  • renderer: networkd: Indica que se use systemd-networkd (el backend por defecto en Ubuntu Server). Si usas la versión de escritorio con NetworkManager, podrías usar NetworkManager.

  • ethernets: Bloque para configurar interfaces Ethernet.

  • enp0s3: El nombre de tu interfaz de red.

  • dhcp4: false: Desactiva DHCP para IPv4.

  • addresses: Lista con la IP estática y la máscara de subred en formato CIDR (ej. /24).

  • routes: Define la ruta por defecto (gateway).

  • nameservers: Lista de servidores DNS.

4.4. Guardar y Salir

En nano, presiona Ctrl + O para guardar, Enter para confirmar y Ctrl + X para salir.

Paso 5: Aplicar la Configuración

Novedad importante: Antes de aplicar los cambios de forma permanente, puedes usar sudo netplan try para probar la configuración. Esta herramienta aplica los cambios y, si pierdes la conexión SSH, la revierte automáticamente después de 120 segundos, evitando que te quedes bloqueado.

bash
sudo netplan try

Si todo funciona correctamente, confirma los cambios. Si prefieres aplicar directamente (menos seguro en entornos remotos), usa:

bash
sudo netplan apply

Paso 6: Verificar la Configuración

  1. Comprueba la nueva IP:

    bash
    ip a show enp0s3   # Reemplaza con tu interfaz

    Deberías ver la IP estática que configuraste.

  2. Prueba la conectividad a Internet:

    bash
    ping -c 4 google.com

    Si recibes respuesta, ¡la configuración fue exitosa!

Paso 7: Acceder por SSH desde tu Computadora Local

Con la IP estática, ya puedes conectarte a tu máquina virtual desde tu computadora local usando SSH:

bash
ssh usuario@192.168.1.208   # Usa la IP que configuraste

Nuevas Formas de Hacerlo (Alternativas y Mejores Prácticas)

Además del método tradicional descrito en el archivo, existen formas más modernas y seguras de lograr lo mismo:

  1. sudo netplan try (Prueba Segura): Como se mencionó, esta es una práctica recomendada, especialmente si estás configurando un servidor de forma remota vía SSH. Evita que te quedes sin acceso si cometes un error en la sintaxis YAML.

  2. Crear un Archivo Nuevo vs. Editar el Existente: En lugar de editar 00-installer-config.yaml, es mejor crear un archivo como 01-static.yaml. Esto evita que tus cambios sean sobrescritos por actualizaciones de cloud-init y hace que la configuración sea más clara y portable.

  3. Usar systemd-networkd Directamente (Sin Netplan): Aunque Netplan es el método oficial y recomendado, puedes configurar la red directamente usando systemd-networkd. Esto implica crear un archivo en /etc/systemd/network/ (ej. 10-static-enp0s3.network) con el siguiente contenido:

    ini
    [Match]
    Name=enp0s3
    
    [Network]
    Address=192.168.1.208/24
    Gateway=192.168.1.1
    DNS=8.8.8.8 8.8.4.4

    Luego, habilita y reinicia el servicio:

    bash
    sudo systemctl enable systemd-networkd
    sudo systemctl restart systemd-networkd

    Este método es más "directo" pero menos amigable para principiantes.

  4. Usar nmcli o nmtui (Si NetworkManager está Instalado): Si tu sistema usa NetworkManager (común en la versión de escritorio), puedes usar las herramientas de línea de comandos nmcli o la interfaz gráfica nmtui para configurar una IP estática de forma más interactiva.

  5. Asignación de Múltiples IPs: El archivo menciona la posibilidad de especificar varias direcciones IP en el arreglo addresses. Esto sigue siendo válido y útil si quieres que el servidor tenga varias IPs en la misma interfaz.

Resumen de Novedades

AspectoMétodo Tradicional (del archivo)Nuevas Formas / Mejores Prácticas
Aplicar cambiossudo netplan applysudo netplan try (prueba segura)
Archivo de configuraciónEditar 00-installer-config.yamlCrear un nuevo archivo (ej. 01-static.yaml)
BackendNo se especifica (usa el predeterminado)Especificar renderer: networkd explícitamente
AlternativaNo se mencionaUsar systemd-networkd directamente o nmcli

¡Con estos pasos tendrás tu máquina virtual con IP estática y acceso a Internet, lista para instalar Docker y cualquier otro servicio




 

Comentarios

Entradas más populares de este blog

12. Hola Mundo en Docker.

11¿Qué es Docker? y ¿Por qué debo saberlo?

14. Publish and Detached modes