До основного вмісту

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'
Чи була стаття корисною?
← Назад до бази знань Поставити питання підтримці