Как настроить IPv6 на VPS (Ubuntu Netplan, Debian, Rocky Linux, Windows Server)
Каждый облачный сервер JUSTG помимо IPv4 получает бесплатный IPv6-адрес. IPv6 даёт второй, независимый способ подключиться к VPS, делает ваши сайты доступными для мобильных сетей, работающих только по IPv6, и служит бесплатной альтернативой, когда нужен ещё один адрес. В этой инструкции показано, как проверить и настроить IPv6 на VPS с Debian, Ubuntu (Netplan), CentOS, Rocky Linux, AlmaLinux и Windows Server 2016/2019/2022, проверить связь через ping -6 и curl -6, подключиться по SSH через IPv6 и защитить новый адрес файрволом.
Шаг 1: Узнайте IPv6-адрес и шлюз
Войдите в личный кабинет JUSTG и откройте VPS в разделе «Мои продукты и услуги». В сведениях о сервере указаны назначенный IPv6-адрес, длина префикса и IPv6-шлюз. Если их нет, создайте тикет - поддержка пришлёт данные. В статье используются документационные значения: адрес 2001:db8::10/64, шлюз 2001:db8::1, IPv4 203.0.113.50. Замените их на свои.
Шаг 2: Проверьте, не настроен ли IPv6 уже
В некоторых образах IPv6 настраивается автоматически. В Linux выполните:
ip -6 addr show
ip -6 route show
ip link
Если есть строка inet6 2001:db8::10/64 scope global и маршрут по умолчанию через ваш шлюз, IPv6 уже работает - переходите к шагу 6. Адрес, начинающийся с fe80::, только локальный для канала и не подходит. Запомните имя интерфейса из ip link (например, eth0 или ens3).
Шаг 3: Статический IPv6 в Ubuntu через Netplan
Ubuntu 18.04 и новее используют Netplan. Откройте YAML-файл в /etc/netplan/ (обычно 50-cloud-init.yaml или 01-netcfg.yaml) и добавьте IPv6-адрес и маршрут рядом с существующими настройками IPv4. Отступы - только пробелами:
network:
version: 2
ethernets:
eth0:
addresses:
- 203.0.113.50/24
- "2001:db8::10/64"
routes:
- to: default
via: 203.0.113.1
- to: "::/0"
via: "2001:db8::1"
nameservers:
addresses: [1.1.1.1, 8.8.8.8]
Проверьте и примените. Команда netplan try автоматически откатит изменения через 120 секунд, если вы потеряете связь и не подтвердите их:
sudo netplan generate
sudo netplan try
sudo netplan apply
Если файл создан cloud-init, запретите ему перезаписывать настройки при перезагрузке:
echo "network: {config: disabled}" | sudo tee /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
Шаг 4: IPv6 в Debian (/etc/network/interfaces) и CentOS/Rocky (nmcli)
Debian с ifupdown: добавьте в /etc/network/interfaces блок inet6 для интерфейса под существующим блоком IPv4:
iface eth0 inet6 static
address 2001:db8::10/64
gateway 2001:db8::1
sudo systemctl restart networking
CentOS Stream, Rocky Linux и AlmaLinux используют NetworkManager. Выведите список подключений и переведите IPv6 в ручной режим для подключения вашего интерфейса (имя может быть System eth0, eth0 или Wired connection 1):
nmcli connection show
sudo nmcli connection modify "System eth0" ipv6.method manual \
ipv6.addresses 2001:db8::10/64 ipv6.gateway 2001:db8::1
sudo nmcli connection up "System eth0"
Шаг 5: Настройка IPv6 в Windows Server
Откройте командную строку от имени администратора, узнайте имя интерфейса (обычно Ethernet) и добавьте адрес и маршрут по умолчанию:
netsh interface ipv6 show interfaces
netsh interface ipv6 add address "Ethernet" 2001:db8::10/64
netsh interface ipv6 add route ::/0 "Ethernet" 2001:db8::1
Через графический интерфейс: «Панель управления > Центр управления сетями и общим доступом > Изменение параметров адаптера», правый щелчок по адаптеру, «Свойства > IP версии 6 (TCP/IPv6)», выберите «Использовать следующий IPv6-адрес» и укажите адрес, длину префикса 64 и основной шлюз.
Шаг 6: Проверка IPv6 через ping -6 и curl -6
# Linux
ping -6 -c 4 www.google.com
curl -6 https://ifconfig.co
# Windows (PowerShell)
ping -6 www.google.com
Если ping отвечает, а curl возвращает IPv6-адрес сервера, исходящий IPv6 работает. Чтобы проверить входящий доступ, выполните ping IPv6-адреса VPS с другой машины с поддержкой IPv6.
Шаг 7: Подключение по SSH через IPv6
С компьютера с IPv6 теперь можно подключаться напрямую к IPv6-адресу. OpenSSH по умолчанию слушает и IPv6; если нет, проверьте, что AddressFamily в /etc/ssh/sshd_config имеет значение any или inet6.
ssh root@2001:db8::10
ssh -6 root@2001:db8::10
Шаг 8: Файрвол для IPv6 (ufw, firewalld, ip6tables)
Частая ошибка - закрыть IPv4 и оставить IPv6 полностью открытым. ufw и firewalld применяют одно правило сразу к обоим протоколам:
# Debian / Ubuntu: make sure /etc/default/ufw contains IPV6=yes
sudo ufw allow 22/tcp
sudo ufw allow 80,443/tcp
sudo ufw enable
sudo ufw status verbose
# CentOS / Rocky / AlmaLinux (firewalld covers IPv4 and IPv6)
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http --add-service=https
sudo firewall-cmd --reload
Если вы управляете правилами вручную через ip6tables, обязательно разрешите ICMPv6, иначе перестанет работать обнаружение соседей (NDP) и IPv6 пропадёт:
ip6tables -A INPUT -i lo -j ACCEPT
ip6tables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
ip6tables -A INPUT -p ipv6-icmp -j ACCEPT
ip6tables -A INPUT -p tcp --dport 22 -j ACCEPT
ip6tables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
ip6tables -P INPUT DROP
# Debian / Ubuntu: save the rules
apt install iptables-persistent
netfilter-persistent save
В Windows Server правила брандмауэра Защитника Windows по умолчанию действуют и для IPv4, и для IPv6, если вы не ограничили область адресов.
Частые вопросы
IPv6 на облачных серверах JUSTG действительно бесплатный?
Да. Все облачные серверы JUSTG в Йоханнесбурге, Москве, Токио и Сеуле получают IPv6 без доплаты.
После применения настроек пропала связь. Что делать?
Откройте VNC-консоль в личном кабинете, восстановите резервную копию сетевого файла или исправьте отступы (Netplan) либо имя подключения (nmcli) и примените настройки снова.
Может ли IPv6 заменить дополнительный IPv4?
Для посетителей и сервисов с поддержкой IPv6 - да. Если IPv4 заблокирован из-за вашего собственного использования, можно продолжать работать через бесплатный IPv6 или докупить IPv4 через опции апгрейда в личном кабинете.
Если IPv6 на VPS всё ещё не работает, создайте тикет в технической поддержке JUSTG и приложите вывод ip -6 addr и ip -6 route.