Блог компанії 3v-Hosting

Як вимкнути IPv6 на Ubuntu Server і чи потрібно це робити

Адміністрування

10 хв.


IPv6 з’явився понад двадцять років тому, але суперечки навколо нього не вщухають і досі. Одні адміністратори вмикають підтримку нового протоколу за замовчуванням і вважають це нормою для будь-якого сучасного сервера. Інші вимикають IPv6 одразу після встановлення системи - іноді з міркувань безпеки, а іноді заради простішої мережевої конфігурації.

Найчастіше це питання виникає під час налаштування VPS, виділених серверів, Docker-інфраструктури та корпоративних Linux-систем, особливо якщо сам проєкт працює лише через IPv4 і додаткових переваг від IPv6 поки що не отримує.

Ну і, як у будь-якому іншому питанні, тут універсальної відповіді теж немає, адже все залежить від того, які завдання виконує сервер, які сервіси на ньому запущені та як влаштована мережа навколо нього. В одних випадках відключення IPv6 допомагає усунути зайву складність, а в інших може призвести до несподіваних проблем. Давайте в цій статті розберемося, коли такий крок дійсно має сенс, які наслідки він може спричинити та як правильно вимкнути IPv6 в Ubuntu Server, якщо ви вирішили це зробити.

 

 

 

 

Що таке IPv6 і навіщо він потрібен

IPv6 - це мережевий протокол, який з’явився як заміна IPv4. Причина була досить простою: вільних IPv4-адрес ставало дедалі менше, а кількість пристроїв в Інтернеті продовжувала зростати не по днях, а по годинах. Про це ми писали в окремій статті.

Усе полягає в тому, що в IPv4 використовується 32-бітна адресація, і цього вистачає приблизно на 4,3 мільярда адрес, чого творцям протоколу здавалося більш ніж достатньо на всі часи (наївні). У IPv6 адреса складається вже зі 128 бітів, тому доступний адресний простір збільшується до практично невичерпних масштабів - принаймні, ми зараз так думаємо :)

Для серверної інфраструктури використання IPv6 надає кілька корисних можливостей, таких як, наприклад:

  • пряме використання публічних IP-адрес без проміжного NAT;
  • більш зручну роботу великих мереж;
  • спрощення деяких схем маршрутизації;
  • сумісність із сучасними сервісами та провайдерами;
  • запас на майбутнє без оглядки на дефіцит адрес.

 

І справді, багато великих інтернет-компаній вже давно працюють з IPv6. Серед них - Google, Cloudflare, Meta та Microsoft. Все більше операторів зв’язку та провайдерів надають клієнтам IPv6 за замовчуванням, особливо в мобільних мережах.

Але тут є нюанс, оскільки наявність підтримки протоколу IPv6 ще не означає, що конкретному серверу він дійсно потрібен. Багато проєктів роками працюють лише через IPv4 і взагалі не стикаються з жодними обмеженнями. Саме тому питання відключення IPv6 досі виникає регулярно.

 

 

 

 

Коли має сенс відключати IPv6, а коли краще залишити

Сам по собі IPv6 не створює проблем. Більшість причин для його відключення пов’язані з конкретною інфраструктурою, налаштуваннями мережі або особливостями програмного забезпечення, що використовується.

Візьмемо, наприклад, звичайний VPS із корпоративним сайтом, внутрішніми сервісами та базою даних. Провайдер видає лише IPv4, DNS-записів AAAA немає, весь трафік працює за звичною схемою маршрутизації. У такій конфігурації IPv6 може роками залишатися увімкненим, але фактично ніяк не використовуватися.

Тому адміністратори часто відключають його, щоб спростити роботу системи.

Одна з поширених причин пов’язана з мережевою безпекою. Налаштуванню брандмауера для IPv4 зазвичай приділяють багато уваги, а про IPv6 іноді забувають. У результаті сервер виявляється добре захищеним за одним протоколом і частково відкритим за іншим. Особливо це характерно для старих серверів, які пережили кілька міграцій та оновлень без повного аудиту конфігурації.

Іноді проблеми виникають через програмне забезпечення. Деякі старі додатки досі не надто впевнено працюють у режимі Dual Stack, коли одночасно доступні IPv4 та IPv6. Таке можна зустріти серед застарілих VPN-рішень, корпоративних систем, промислового ПЗ та саморобних сервісів, створених ще в епоху домінування IPv4. Буває, що відключення IPv6 усуває проблему буквально за кілька хвилин.

Є й більш прозаїчна причина - діагностика. Коли сервер використовує одразу два мережеві стеки, пошук несправностей стає набагато складнішим. Додаток може спочатку намагатися встановити з’єднання через IPv6, чекати тайм-ауту, а потім перемикатися на IPv4. У результаті користувач бачить лише повільне завантаження сайту чи API, хоча справжня причина криється набагато глибше.

