К основному содержимому

IPv6 на VPS: настройка, преимущества и работа с адресами

VDS / VPS · 19.04.2026 · 4 мин чтения
Иллюстрация к статье «IPv6 на VPS: настройка, преимущества и работа с адресами»

IPv6 — шестая версия протокола IP с 128-битными адресами. Это решение проблемы исчерпания IPv4. IPv6-адрес выглядит так: 2001:db8::1 — восемь групп из четырёх шестнадцатеричных цифр.

Сравнение IPv4 и IPv6

ПараметрIPv4IPv6
Длина адреса32 бита128 бит
Кол-во адресов~4.3 млрд340 × 10^36
Запись192.168.1.12001:db8::1
NATНеобходимНе нужен
DHCPОбязателенSLAAC (автонастройка)
IPSecОпциональноВстроен

Чтение IPv6-адресов

# Полная форма
2001:0db8:0000:0000:0000:0000:0000:0001

# Сокращённая (убираем ведущие нули, :: = группы нулей)
2001:db8::1

# Loopback (аналог 127.0.0.1)
::1

# Все адреса (аналог 0.0.0.0)
::

# Примеры с сервисами
::ffff:192.168.1.1  # IPv4-mapped IPv6 address

Настройка IPv6 через Netplan (Ubuntu 22.04+)

# /etc/netplan/01-netcfg.yaml
network:
  version: 2
  ethernets:
    eth0:
      dhcp4: true
      dhcp6: false
      addresses:
        - "2001:db8:1::/64"       # ваш IPv6-блок от провайдера
      routes:
        - to: "::/0"
          via: "fe80::1"          # IPv6-шлюз провайдера
      nameservers:
        addresses:
          - "8.8.8.8"
          - "2001:4860:4860::8888"  # Google DNS IPv6
sudo netplan apply

Проверка IPv6-связности

# Ping IPv6
ping6 google.com
ping6 2001:4860:4860::8888

# Показать IPv6-адреса
ip -6 addr show

# Таблица маршрутизации IPv6
ip -6 route show

# Traceroute по IPv6
traceroute6 google.com

Настройка UFW для IPv6

# Включить IPv6 в UFW
# /etc/default/ufw
IPV6=yes

# Разрешить SSH по IPv6
ufw allow in on eth0 to any port 22 proto tcp

sudo ufw reload
💡 Двойной стек (Dual Stack): Современные серверы работают одновременно на IPv4 и IPv6. Браузер автоматически выбирает IPv6 при наличии (Happy Eyeballs RFC 6555). Nginx и Apache слушают оба протокола автоматически на :: (all).
⚠️ UFW по умолчанию блокирует IPv6: Если включили UFW, но не установили IPV6=yes — IPv6-трафик проходит мимо правил файервола. Обязательно проверьте /etc/default/ufw.

Частный случай: IPv6-only VPS

Некоторые бюджетные тарифы выдают только IPv6-адрес, без IPv4 вовсе. Исходящие соединения к IPv4-хостам такой сервер устанавливает через NAT64-шлюз провайдера и DNS64-резолвер, который подставляет синтетические IPv6-адреса для доменов, у которых есть только A-запись.

# Проверить, действительно ли сервер IPv6-only
ip -4 addr show | grep inet
# Если строк с inet (IPv4) нет вовсе — исходящий IPv4-трафик идёт только через NAT64

# Указать публичный DNS64-резолвер, если провайдер не подставил свой
nameserver 2001:67c:2b0::4

На таком сервере часть legacy-сервисов, жёстко проверяющих исходящий IPv4-адрес отправителя, может отказывать в соединении — это стоит уточнить у провайдера до заказа тарифа.

Типичные ошибки IPv6 на VPS

СимптомПричина
connect: Network is unreachable при ping6IPv6-адрес не назначен интерфейсу вовсе, либо маршрут по умолчанию для ::/0 не настроен в секции routes
RTNETLINK answers: File existsАдрес уже назначен интерфейсу автоматически через SLAAC и добавляется повторно вручную той же командой
sysctl: cannot stat .../disable_ipv6IPv6 полностью отключён на уровне ядра параметром ipv6.disable=1 в GRUB — sysctl не находит соответствующий файл в /proc
ip -6 addr показывает только fe80::...Провайдер не выдал глобальный /64-блок или блок не прописан в netplan; link-local адрес существует всегда, даже без реальной IPv6-связности
Сайт не открывается по IPv6, хотя ping6 проходитВеб-сервер явно забиндлен на IPv4-адрес вместо :: (all), нужно сменить адрес прослушивания в конфиге

Когда IPv6 пока не нужен

  • Провайдер VPS ещё не выдаёт IPv6-блок на тариф — без адреса от провайдера настраивать нечего, нужно запрашивать отдельный /64 в поддержке
  • Аудитория сайта почти полностью сидит в IPv4-сетях — это видно по логам веб-сервера; включение IPv6 не даст ощутимого эффекта, но добавит поверхность для файрвол-правил
  • Используются сторонние сервисы, которые ещё не поддерживают IPv6 (некоторые платёжные шлюзы, legacy API) — для исходящих соединений к ним всё равно нужен IPv4, дуал-стек их не заменяет
  • Нет времени продублировать все firewall-правила под IPv6 — незакрытые порты по IPv6 при включённом дуал-стеке создают ложное чувство защищённости, если правила писались только под iptables и IPv4

Проверка результата

Настройка IPv6 тесно связана с базовыми сетевыми понятиями и именем сервера — см. статьи про адресацию IPv4 и про смену hostname. Для веб-сервера дополнительно проверьте настройки в статье про настройку Nginx — слушает ли он на ::.

# Убедиться, что сервер отвечает по IPv6 снаружи
curl -6 -I https://example.com

# Проверить, что порт 80 слушается и на IPv6-сокете тоже —
# в выводе должна быть строка с [::]:80, а не только 0.0.0.0:80
ss -tlnp | grep ':80'
Статья помогла?
← Назад в базу знаний Задать вопрос поддержке