Русский (Russian)

Настройка статического IPv6-адреса на Linux VPS

2 min
VPS/VDS-хостинг

Если сервер пока не отвечает по IPv6, скорее всего, адрес выдан, но не настроен в системе. В этом руководстве показано, как задать его статически на Ubuntu, Debian и AlmaLinux, проверить связь и защитить брандмауэром. Оно подходит для любого VPS Linux Infrawire с выделенным IPv6.

📋 Требования

  • VPS с SSH-доступом root под Ubuntu 24.04, Debian 12 или AlmaLinux 9 / Rocky 9. В личном кабинете вы найдёте IP-адрес и пароль root.
  • Ваш IPv6-адрес, длина префикса и шлюз, обозначенные ниже как VPS_IPV6, PREFIX (часто 64) и IPV6_GATEWAY.
  • Имя интерфейса (в примерах eth0):
Bash
ip -br link ip -6 addr show ip -6 route show

Пока вы правите сетевые файлы, держите открытой вторую SSH-сессию, чтобы ошибка не лишила вас доступа.

🟠 Ubuntu 24.04: Netplan

Файлы Netplan находятся в /etc/netplan/. В облачных образах файл часто создаётся cloud-init и может быть перезаписан при перезагрузке, поэтому сначала отключите управление сетью в cloud-init:

Bash
sudo nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
YAML
network: {config: disabled}

Затем отредактируйте ваш файл Netplan (например, /etc/netplan/50-cloud-init.yaml) и добавьте IPv6-адрес и маршрут. Строки IPv4 оставьте:

YAML
1network: 2 version: 2 3 ethernets: 4 eth0: 5 addresses: 6 - VPS_IP/IPV4_PREFIX 7 - VPS_IPV6/PREFIX 8 routes: 9 - to: default 10 via: IPV4_GATEWAY 11 - to: default 12 via: IPV6_GATEWAY 13 nameservers: 14 addresses: [1.1.1.1, 2606:4700:4700::1111]
Bash
sudo chmod 600 /etc/netplan/*.yaml sudo netplan try

Если не подтвердить изменения, netplan try автоматически откатит их через 120 секунд, что защищает от неверной конфигурации. Подтвердите клавишей Enter или выполните sudo netplan apply, когда будете уверены.

🔴 Debian 12: /etc/network/interfaces

Bash
sudo nano /etc/network/interfaces

Добавьте блок для того же интерфейса:

INI
iface eth0 inet6 static address VPS_IPV6/PREFIX gateway IPV6_GATEWAY dns-nameservers 2606:4700:4700::1111

Строка dns-nameservers работает только при установленном пакете resolvconf; иначе укажите резолвер в /etc/resolv.conf. Примените изменения:

Bash
sudo systemctl restart networking

Перезапуск службы может ненадолго оборвать соединение. Если интерфейс получает IPv4 по DHCP и вы хотите лишь добавить IPv6, можно также выполнить из консоли sudo ifdown eth0 && sudo ifup eth0.

🔵 AlmaLinux 9 / Rocky 9: nmcli

Интерфейсом управляет NetworkManager. Сначала выведите названия подключений:

Bash
nmcli connection show

Используйте увиденное имя (CON_NAME, например System eth0 или cloud-init eth0):

Bash
sudo nmcli connection modify 'CON_NAME' ipv6.method manual \ ipv6.addresses VPS_IPV6/PREFIX \ ipv6.gateway IPV6_GATEWAY \ ipv6.dns 2606:4700:4700::1111 sudo nmcli connection up 'CON_NAME'

Изменение сохраняется в профиле подключения и переживает перезагрузки.

✅ Проверка соединения

Bash
ip -6 addr show dev eth0 ip -6 route show default ping -6 -c 3 IPV6_GATEWAY ping -6 -c 3 2606:4700:4700::1111 curl -6 -I https://www.debian.org

В старых системах ping6 делает то же, что ping -6. Проверьте также с другой машины, где есть IPv6, используя адрес вашего VPS:

Bash
ping -6 -c 3 VPS_IPV6 ssh root@VPS_IPV6

🔥 Брандмауэр для IPv6

Правило, существующее только для IPv4, оставляет сторону IPv6 открытой. В UFW убедитесь, что поддержка IPv6 включена:

Bash
grep IPV6 /etc/default/ufw # должно быть IPV6=yes sudo ufw allow 22/tcp sudo ufw allow 80,443/tcp sudo ufw enable sudo ufw status verbose

Каждое правило тогда появится дважды, второй раз с пометкой (v6). В AlmaLinux firewalld охватывает оба семейства теми же командами:

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

🛠️ Устранение неполадок

Адрес есть, но ping до шлюза не проходит. Проверьте длину префикса и шлюз. Некоторые сети используют link-local шлюз вроде fe80::1; тогда укажите его в качестве шлюза и добавьте dev eth0 к маршруту, если этого требует ваш инструмент.

Работает до следующей перезагрузки. Конфигурацию переписывает другой инструмент: cloud-init в Ubuntu (см. первый раздел) либо команда ip -6 addr add, результат которой так и не попал в конфигурационные файлы. Команды, выполненные через ip, временные.

IPv6 отвечает на ping, но сайты не открываются. Брандмауэр или служба слушают только IPv4. Проверьте через ss -tlnp: веб-сервер должен показывать [::]:80, а не только 0.0.0.0:80. В nginx добавьте listen [::]:80; в блок server.


🚀 Ваш VPS теперь работает по IPv6: опубликуйте запись AAAA, и сервисы станут доступны по обоим протоколам.

Следите за последними предложениями, скидками и специальными акциями.

Смотреть акции

Мы используем файлы cookie

Аналитические cookie улучшают работу сайта. Данные не продаются третьим лицам. Подробнее в политике конфиденциальности.