Для внутрішніх сервісів ситуація часто ще простіша. Якщо сервер працює всередині корпоративної мережі, обслуговує тестове середовище або використовується для внутрішніх завдань компанії, то IPv6 може не давати жодних відчутних переваг. Зайва функціональність - це зайві налаштування, які теж потрібно підтримувати.

При цьому відключення IPv6 не можна вважати універсальною рекомендацією, оскільки існує чимало сценаріїв, де його краще залишити увімкненим. Наприклад, якщо провайдер надає повноцінну підтримку IPv6, проєкт орієнтований на міжнародну аудиторію або активно використовує сучасні хмарні сервіси та CDN. Багато великих платформ вже давно розглядають IPv6 як стандартну частину інфраструктури, а не як додаткову можливість.

Є ще один важливий фактор. У ряді країн частка IPv6-трафіку вже становить значну частину всього інтернет-трафіку. Тому для публічних сайтів, SaaS-проєктів, інтернет-магазинів та інших сервісів із широкою аудиторією відмова від IPv6 може обмежити доступність ресурсу для частини користувачів.

Виходячи з цього, рішення формулюється досить просто: якщо IPv6 реально використовується або може знадобитися в найближчому майбутньому, тоді залишаємо. Якщо протокол не задіяний, ускладнює супровід системи та не приносить практичної користі, тоді його відключення цілком виправдане.

 

 

 

 

Що перевірити перед відключенням IPv6

Перш ніж вимикати IPv6, варто переконатися, що сервер дійсно не використовує цей протокол. Іноді IPv6 виявляється задіяним там, де адміністратор цього навіть не очікує, наприклад через DNS, мережеві інтерфейси або окремі сервіси.

Тому спочатку перевірте, чи ввімкнено IPv6 у системі взагалі. Зробити це можна за допомогою команди:

sysctl net.ipv6.conf.all.disable_ipv6

 

Якщо команда повертає 0, це означає, що IPv6 активний:

net.ipv6.conf.all.disable_ipv6 = 0

Якщо ж вона повертає 1, протокол уже вимкнено:

net.ipv6.conf.all.disable_ipv6 = 1

 

 

Після цього варто перевірити, чи призначено вашому серверу IPv6-адреси:

ip -6 addr

І заодно перевірити таблицю маршрутизації:

ip -6 route

 

Звичайно, наявність адрес і маршрутів ще не свідчить про реальне використання IPv6, але зате показує, що система готова працювати через цей протокол.

Наступний крок - перевірка DNS. Якщо для домену, спрямованого на ваш сервер, опубліковано AAAA-записи, то частина користувачів може підключатися до сайту саме через IPv6. Для перевірки виконайте команду:

dig AAAA yourdomain.com

Якщо запис існує, то, ймовірно, відключати IPv6 без попередньої підготовки не варто, оскільки ви можете заблокувати доступ для деяких існуючих користувачів.

 

Окрему увагу варто приділити мережевим сервісам. Навіть якщо ви спеціально не налаштовували IPv6 - деякі програми автоматично відкривають IPv6-сокети під час запуску.

Перевірити це можна так:

ss -tulpn | grep tcp6

або:

netstat -tulpn | grep tcp6

У списку нерідко зустрічаються SSH, Nginx, Apache, Docker Proxy, панелі керування серверами та інші мережеві служби.

 

Якщо такі служби вже приймають з’єднання через IPv6, просте відключення протоколу може призвести до несподіваних наслідків. Особливо на серверах, які вже давно працюють у виробничому середовищі й за цей час набрали безліч додаткових компонентів.

Тому перед зміною мережевої конфігурації корисно відповісти на три запитання:

  • чи є у сервера IPv6-адреси,
  • чи існують AAAA-записи в DNS,
  • чи прослуховують додатки IPv6-порти.

Зазвичай цього достатньо, щоб зрозуміти, наскільки безпечно відключати протокол у конкретній системі.

 

 

 

 

 

Тимчасове відключення IPv6 та перевірка результату

Якщо рішення про відключення IPv6 уже прийнято, то спочатку варто виконати його в тестовому режимі. Такий підхід дозволяє перевірити роботу сервера без внесення постійних змін до конфігурації системи. Для цього можна скористатися sysctl.

Виконайте команди:

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

Налаштування застосовуються одразу. Після цього нові IPv6-з’єднання перестануть встановлюватися, а сервер продовжить працювати через IPv4.

 

Перевірити результат можна за допомогою такої команди:

sysctl net.ipv6.conf.all.disable_ipv6

