--- title: "Cómo configurar alias de IP en Debian 12 con ifupdown" description: "Añade direcciones IP adicionales a una interfaz de red en Debian 12 con alias en /etc/network/interfaces, pruébalas sin reiniciar y haz que persistan." category: "Linux" language: es source: https://cubepath.com/es/docs/linux/como-configurar-alias-ip-en-debian updated: 2026-09-25 --- # Cómo configurar alias de IP en Debian 12 con ifupdown Un alias de IP es una dirección adicional asignada a una interfaz de red que ya existe, de modo que una sola tarjeta de red responde a varias IP. Es lo habitual cuando contratas IPs adicionales para alojar varios certificados, separar servicios o hacer que una aplicación escuche en una IP concreta. En este tutorial añadirás una IP secundaria en Debian 12 primero de forma temporal con `ip`, y después de forma persistente con `ifupdown` en `/etc/network/interfaces`. ## Requisitos previos Para seguir esta guía necesitas: - Un servidor con Debian 12 que use `ifupdown` para la red (es el sistema por defecto en Debian; Debian 13 funciona igual), por ejemplo un VPS de CubePath. - Un usuario con privilegios `sudo`. - La IP adicional ya asignada a tu servidor y su máscara. En CubePath aparece en el panel de cliente. - Acceso a la consola VNC de tu proveedor, por si un error en la configuración de red te deja sin SSH. En los ejemplos se usan `203.0.113.10/24` como IP principal y `203.0.113.50` como IP adicional. Sustitúyelas por las tuyas. ## Paso 1: Identificar la interfaz y la configuración actual Lista las interfaces y sus direcciones: ```bash ip -br addr ``` ```output lo UNKNOWN 127.0.0.1/8 ::1/128 eth0 UP 203.0.113.10/24 2001:db8::10/64 ``` La interfaz con tu IP pública es la que vas a usar (aquí `eth0`; en tu servidor puede llamarse `ens18`, `enp1s0` u otro nombre). Comprueba dónde está definida su configuración: ```bash grep -rn "eth0" /etc/network/interfaces /etc/network/interfaces.d/ ``` ```output /etc/network/interfaces:10:auto eth0 /etc/network/interfaces:11:iface eth0 inet static ``` Si la interfaz aparece en un archivo generado por cloud-init (por ejemplo `/etc/network/interfaces.d/50-cloud-init`), mira el paso 4 antes de hacer cambios persistentes, porque cloud-init puede sobrescribirlo. ## Paso 2: Probar la IP adicional de forma temporal Añade la IP con el comando `ip` para comprobar que el enrutamiento funciona antes de tocar ningún archivo. Este cambio se pierde al reiniciar: ```bash sudo ip addr add 203.0.113.50/32 dev eth0 label eth0:0 ``` Usa la máscara que te haya indicado tu proveedor. Si la IP adicional es de la misma subred que la principal y te han dado un prefijo como `/24`, puedes usarlo; si es una IP suelta, `/32` es lo correcto. Verifica que la dirección aparece en la interfaz: ```bash ip addr show dev eth0 ``` ```output 2: eth0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether bc:24:11:aa:bb:cc brd ff:ff:ff:ff:ff:ff inet 203.0.113.10/24 brd 203.0.113.255 scope global eth0 valid_lft forever preferred_lft forever inet 203.0.113.50/32 scope global eth0:0 valid_lft forever preferred_lft forever ``` Ahora comprueba desde otro equipo (tu ordenador, no el propio servidor) que la IP responde: ```bash ping -c 3 203.0.113.50 ``` ```output 3 packets transmitted, 3 received, 0% packet loss, time 2003ms ``` Si no responde, revisa que la IP esté asignada a este servidor en el panel y que ningún cortafuegos bloquee ICMP. Cuando funcione, elimina la IP temporal para configurarla de forma persistente: ```bash sudo ip addr del 203.0.113.50/32 dev eth0 ``` ## Paso 3: Configurar el alias de forma persistente Haz una copia del archivo de red antes de editarlo: ```bash sudo cp /etc/network/interfaces /etc/network/interfaces.bak ``` Ábrelo con tu editor: ```bash sudo nano /etc/network/interfaces ``` Deja la configuración de la interfaz principal como está y añade al final un bloque para el alias: ```text # Interfaz principal (no la modifiques) auto eth0 iface eth0 inet static address 203.0.113.10/24 gateway 203.0.113.1 # IP adicional auto eth0:0 iface eth0:0 inet static address 203.0.113.50/32 ``` Ten en cuenta estas reglas: - El alias solo lleva `address` (con su prefijo). No añadas `gateway` ni `dns-nameservers`: la puerta de enlace y el DNS se definen una sola vez, en la interfaz principal. - Para más IPs, repite el bloque con `eth0:1`, `eth0:2`, etc. - El alias comparte la dirección MAC de la interfaz física, así que no hace falta nada más en el hipervisor. Guarda el archivo y levanta solo el alias. Así no reinicias la interfaz principal ni cortas tu sesión SSH: ```bash sudo ifup eth0:0 ``` Comprueba que la IP está activa: ```bash ip -br addr show dev eth0 ``` ```output eth0 UP 203.0.113.10/24 203.0.113.50/32 2001:db8::10/64 ``` Para confirmar que el cambio sobrevive a un reinicio, reinicia el servidor en un momento en que puedas permitirlo y repite el `ping` desde fuera: ```bash sudo reboot ``` ## Paso 4: Evitar que cloud-init sobrescriba la red Las imágenes cloud de Debian suelen generar la configuración de red con cloud-init. Si tu interfaz está definida en `/etc/network/interfaces.d/50-cloud-init`, cloud-init puede regenerar ese archivo en el siguiente arranque. Pon tu bloque del alias en `/etc/network/interfaces` o en un archivo propio dentro de `/etc/network/interfaces.d/`, nunca en el archivo de cloud-init. Comprueba que `/etc/network/interfaces` incluye los archivos de esa carpeta: ```bash grep source /etc/network/interfaces ``` ```output source /etc/network/interfaces.d/* ``` Si prefieres que cloud-init deje de gestionar la red por completo, crea este archivo: ```bash sudo nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg ``` ```yaml network: {config: disabled} ``` A partir de ese momento la configuración de red es solo tuya: cualquier cambio de IP principal tendrás que hacerlo a mano. ## Paso 5: Usar la IP adicional en un servicio Por defecto, las conexiones salientes siguen usando la IP principal, y los servicios que escuchan en `0.0.0.0` aceptan conexiones en todas las IPs. Para que un servicio escuche solo en la IP adicional, indícalo en su configuración. Por ejemplo, en un bloque `server` de Nginx: ```nginx listen 203.0.113.50:80; ``` Verifica en qué direcciones escucha cada servicio: ```bash sudo ss -tlnp ``` ## Eliminar un alias Desactiva el alias, borra su bloque de `/etc/network/interfaces` y comprueba que ha desaparecido: ```bash sudo ifdown eth0:0 ``` ```bash sudo nano /etc/network/interfaces ``` ```bash ip -br addr show dev eth0 ``` ## Solución de problemas - **`ifup` devuelve `RTNETLINK answers: File exists`.** La IP ya está en la interfaz, normalmente porque quedó añadida del paso 2. Quítala con `sudo ip addr del 203.0.113.50/32 dev eth0` y vuelve a ejecutar `sudo ifup eth0:0`. - **La IP aparece en la interfaz pero no responde desde fuera.** Confirma en el panel que la IP está asignada a este servidor y revisa el cortafuegos (`sudo ufw status` o `sudo nft list ruleset`). - **Te has quedado sin red tras reiniciar.** Entra por la consola VNC, restaura la copia con `sudo cp /etc/network/interfaces.bak /etc/network/interfaces` y reinicia. ## Conclusión Tu servidor responde ahora en la IP adicional de forma persistente, sin haber reiniciado la interfaz principal. El mismo método sirve para añadir tantas IPs como necesites, un bloque por alias. Como siguientes pasos, puedes asignar la nueva IP a un sitio web concreto en Nginx o Apache, o abrir en el cortafuegos solo los puertos que deban responder en esa dirección.