Configuración de IPv6 en servidores VPS y dedicados | INTROSERV
EUR
european

EUR

usa

USD

Spanish Es
Ex. VAT Ex. VAT 0%

Configuración de IPv6 en servidores VPS y dedicados

Nivel: Principiante / Intermedio
Tiempo estimado: ~30 minutos
Objetivo: Habilitar y configurar la red IPv6 en un servidor dedicado o VPS para que el servidor sea accesible por IPv6 y todos los servicios de red funcionen correctamente con la nueva dirección.

Introducción

Es probable que su servidor INTROSERV ya tenga una dirección IPv6 asignada; simplemente aún no está configurada. En esta guía de configuración de red IPv6 en un VPS, habilitará IPv6 en un servidor Linux, asignará una dirección IPv6 estática, configurará la puerta de enlace IPv6 en Linux y comprobará la conectividad. La guía abarca Ubuntu (Netplan), Debian (/etc/network/interfaces) y AlmaLinux (nmcli).

¿Qué es IPv6?

IPv6 (Internet Protocol versión 6) es la generación actual del Protocolo de Internet y está diseñado para sustituir a IPv4. Las diferencias prácticas más importantes para los administradores de servidores:

  • Una dirección IPv6 tiene 128 bits y se escribe como ocho grupos de cuatro dígitos hexadecimales separados por dos puntos: 2001:db8:85a3::8a2e:370:7334.
  • Una Global Unicast Address (GUA) es el equivalente IPv6 de una dirección IPv4 pública: es enrutable en Internet. A su VPS se le asignará una.
  • Una dirección link-local se asigna automáticamente a cada interfaz compatible con IPv6 (prefijo fe80::/10). No es enrutable más allá del segmento local, pero es imprescindible para el descubrimiento de vecinos y los protocolos de enrutamiento.
  • Una subred (prefijo IPv6) define qué parte de la dirección identifica la red. En un VPS típico verá un prefijo /64 o /128.
  • La puerta de enlace predeterminada (IPv6) es el router al que su servidor envía los paquetes cuando el destino no está en el enlace local. Su proveedor le facilitará esta dirección.

Requisitos previos

Antes de empezar, asegúrese de cumplir las siguientes condiciones:

  • Sistema operativo: Ubuntu 20.04/22.04/24.04 LTS, Debian 11/12/13 o AlmaLinux/RHEL 8/9/10
  • Acceso: acceso sudo o root al servidor por SSH
  • Asignación IPv6: una dirección IPv6, un prefijo de subred y una puerta de enlace predeterminada proporcionados por su proveedor de alojamiento. Consúltelos en su panel de control antes de empezar.
  • Conocimientos necesarios: manejo seguro de la línea de comandos de Linux y edición básica de archivos de configuración

Info

En INTROSERV puede consultar la dirección IPv6, el prefijo y la puerta de enlace asignados en el Client Area: acceda a su servicio y abra la pestaña Network o IP Addresses. Los planes VPS de INTROSERV suelen recibir un prefijo /112, mientras que los servidores dedicados reciben un prefijo /64. Si no aparece ninguna dirección IPv6, contacte con el soporte de INTROSERV para solicitar la asignación.

Paso 1: Comprobar el estado actual de IPv6

Antes de tocar ninguna configuración, compruebe qué información tiene ya el kernel.

Ejecute:

ip -6 addr show

Salida esperada en un servidor sin configuración IPv6 aplicada todavía:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP inet6 fe80::250:56ff:fe00:1/64 scope link valid_lft forever preferred_lft forever

La dirección fe80:: es la dirección link-local: el kernel la asigna automáticamente, sin importar la configuración. La ausencia de una entrada con scope global indica que aún no hay ninguna Global Unicast Address configurada.

Compruebe también si IPv6 está habilitado en el kernel:

sudo sysctl net.ipv6.conf.all.disable_ipv6

Info

