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
ifupdownpara 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:
ip -br addr
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:
grep -rn "eth0" /etc/network/interfaces /etc/network/interfaces.d/
/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:
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:
ip addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> 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:
ping -c 3 203.0.113.50
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:
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:
sudo cp /etc/network/interfaces /etc/network/interfaces.bak
Ábrelo con tu editor:
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:
# 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ñadasgatewaynidns-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:
sudo ifup eth0:0
Comprueba que la IP está activa:
ip -br addr show dev eth0
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:
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:
grep source /etc/network/interfaces
source /etc/network/interfaces.d/*
Si prefieres que cloud-init deje de gestionar la red por completo, crea este archivo:
sudo nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
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:
listen 203.0.113.50:80;
Verifica en qué direcciones escucha cada servicio:
sudo ss -tlnp
Eliminar un alias
Desactiva el alias, borra su bloque de /etc/network/interfaces y comprueba que ha desaparecido:
sudo ifdown eth0:0
sudo nano /etc/network/interfaces
ip -br addr show dev eth0
Solución de problemas
ifupdevuelveRTNETLINK answers: File exists. La IP ya está en la interfaz, normalmente porque quedó añadida del paso 2. Quítala consudo ip addr del 203.0.113.50/32 dev eth0y vuelve a ejecutarsudo 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 statusosudo 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/interfacesy 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.
