Turn off ipv6 linux

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

Протокол IPv6 — это новая технология, которая предоставляет намного большее адресное пространство IP адресов, более высокую безопасность и скорость работы. Но это все в идеале. IPv6 нарушает обратную совместимость с IPv4 и сейчас в большинстве случаев используется старый протокол. Мы уже очень подробно рассматривали чем отличается IPv6 от IPv4, поэтому не будем повторять все еще раз.

Поскольку на данный момент IPv6 используется достаточно редко, этот протокол полностью поддерживается далеко не всем оборудованием. Если IPv6 не поддерживается вашим роутером или провайдером, то это замедлит работу сети, дольше будут определяться доменные имена сайтов и будет выполняться попытка получения IPv6 адреса, что тоже приведет к задержке. В этой небольшой заметке мы рассмотрим как отключить IPv6 в Ubuntu или других совместимых дистрибутивах.

Проверка поддержки IPv6

Все современные дистрибутивы поддерживают IPv6 без исключений. Но чтобы убедиться что ваша локальная машина получила ipv6 адрес вы можете выполнить команду:

ipv6

В разделе для подключения eth0 вы увидите адрес inet4 и inet6, в inet6 будет показан адрес Ipv6, который присвоен этому компьютеру роутером. Все адреса, начинающиеся с fe80 — это адреса локальных сетей. Но присутствие этого адреса еще не означает, что он поддерживается вашим провайдером. Для проверки этого пункта можно попытаться отправить ping запрос на ipv6.google.com:

Если вы увидите привычный ответ о времени доставки пакетов, то значит все работает, но если ipv6 провайдером не поддерживается вы получите network unreachable или что-то в этом роде. В таком случае IPv6 лучше отключить чтобы интернет работал быстрее.

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

Есть несколько способов отключить IPv6 Ubuntu мы рассмотрим их все.

Способ 1. С помощью sysctl

Первый способ решения нашей задачи, это редактирование параметров ядра во время выполнения с помощью sysctl. Для отключения IPv6 выполните:

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

Вы можете также пойти другим путем и записать все эти значения в файл настройки, чтобы они применялись по умолчанию при старте системы:

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

Сохраните файл, закройте его и перезапустите sysctl для обновления конфигурации:

Теперь, когда вы выполните ip addr show, здесь не должно быть ipv6 адреса:

Читайте также:  Yum install nginx linux

ipv62

Способ 2. Отключить ipv6 в Grub

Вы также можете отключить IPv6 отредактировав параметры загрузки ядра в Grub. Для этого откройте файл /etc/default/grub и добавьте туда такую строку:

GRUB_CMDLINE_LINUX = «ipv6.disable = 1»

ipv61

Если переменная GRUB_CMDLINE_LINUX уже существует то вы можете добавить это значение в конец строки к другим параметрам. После завершения сохраните изменения и обновите конфигурацию Grub с помощью команды:

После перезагрузки отключение ipv6 Ubuntu 16.04 будет завершено и ваша сеть станет работать быстрее.

Выводы

В этой статье мы рассмотрели как отключить ipv6 linux как видите, это очень просто. Возможно, вы и не знали раньше, но если ваш провайдер не поддерживает этот протокол, то его лучше отключить.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Похожие записи

Оцените статью

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

15 комментариев к “Как отключить IPv6 в Ubuntu”

Но можно наоборот включить поддержку протокола ipv6, даже если Ваш провайдер его не поддерживает. Для этого нужно установить демона miredo.
sudo apt-get install miredo Ответить

В прошлой статье об этом упоминалось в качестве альтернативы, когда рассматривалось сравнение нового и старого протоколов, правда без названия пакета. Это может увеличить безопасность, но не увеличит скорость, так как информация об адресе по протоколу ipv6 записывается внутри пакета, передающегося по старому протоколу ipv4. Ответить

Подскажите, как теперь убрать эти строки из ядра?
$sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
$ sudo sysctl net.ipv6.conf.default.disable_ipv6=1
$ sudo sysctl net.ipv6.conf.lo.disable_ipv6=1 Ответить

$ sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
$ sudo sysctl net.ipv6.conf.default.disable_ipv6=0
$ sudo sysctl net.ipv6.conf.lo.disable_ipv6=0 Ответить