En Debian 13, los usuarios normales no tienen /usr/sbin en su $PATH, por lo que ejecutar sysctl sin sudo devolverá command not found. Además, una instalación mínima de Debian 13 no incluye sudo de forma predeterminada. Deberá cambiar al usuario root (su -), instalar sudo (apt install sudo) y añadir su usuario al grupo sudoers antes de continuar.

Salida esperada:

net.ipv6.conf.all.disable_ipv6 = 0

Un valor 0 significa que IPv6 está habilitado. Si ve 1, IPv6 se ha deshabilitado a nivel de kernel.

Para volver a habilitarlo temporalmente:

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0

Para que el cambio sea permanente, busque en /etc/sysctl.conf o en los archivos de /etc/sysctl.d/ una línea con net.ipv6.conf.all.disable_ipv6 = 1, elimínela o coméntela y ejecute:

sudo sysctl -p

Paso 2: Averiguar el nombre de la interfaz

Necesita el nombre exacto de su interfaz de red pública antes de editar cualquier archivo de configuración.

Ejecute:

ip -br link

Salida esperada:

lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP> eth0 UP 00:50:56:00:00:01 <BROADCAST,MULTICAST,UP,LOWER_UP>

La interfaz en estado UP con una dirección MAC es su interfaz principal. Los nombres habituales son eth0, ens3, ens18, ens33, ens160 (habitual en VMware y en kernels modernos) y variantes similares ensXX/enpXsX. Use el nombre exacto que muestre ip -br link en todos los pasos de configuración siguientes.

Paso 3: Configurar una dirección IPv6 estática

El método de configuración depende de su distribución. Ubuntu 18.04 y posteriores usan Netplan; Debian usa /etc/network/interfaces de forma predeterminada; AlmaLinux usa NetworkManager o scripts de interfaz en /etc/sysconfig/network-scripts/.

Reúna los siguientes valores del panel de control de su proveedor antes de continuar:

Campo Ejemplo
Dirección IPv6 2001:db8:1000::10
Longitud del prefijo 64
Puerta de enlace predeterminada (IPv6) 2001:db8:1000::1

Sustituya estos valores de ejemplo por los reales en todos los pasos siguientes.

3.1 Ubuntu (Netplan)

Ubuntu utiliza la configuración IPv6 de Netplan. Los archivos de configuración se encuentran en /etc/netplan/.

En primer lugar, liste el contenido del directorio /etc/netplan/ para localizar su archivo de configuración:

ls /etc/netplan/

Info

Un nombre de archivo fijo como 00-installer-config.yaml no existe en la mayoría de los VPS. En las imágenes con cloud-init suele llamarse 50-cloud-init.yaml. Use en los pasos siguientes el nombre real que obtuvo con el comando anterior.

Haga una copia de seguridad del archivo existente (sustituya 50-cloud-init.yaml por el nombre real de su archivo):

sudo cp /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.bak

Abra el archivo:

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

Añada los bloques addresses y routes bajo su interfaz. Un archivo completo con IPv4 (ya configurada) y la nueva dirección IPv6 estática tiene este aspecto:

network: version: 2 ethernets: eth0: addresses: - 203.0.113.10/24 # existing IPv4 address - 2001:db8:1000::10/64 # new IPv6 address routes: - to: default via: 203.0.113.1 # existing IPv4 gateway - to: default via: 2001:db8:1000::1 # IPv6 default gateway nameservers: addresses: - 8.8.8.8 - 2001:4860:4860::8888 # Google public DNS over IPv6

Si su servidor obtiene la dirección IPv4 mediante DHCP (algo habitual en muchos VPS recién creados), su archivo será ligeramente distinto. No copie sin más la configuración IPv4 estática anterior, o perderá su conexión IPv4 operativa. Este es un ejemplo con dhcp4: true:

network: version: 2 ethernets: eth0: dhcp4: true addresses: - 2001:db8:1000::10/64 # new IPv6 address routes: - to: default via: 2001:db8:1000::1 # IPv6 default gateway nameservers: addresses: - 2001:4860:4860::8888 # Google public DNS over IPv6

Warning

Netplan utiliza YAML. La sangría es significativa: use espacios, nunca tabuladores. Una sola línea mal alineada hará que la configuración falle sin avisar o que no se aplique.

Pruebe la configuración antes de aplicarla:

sudo netplan try

netplan try aplica la configuración con un temporizador de 120 segundos. Si no la confirma, se revierte automáticamente, por lo que es seguro ejecutarlo por SSH. Si la salida es correcta, confirme:

# Press Enter when prompted, or type: sudo netplan apply

Tip

Utilice siempre netplan try en lugar de netplan apply cuando trabaje por SSH. Si la nueva configuración interrumpe su conexión, la reversión automática le devolverá el acceso.

3.2 Debian (/etc/network/interfaces)

En Debian, la forma clásica de añadir IPv6 a /etc/network/interfaces es incluir un segundo bloque iface para la misma interfaz con la familia inet6.

Haga primero una copia de seguridad:

sudo cp /etc/network/interfaces /etc/network/interfaces.bak

Abra el archivo:

sudo nano /etc/network/interfaces

Su bloque IPv4 existente será similar a este:

auto eth0 iface eth0 inet static address 203.0.113.10 netmask 255.255.255.0 gateway 203.0.113.1

Añada el bloque IPv6 inmediatamente debajo:

iface eth0 inet6 static address 2001:db8:1000::10 netmask 64 gateway 2001:db8:1000::1

Info

No añada una segunda línea auto eth0. La única directiva auto activa tanto el bloque inet como el inet6 cuando se inicializa la interfaz.

Aplique la nueva configuración sin reiniciar el sistema:

sudo ifdown eth0 && sudo ifup eth0

Warning

Ejecutar ifdown eth0 por SSH interrumpe su conexión. Ejecute este comando desde la consola serie o web del proveedor, o utilice ifreload -a. Tenga en cuenta que ifreload -a requiere el paquete ifupdown2, que no se incluye en la instalación base de Debian. Instálelo con sudo apt install ifupdown2 para recargar las interfaces sin cortar las sesiones activas.

3.3 AlmaLinux / RHEL (nmcli)

En AlmaLinux y RHEL 8/9, NetworkManager es el gestor predeterminado. Use nmcli para añadir la dirección IPv6 sin editar archivos a mano.

Averigüe el nombre de su conexión:

nmcli connection show

Salida esperada:

NAME UUID TYPE DEVICE eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet eth0

Añada la dirección IPv6 estática:

sudo nmcli connection modify eth0 \ ipv6.method manual \ ipv6.addresses "2001:db8:1000::10/64" \ ipv6.gateway "2001:db8:1000::1"

Aplique la configuración sin interrumpir la conexión SSH:

sudo nmcli device reapply eth0

Paso 4: Probar la conectividad IPv6

Una vez aplicada la configuración, compruebe que la dirección está asignada y que el enrutamiento funciona.

4.1 Comprobar que la dirección está asignada

ip -6 addr show eth0

Salida esperada:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP inet6 2001:db8:1000::10/64 scope global valid_lft forever preferred_lft forever inet6 fe80::250:56ff:fe00:1/64 scope link valid_lft forever preferred_lft forever

Debería ver su Global Unicast Address con scope global. La dirección link-local (scope link) también estará presente.

4.2 Comprobar la puerta de enlace predeterminada

ip -6 route show

Salida esperada:

2001:db8:1000::/64 dev eth0 proto kernel metric 100 default via 2001:db8:1000::1 dev eth0 proto static metric 100

La línea default via confirma que su puerta de enlace predeterminada IPv6 está correctamente configurada.

4.3 Probar la conectividad IPv6