Якщо у відповіді відображається значення 1, IPv6 вимкнено.

 

За бажанням можна додатково переглянути стан IPv6-адрес на інтерфейсах:

ip -6 addr

І перевірити, чи залишилися сервіси, які продовжують відкривати IPv6-сокети:

ss -tulpn | grep tcp6

 

Тимчасове відключення зручне тим, що не впливає на постійну конфігурацію системи. А якщо після перевірки з’ясується, що програми, сайти та мережеві служби працюють у штатному режимі, тоді вже можна переходити до повного вимкнення IPv6.

Після перезавантаження сервера встановлені нами вище параметри автоматично повернуться до попередніх значень. Саме тому такий спосіб зазвичай використовують як проміжний етап перед внесенням постійних змін.

 

 

 

Способи повного відключення IPv6 в Ubuntu Server

Після перевірки шляхом тимчасового відключення можна перейти до постійного налаштування. В Ubuntu для цього є кілька варіантів. Вони відрізняються глибиною впливу на систему та вимогами до перезавантаження сервера.

 

Відключення IPv6 через sysctl

Найпоширеніший спосіб - це зміна параметрів sysctl.

Для цього відкрийте файл:

sudo nano /etc/sysctl.conf

і додайте в кінець файлу такі рядки:

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

 

Застосуйте зміни:

sudo sysctl -p

 

Перевірити результат можна так:

cat /proc/sys/net/ipv6/conf/all/disable_ipv6

Якщо команда повертає значення 1, це означає, що налаштування застосовано успішно, і для більшості серверів цього достатньо.

 

 

Вимкнення IPv6 через Netplan

Іноді завдання полягає не у повному вимкненні IPv6, а лише у забороні отримання IPv6-адрес на мережевому інтерфейсі. У системах з Netplan це можна зробити через мережеву конфігурацію.

Приклад файлу мережевої конфігурації для вимкнення можливості отримання IPv6-адрес через DHCP:

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: true
      dhcp6: false

 

Після зміни конфігурації виконайте:

sudo netplan apply

 

Цей варіант відключає отримання адрес через DHCPv6, але сам стек IPv6 у системі продовжує працювати. Тому його зазвичай використовують у випадках, коли потрібно змінити параметри мережі, а не повністю відмовитися від IPv6.

 

 

Вимкнення IPv6 через GRUB

Є й більш жорсткий варіант, наприклад, вимкнення IPv6 на рівні ядра Linux ще до запуску мережевих служб.

Для цього відкрийте файл:

sudo nano /etc/default/grub

Знайдіть рядок:

GRUB_CMDLINE_LINUX_DEFAULT=«quiet splash»

І додайте параметр вимкнення IPv6:

GRUB_CMDLINE_LINUX_DEFAULT=«quiet splash ipv6.disable=1»

 

Після збереження оновіть конфігурацію завантажувача та перезавантажте сервер:

sudo update-grub
sudo reboot

Такий спосіб вимикає IPv6 ще на етапі завантаження ядра і вважається найрадикальнішим варіантом.

 

 

Який спосіб обрати

Якщо коротко порівняти всі три підходи, то картина виглядає так:

Спосіб Потрібне перезавантаження Рівень відключення
Sysctl Ні Підходить для більшості сценаріїв
Netplan Ні Вимикає отримання IPv6-адрес
GRUB Так Повністю вимикає IPv6 на рівні ядра

У більшості випадків достатньо налаштування через sysctl. Netplan підходить для керування параметрами мережевих інтерфейсів. Ну а варіант із GRUB зазвичай використовують тоді, коли підтримка IPv6 не повинна завантажуватися в системі взагалі.

 

 

 

 

 

Як переконатися, що IPv6 дійсно вимкнено

Трохи повторимося. Після внесення змін корисно швидко перевірити, чи IPv6 дійсно перестав працювати в системі.

Перевірте, чи залишилися IPv6-адреси на мережевих інтерфейсах:

ip -6 addr

Перевірте таблицю маршрутизації:

ip -6 route

Переконайтеся, що сервіси більше не слухають IPv6-порти:

ss -lnpt | grep tcp6

Для додаткової перевірки можна спробувати виконати IPv6-пінг:

ping6 google.com

Якщо протокол вимкнено повністю, то ця команда завершиться помилкою. Це означатиме, що IPv6 більше не використовується ні на рівні мережі, ні на рівні додатків.

 

 

 

 

 

IPv6 і Docker

Якщо сервер використовується для запуску контейнерів Docker, то з’являється ще один нюанс.

У стандартній конфігурації Docker зазвичай працює через IPv4, і для більшості проєктів цього цілком достатньо. Але Docker підтримує IPv6, тому за відповідного налаштування контейнери можуть отримувати власні IPv6-адреси та використовувати окремі маршрути.

Через це мережева схема стає складнішою, з’являються додаткові маршрути, збільшується кількість правил у брандмауері, а перенесення контейнерів між різними серверами та середовищами іноді вимагає додаткової перевірки мережевих налаштувань. Через це в умовах корпоративної інфраструктури можуть виникати питання й з боку внутрішніх політик безпеки.

Звісно, сам Docker від цього працювати не перестане. Тут мова радше про додаткові точки контролю, за якими доводиться стежити адміністратору.

Тому в інфраструктурах, повністю побудованих навколо IPv4, IPv6 часто відключають не тільки на хостовій системі, але й у Docker-мережах. Такий підхід спрощує супровід і робить мережеву конфігурацію більш передбачуваною. Особливо на невеликих VPS і серверах, де контейнери запускаються для типових завдань і підтримка IPv6 просто не потрібна.

 

 

 

 

 

FAQ

 

Чи безпечніший сервер без IPv6?

Саме по собі відключення IPv6 не робить сервер безпечнішим. Усе залежить від налаштувань брандмауера, мережевих правил та контролю доступу. Якщо IPv6 налаштовано правильно і для нього діють ті самі обмеження, що й для IPv4, додаткового ризику він не створює.

 

Чи можна вимкнути IPv6 на VPS?

Так. У більшості випадків IPv6 можна вимкнути за допомогою засобів самої операційної системи без будь-яких обмежень з боку провайдера. Винятки трапляються рідко і зазвичай пов’язані зі спеціалізованими хмарними платформами або нестандартною мережевою архітектурою.

 

Чи потрібно вимикати IPv6 на Ubuntu 24.04?

Особливої потреби в цьому немає. Ubuntu 24.04 повноцінно підтримує IPv6 і коректно працює з ним «з коробки». Рішення залежить від завдань сервера та особливостей інфраструктури. Якщо IPv6 не використовується, його можна вимкнути для спрощення конфігурації.

 

Чи працює Docker без IPv6?

Так. Більшість Docker-контейнерів використовують лише IPv4 і не мають жодних обмежень. Для типових веб-проектів, API, баз даних та внутрішніх сервісів підтримка IPv6 найчастіше не потрібна.

 

Чи можна знову увімкнути IPv6?

Так. Для цього достатньо скасувати раніше внесені зміни в sysctl, Netplan або GRUB, після чого застосувати нову конфігурацію та, за необхідності, перезавантажити сервер. Повернення до початкових налаштувань зазвичай займає кілька хвилин.

 

 

 

Висновок

IPv6 давно перестав бути експериментальною технологією і поступово стає звичною частиною інтернет-інфраструктури. Багато провайдерів, хмарних платформ і великих онлайн-сервісів уже активно використовують його у повсякденній роботі.

При цьому необхідність використання IPv6 значною мірою залежить від конкретного сервера. Якщо проєкт використовує сучасні хмарні сервіси, орієнтований на міжнародну аудиторію або вже працює з IPv6-трафіком, то відключати протокол без вагомої причини навряд чи варто.

Однак зворотна ситуація також трапляється досить часто. Внутрішні сервіси, тестові середовища, невеликі VPS та корпоративні системи нерідко працюють виключно через IPv4, і в таких випадках відмова від IPv6 допомагає трохи спростити мережеву конфігурацію та скоротити кількість налаштувань, які потрібно підтримувати.

Універсального правила тут немає. Належна практика полягає в тому, що спочатку потрібно перевірити, чи використовується IPv6 на сервері, потім оцінити наслідки відключення і лише після цього вносити зміни. Такий підхід майже завжди виявляється надійнішим, ніж сліпе дотримання старих рекомендацій або шаблонних інструкцій з Інтернету.

3v-Hosting Team

Автор

3v-Hosting Team

Команда 3v-Hosting складається з групи відданих своїй справі інженерів та операторів, які повністю присвятили себе створенню та підтримці основи наших сервісів. Щодня ми занурюємося у світ віртуальних та виділених серверів, займаючись усім, від розгортання та моніторингу до усунення реальних проблем, що виникають у виробничих середовищах. Більшість наших статей ґрунтуються на практичному досвіді, а не лише на теорії. Ми ділимося своїми думками щодо викликів, з якими стикаємося: перебоїв у роботі, помилок у налаштуваннях, складнощів мережевої взаємодії та архітектурних рішень, що впливають на стабільність і надійність. Наша місія проста - ми хочемо ділитися знаннями, які допоможуть вам керувати своїми проектами з меншою кількістю несподіванок та набагато більшою передбачуваністю.