Через sysctl наверное стоит уточнить, что на новых версиях дистрибутивов при загрузке параметры ядра читаются не sysctl, а systemd-sysctl. Файл sysctl.conf надо кидать не в /etc/ а в /etc/sysctl.d/ Ответить

через GRUB
GRUB_CMDLINE_LINUX_DEFAULT=»ipv6.disable=1″
GRUB_CMDLINE_LINUX=»ipv6.disable=1″
без пробелов, получилось Ответить

Исправьте пожалуйста
GRUB_CMDLINE_LINUX = «ipv6.disable = 1»
на
GRUB_CMDLINE_LINUX=»ipv6.disable=1″ без пробелов. Иначе в Ruscue Mod требует зайти, и без участия пользователя не загрузится. А если это удаленный сервер, придётся ехать к нему Ответить

Первый метод работает на 20.0.4 ровно до перезагрузки системы. После этого всё возвращается на круги своя. То есть возвращается inet6 Ответить

Мужики а почему пусто в 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 Ответить

Пустым быть не должен. #
# /etc/sysctl.conf — Configuration file for setting system variables
# See /etc/sysctl.d/ for additional system variables.
# See sysctl.conf (5) for information.
# #kernel.domainname = example.com # Uncomment the following to stop low-level messages on console
#kernel.printk = 3 4 1 3 ##############################################################3
# Functions previously found in netbase
# # Uncomment the next two lines to enable Spoof protection (reverse-path filter)
# Turn on Source Address Verification in all interfaces to
# prevent some spoofing attacks
#net.ipv4.conf.default.rp_filter=1
#net.ipv4.conf.all.rp_filter=1 # Uncomment the next line to enable TCP/IP SYN cookies
# See http://lwn.net/Articles/277146/
# Note: This may impact IPv6 TCP sessions too
#net.ipv4.tcp_syncookies=1 # Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1 # Uncomment the next line to enable packet forwarding for IPv6
# Enabling this option disables Stateless Address Autoconfiguration
# based on Router Advertisements for this host
#net.ipv6.conf.all.forwarding=1 ###################################################################
# Additional settings — these settings can improve the network
# security of the host and prevent against some network attacks
# including spoofing attacks and man in the middle attacks through
# redirection. Some network environments, however, require that these
# settings are disabled so review and enable them as needed.
#
# Do not accept ICMP redirects (prevent MITM attacks)
#net.ipv4.conf.all.accept_redirects = 0
#net.ipv6.conf.all.accept_redirects = 0
# _or_
# Accept ICMP redirects only for gateways listed in our default
# gateway list (enabled by default)
# net.ipv4.conf.all.secure_redirects = 1
#
# Do not send ICMP redirects (we are not a router)
#net.ipv4.conf.all.send_redirects = 0
#
# Do not accept IP source route packets (we are not a router)
#net.ipv4.conf.all.accept_source_route = 0
#net.ipv6.conf.all.accept_source_route = 0
#
# Log Martian Packets
#net.ipv4.conf.all.log_martians = 1
#
fs.file-max = 131072
#
vm.swappiness=10
#
vm.vfs_cache_pressure=100
#
#vm.overcommit_ratio = 100
#vm.overcommit_memory = 2
#
vm.overcommit_ratio=80
vm.overcommit_memory=1 Хотя бы так. Скопируй и ниже добавь: net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1 Пробелы лучше убрать! Ответить

Читайте также:  Astra linux fly samba

Уважаемый!
И чему вы, учите? GRUB_CMDLINE_LINUX = «ipv6.disable = 1» — дичайшая ошибка. После этого система уже нормально не стартанет! Пробелов быть не должно, получилось три разных значения «ipv6.disable», «=», «1». Прописывается вот так — «ipv6.disable=1».
Вот пример: GRUB_CMDLINE_LINUX_DEFAULT=»i8042.reset quiet nosplash debug intel_pstate=disable intel_idle.max_cstate=3 ipv6.disable=1″
Начинающие просто проклянут вас. 🙂 Ответить

Источник

Как отключить IP версии 6 в Linux

Обновлено

Обновлено: 16.05.2020 Опубликовано: 23.03.2019

IPv6 далеко не всегда может использоваться в системе. Более того, он может вызвать некоторые проблемы при обращении к локальной петле (127.0.0.1) — запросы могут пойти на адрес ::1, что может привести к тому, что некоторые приложения будут работать не корректно.