Para probar la conectividad IPv6 con un host público conocido, use ping6 (o ping -6 en sistemas más recientes):

ping6 -c 4 2606:4700:4700::1111

Salida esperada:

PING 2606:4700:4700::1111(2606:4700:4700::1111) 56 data bytes 64 bytes from 2606:4700:4700::1111: icmp_seq=1 ttl=57 time=1.23 ms 64 bytes from 2606:4700:4700::1111: icmp_seq=2 ttl=57 time=1.19 ms 64 bytes from 2606:4700:4700::1111: icmp_seq=3 ttl=57 time=1.21 ms 64 bytes from 2606:4700:4700::1111: icmp_seq=4 ttl=57 time=1.20 ms

Si ping6 falla pero la dirección está asignada, el problema casi siempre es uno de estos tres: la puerta de enlace predeterminada es incorrecta, el firewall de su proveedor bloquea ICMPv6 o la asignación IPv6 no se ha activado en su lado.

Tip

También puede probar la conectividad desde el exterior con una herramienta pública como https://ipv6-test.com. Introduzca la dirección IPv6 de su servidor y ejecute una comprobación de accesibilidad.

4.4 Comprobar la resolución DNS por IPv6

En primer lugar, asegúrese de tener instalada la utilidad dig.

En AlmaLinux 10, dig no se incluye en la instalación base:

sudo dnf install -y bind-utils

En imágenes mínimas de Debian, el paquete también puede faltar:

sudo apt install -y dnsutils

Compruebe que su servidor puede resolver nombres de host mediante el servidor DNS IPv6:

dig AAAA google.com @2001:4860:4860::8888

Una respuesta correcta incluirá una ANSWER SECTION con uno o varios registros AAAA.

Paso 5: Ajustar el firewall para IPv6

Si su servidor ejecuta un firewall de software, debe permitir explícitamente el tráfico IPv6. De forma predeterminada, muchas configuraciones de firewall solo cubren IPv4.

Info

En INTROSERV, todos los puertos están abiertos de forma predeterminada a nivel de red para VPS y servidores dedicados, con un pequeño conjunto de excepciones (los puertos de correo 25, 465, 587, 2525 y el puerto LDAP 389 se filtran para proteger la reputación de las IP). Esto significa que no necesita abrir puertos en un firewall del proveedor para el tráfico web estándar ni para SSH. Sigue siendo su responsabilidad el firewall a nivel de sistema operativo de su servidor. Consulte la guía Seguridad de red y filtrado de puertos para más información.

Ubuntu/Debian (UFW)

En Debian, UFW no está incluido en la instalación base. Instálelo primero si es necesario:

sudo apt install -y ufw

UFW aplica las reglas tanto a IPv4 como a IPv6 cuando IPV6=yes está establecido en su configuración. Compruébelo:

grep IPV6 /etc/default/ufw

Salida esperada:

IPV6=yes

Si muestra IPV6=no, abra el archivo y cámbielo:

sudo nano /etc/default/ufw

A continuación, recargue UFW:

sudo ufw reload

Info

Si UFW aún no se ha activado, ufw reload devolverá Firewall not enabled. No es un problema: las reglas se aplicarán automáticamente cuando active el firewall con sudo ufw enable.

Sus reglas ufw allow existentes (SSH, HTTP, HTTPS) se aplicarán ahora también a IPv6.

AlmaLinux / RHEL (firewalld)

firewalld gestiona IPv6 de forma nativa mediante su modelo de zonas. Si su interfaz está en la zona correcta, el tráfico IPv6 se gestiona automáticamente. Compruébelo:

sudo firewall-cmd --get-active-zones

Para servicios como SSH y HTTPS:

sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload

Info

Si un servicio ya está permitido en la zona, firewall-cmd mostrará Warning: ALREADY_ENABLED. Es normal y no es un error. En AlmaLinux, ssh y dhcpv6-client están permitidos de forma predeterminada en la zona public.

