Блог компании 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 - это группа преданных своему делу инженеров и операторов, которые занимаются созданием и поддержкой основы наших сервисов. Каждый день мы погружаемся в мир виртуальных и выделенных серверов, занимаясь всем, от развертывания и мониторинга до устранения реальных проблем, возникающих в производственных средах. Большинство наших статей основано на практическом опыте, а не просто на теории. Мы делимся своими наблюдениями о проблемах, с которыми сталкиваемся: перебоях в производительности, ошибках в настройке, тонкостях сетевых решений и архитектурных выборах, влияющих на стабильность и надежность. Наша миссия проста - мы хотим делиться знаниями, которые позволят вам управлять своими проектами с меньшим количеством неожиданностей и гораздо большей предсказуемостью.