В данной инструкции используются универсальные методы, которые подойдут для различных систем, например, Ubuntu, CentOS, Debian, Red Hat и так далее.

Отключение через ядро Linux

Быстрее всего отключить IPv6 через настройку ядра. Это универсальный способ и он подойдет для многих дистрибутивов на базе Linux.

Глобально (для всех интерфейсов)

Создаем или открываем файл:

* 99-sysctl.conf является основным конфигурационным файлом, а 10-ipv6-privacy.conf в каталоге sysctl.d — дополнительным. Для удобства лучше использовать последний.

Добавляем следующие строки:

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

Если вносили изменения в файл /etc/sysctl.d/99-sysctl.conf:

Если вносили изменения в файл /etc/sysctl.d/10-ipv6-privacy.conf:

sysctl -p /etc/sysctl.d/10-ipv6-privacy.conf

Проверяем — должны остаться только адреса IPv4:

Для определенного интерфейса

Если нужно отключить IPv6 только для одного интерфейса, например, для eth0, также открываем настройку ядра.

Источник

Вики IT-KB

Относительно IPv6 есть такой тезис «Включенный и ненастроенный протокол IPv6 хуже, чем выключенный протокол IPv6». Если использование IPv6 не планируется, то можно выключить поддержку IPv6 глобально на уровне системы.

Убедимся в том, что в системе действительно присутствуют IPv6 интерфейсы:

Читайте также:  Setting up linux file system

Также можно увидеть, что некоторые приложения имеют активные TCP-прослушиватели на интерфейсах IPv6. Посмотреть все прослушиваемые в системе порты можно командой:

Чтобы выключить поддержку IPv6 на всех сетевых интерфейсах сразу, открываем на редактирование файл sysctl.conf

В конец файла добавляем строки:

# Turn off IPv6 # net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 net.ipv6.conf.eth0.disable_ipv6 = 1

Для выключения IPv6 на всех интерфейсах системы достаточно параметра net.ipv6.conf.all.disable_ipv6 . Прочие параметры указаны в качестве примера отключения на уровне отдельных интерфейсов. При этом, если необходимо, изменяем имя сетевого интерфейса eth0 на тот, который используется у нас.

Для вступления изменений в силу, заставим sysctl перечитать файл /etc/sysctl.conf :

Cнова проверяем список интерфейсов, где IPv6 интерфейсов уже не должно остаться:

Дополнительные источники информации:

Проверено на следующих конфигурациях:

Версия ОС
Debian GNU/Linux Stretch 9.2.1
Debian GNU/Linux Buster 10.0
Debian GNU/Linux Bullseye 11.2
Debian GNU/Linux Bookworm 12.0

Автор первичной редакции:
Алексей Максимов
Время публикации: 25.11.2017 11:33

Обсуждение

На дебиан 10, в котором настройка сетевой карты проведена через gui (advanced network manager) такой способ не прокатывает, и отключение в самом графическом интерфейсе не проходит.

Алексей Максимов , 14.12.2019 18:49

Описанное здесь было проверено на Debian Buster без графического интерфейса, и в таком случае это работает. Систем подобного класса с графическим интерфейсом не имеем, поэтому прокомментировать это никак не смогу.

Откуда в buster такое именование сетевых интерфейсов? Зачем перезагружать сервер, если достаточно сервис перезапустить?

Отлично работает, за исключением ошибки
bash: sysctl: command not found
так как в чистом дебиане 10 не настроено окружение на
/sbin
Решением будет использовать
/sbin/sysctl -p
заместо
/sbin
Благодарю автора за эту заметку, сервера теперь нормально и быстро обновляются. Пива и мяса в ваш дом.

Зачем каждый интерфейс указывать, если первой строкой (net.ipv6.conf.all.disable_ipv6 = 1) стоит отключение ipv6 на всех интерфейсах?

Алексей Максимов , 09.06.2023 17:25

Это больше для наглядности. Что отключить можно не только глобально, но и на уровне отдельного интерфейса.

unix-linux/debian/how-to-turn-off-ipv6-in-debian-linux.txt · Последнее изменение: 20.06.2023 14:16 — Алексей Максимов

Источник

Оцените статью
Adblock
detector