Info

ICMPv6 es imprescindible para que IPv6 funcione correctamente. Se encarga del descubrimiento de vecinos, del descubrimiento de la MTU de la ruta y de los anuncios de router, es decir, los equivalentes IPv6 de ARP. No bloquee ICMPv6 por completo. La mayoría de las herramientas de firewall lo permiten de forma predeterminada; si escribe reglas nftables o ip6tables directamente, permita icmpv6 de forma explícita.

Reversión

Ubuntu (Netplan)

Restaure la copia de seguridad y aplíquela (sustituya 50-cloud-init.yaml por el nombre real de su archivo):

sudo cp /etc/netplan/50-cloud-init.yaml.bak /etc/netplan/50-cloud-init.yaml sudo netplan apply

Debian (/etc/network/interfaces)

Restaure la copia de seguridad:

sudo cp /etc/network/interfaces.bak /etc/network/interfaces sudo ifdown eth0 && sudo ifup eth0

AlmaLinux (nmcli)

Elimine la configuración IPv6 de la conexión:

sudo nmcli connection modify eth0 ipv6.method auto sudo nmcli connection modify eth0 ipv6.addresses "" ipv6.gateway "" sudo nmcli connection modify eth0 ipv6.method ignore sudo nmcli device reapply eth0

Info

NetworkManager no permite establecer ipv6.method ignore mientras existan ipv6.addresses estáticas. Establecer primero el método en auto permite borrar correctamente las direcciones.

Deshabilitar IPv6 en todo el sistema (emergencia)

Si necesita desactivar IPv6 por completo en todas las interfaces:

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1

Para hacerlo persistente, añada lo siguiente a /etc/sysctl.d/99-disable-ipv6.conf:

net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1

A continuación, ejecute sudo sysctl -p /etc/sysctl.d/99-disable-ipv6.conf.

Solución de problemas

Ping6 falla de inmediato con «Network unreachable»

La puerta de enlace predeterminada (IPv6) falta o es incorrecta. Ejecute ip -6 route show y confirme que existe la entrada default via y que coincide con la puerta de enlace del panel de su proveedor.

La dirección aparece, pero scope es solo link, no global

La dirección se añadió a una interfaz equivocada o el archivo de configuración tiene un error tipográfico en la dirección o el prefijo. Revise con atención la asignación de su proveedor.

Netplan apply devuelve un error de análisis

La sangría YAML es incorrecta. Ejecute cat -A /etc/netplan/50-cloud-init.yaml (o con el nombre real de su archivo) para mostrar los tabuladores (se ven como ^I) y sustitúyalos por espacios.

SSH se corta tras ifdown en Debian

Use la consola web del proveedor o el acceso VNC/IPMI para recuperar el acceso. Restaure /etc/network/interfaces desde la copia de seguridad y ejecute ifup eth0.

UFW sigue bloqueando IPv6 tras establecer IPV6=yes

Las reglas añadidas antes del cambio se guardaron solo para IPv4. Ejecute sudo ufw reset y vuelva a añadir sus reglas; a partir de ahora se aplicarán a ambas familias.

Warning

El comando sudo ufw reset es destructivo: restablece todas las reglas del firewall a sus valores predeterminados. Asegúrese de saber qué puertos debe volver a permitir (como SSH) antes de ejecutarlo para no quedarse sin acceso.

Conclusión

Eso es todo. Su servidor INTROSERV ya tiene una dirección IPv6 operativa, una puerta de enlace predeterminada correctamente configurada y un firewall que cubre ambas familias de protocolos. Próximos pasos: solicite un registro PTR a través del Client Area de INTROSERV y actualice los virtual hosts de Nginx o Apache para que escuchen en la nueva dirección IPv6.

Versión del documento: 1.0
Última actualización: mayo de 2026
Responsable: Equipo de documentación técnica

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA