Как отключить IPv6 в Ubuntu

IPv6 необходим для роста интернета, но в некоторых сценариях (совместимость, тестирование, старое оборудование, специфичная маршрутизация) требуется временно или постоянно его отключить. Ниже — безопасная и проверенная инструкция для Ubuntu, плюс рекомендации и альтернативы.
Краткое определение
- IPv6 — протокол сетевого уровня, замена IPv4 для расширенного адресного пространства. Используется автоматически параллельно с IPv4.
- sysctl — утилита и интерфейс ядра Linux для чтения и записи параметров ядра во время работы.
Постоянное отключение IPv6 на Ubuntu
- Откройте терминал (Ctrl + Alt + T) и отредактируйте файл 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- Первая строка отключает IPv6 для всех интерфейсов.
- Вторая — для интерфейсов, создаваемых по умолчанию.
- Третья — отключает IPv6 на loopback-интерфейсе (локальное взаимодействие).
Сохраните изменения (Ctrl + O) и закройте редактор (Ctrl + X).
Примените параметры ядра:
sudo sysctl -p- Перезапустите сетевой сервис (в зависимости от используемого менеджера сети команда может отличаться):
sudo systemctl restart systemd-networkdЕсли вы используете NetworkManager, перезапустите его:
sudo systemctl restart NetworkManager- Проверьте статус:
cat /proc/sys/net/ipv6/conf/all/disable_ipv6Если вывод — 1, IPv6 отключён.
Временное отключение IPv6
Для временного отключения (до перезагрузки) выполните:
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1Перезапустите сетевые сервисы как выше. После перезагрузки изменения, сделанные через sysctl -w, исчезнут, если вы не сохранили их в /etc/sysctl.conf или в /etc/sysctl.d/.
Проверка и отладка
- Посмотреть активные IPv6-адреса на интерфейсах:
ip -6 addr show- Проверить маршруты IPv6:
ip -6 route show- Просмотреть события логов NetworkManager или systemd-networkd:
sudo journalctl -u NetworkManager -b
sudo journalctl -u systemd-networkd -bЕсли в выводе остаются адреса или связи IPv6 — проверьте конфигурацию NetworkManager, cloud-init или файлов в /etc/sysctl.d/ которые могут переопределять параметры.
Откат и восстановление IPv6
Чтобы вернуть IPv6, удалите добавленные строки из /etc/sysctl.conf или замените значения на 0:
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0Затем примените:
sudo sysctl -p
sudo systemctl restart systemd-networkdАльтернативные подходы
- Отключение на уровне ядра через параметр загрузчика GRUB: добавьте ipv6.disable=1 в строку GRUB_CMDLINE_LINUX и выполните sudo update-grub. Это полностью отключит стек IPv6 в ядре.
- Использовать конфигурацию в /etc/sysctl.d/99-disable-ipv6.conf вместо /etc/sysctl.conf — удобно для управления конфигурацией в пакетах и автоматизации.
- Отключить IPv6 только для конкретного интерфейса в NetworkManager (GUI или nmcli) если нужно частичное решение.
- Блокировать трафик IPv6 на фаерволе (ufw/iptables/nftables) — когда нельзя отключить стек, но нужно запретить трафик.
Когда нельзя отключать IPv6 и когда это не решит проблему
- Если сеть или сервисы вашей организации уже используют IPv6 (например, облачные провайдеры, CDN), отключение приведёт к потере связи.
- Некоторые современные сервисы ожидают наличие IPv6 и могут вести себя некорректно при его отключении.
- Отключение IPv6 не решит проблем с маршрутизацией, если источник проблемы — неправильно настроенный маршрутизатор или внешний провайдер.
Важно: прежде чем отключать IPv6 в продакшн-среде, проверьте зависимости, резервируйте конфигурации и протестируйте откат.
Роль-по-рольному чеклисту
Системный администратор:
- Сделать резервную копию /etc/sysctl.conf
- Проверить зависимости сервисов на IPv6
- Развернуть изменения в тестовой среде
- Применить в продакшн в окно обслуживания
Разработчик/DevOps:
- Обновить документацию CI/CD и контейнеров
- Проверить, что мониторинг и логирование работают без IPv6
Домашний пользователь:
- Проверить, что маршрутизатор и устройства не зависят от IPv6
- Использовать временное отключение для диагностики
Быстрая шпаргалка: команды
- Редактировать sysctl.conf:
sudo nano /etc/sysctl.conf- Применить параметры:
sudo sysctl -p- Временно отключить:
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1- Проверить статус:
cat /proc/sys/net/ipv6/conf/all/disable_ipv6Критерии приёмки
- cat /proc/sys/net/ipv6/conf/all/disable_ipv6 выводит 1.
- ip -6 addr show не показывает глобальных IPv6-адресов на целевых интерфейсах.
- Сервисная функциональность проверена и работает как ожидалось после изменений.
Безопасность и конфиденциальность
Отключение IPv6 может изменить способ сбора сетевых логов и работу фаервола. Убедитесь, что политики безопасности и правила аудита учитывают эти изменения. Если у вас есть соответствие (GDPR, ISO и т.д.), задокументируйте изменения.
Краткое резюме
Отключение IPv6 на Ubuntu производится быстро через sysctl, но требует проверки зависимости сервисов и правильного тестирования. Для временной диагностики используйте sysctl -w; для постоянного изменения — внесите строки в /etc/sysctl.conf или /etc/sysctl.d/. Всегда готовьте план отката и тестируйте в контролируемой среде.
Важно: IPv6 — ключевой компонент современной сети. Отключайте только при явной необходимости и с пониманием последствий.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone