В современных сетях все чаще используется IPv6, однако, бывают случаи, когда требуется отдавать предпочтение IPv4. В этой статье рассмотрены способы изменения приоритета с IPv6 на IPv4 для различных версий Ubuntu (20.04 и 22.04) и CentOS 7. Мы рассмотрим два метода: настройка файла gai.conf
и использование параметров sysctl
.
Метод 1: Изменение приоритета через gai.conf
Файл gai.conf
(getaddrinfo configuration) используется для настройки предпочтений адресов при разрешении имен. Настройка этого файла позволит системе предпочитать IPv4-адреса перед IPv6.
Ubuntu 20.04 и 22.04
Шаг 1: Открытие и редактирование gai.conf
1. Откройте терминал.
2. Отредактируйте файл /etc/gai.conf
с правами суперпользователя:
sudo vim /etc/gai.conf
Найдите строку, содержащую #precedence ::ffff:0:0/96 10
. Если она закомментирована (начинается с #
), удалите символ #
и измените приоритетный вес на 100
, чтобы активировать ее и повысить приоритет IPv4:
precedence ::ffff:0:0/96 100
Шаг 2: Сохранение изменений и перезагрузка сетевых служб
-
Сохраните файл и закройте текстовый редактор (в nano: нажмите
Ctrl+X
, затемY
иEnter
). -
Чтобы изменения вступили в силу, перезапустите сетевые службы или перезагрузите систему:
systemctl restart systemd-networkd
Автоматическое изменение строки через команду в консоли
Для автоматического изменения строки используйте следующую команду:
sudo sed -i 's/^#precedence ::ffff:0:0\/96 100/precedence ::ffff:0:0\/96 100/' /etc/gai.conf
Эта команда уберет символ #
и изменит приоритетный вес на 100
, чтобы система предпочитала IPv4-адреса.
CentOS 7
Шаг 1: Открытие и редактирование gai.conf
-
Откройте терминал.
-
Отредактируйте файл
/etc/gai.conf
с правами суперпользователя:
sudo vim /etc/gai.conf
Найдите строку, содержащую #precedence ::ffff:0:0/96 10
. Если она закомментирована (начинается с #
), удалите символ #
и измените приоритетный вес на 100
, чтобы активировать ее и повысить приоритет IPv4:
precedence ::ffff:0:0/96 100
Шаг 2: Сохранение изменений и перезагрузка сетевых служб
-
Сохраните файл и закройте текстовый редактор.
-
Перезапустите сетевые службы:
systemctl restart systemd-networkd
Автоматическое изменение строки через команду в консоли
Для автоматического изменения строки используйте следующую команду:
sudo sed -i 's/^#precedence ::ffff:0:0\/96 100/precedence ::ffff:0:0\/96 100/' /etc/gai.conf
Эта команда уберет символ #
и изменит приоритетный вес на 100
, чтобы система предпочитала IPv4-адреса.
Метод 2: Использование sysctl
для настройки приоритета IPv4
Использование параметров sysctl
позволяет управлять настройками ядра, что полезно для полного отключения IPv6 или изменения его поведения на уровне ядра.
Ubuntu 20.04 и 22.04
Шаг 1: Отключение IPv6 через sysctl
-
Откройте терминал.
-
Отредактируйте файл
/etc/sysctl.conf
с правами суперпользователя:
sudo vim /etc/sysctl.conf
Добавьте следующие строки в конец файла для отключения IPv6:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
Шаг 2: Применение изменений
-
Сохраните файл и закройте текстовый редактор.
-
Примените изменения с помощью команды:
sudo sysctl -p
Перезапустите сетевые службы:
Перезапуск systemd-networkd
:
sudo systemctl restart systemd-networkd
Перезапуск NetworkManager
:
sudo systemctl restart NetworkManager
CentOS 7
Шаг 1: Отключение IPv6 через sysctl
-
Откройте терминал.
-
Отредактируйте файл
/etc/sysctl.conf
с правами суперпользователя:
sudo vim /etc/sysctl.conf
Добавьте следующие строки в конец файла для отключения IPv6:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
Шаг 2: Применение изменений
-
Сохраните файл и закройте текстовый редактор.
-
Примените изменения с помощью команды:
sudo sysctl -p
Перезапустите сетевые службы:
Перезапуск network
:
sudo systemctl restart network
Перезапуск NetworkManager
:
sudo systemctl restart NetworkManager
Сравнение методов
Использование gai.conf
Преимущества:
-
Не требует полного отключения IPv6, что может быть полезно в сетях, где IPv6 необходим.
-
Простота настройки и минимальные изменения в системе.
Недостатки:
-
Изменения влияют только на порядок разрешения имен, не на весь стек сетевых протоколов.
Использование sysctl
Преимущества:
-
Полное отключение IPv6 может упростить диагностику сетевых проблем и устранить конфликты.
Недостатки:
-
Полное отключение IPv6 может вызвать проблемы в сетях, где используется только IPv6.
-
Требуется перезагрузка сетевых служб или системы для вступления изменений в силу.
Заключение
Изменение приоритета с IPv6 на IPv4 в Ubuntu и CentOS может быть достигнуто несколькими способами. Использование файла gai.conf
позволяет изменять приоритет адресов при разрешении имен, тогда как настройка через sysctl
может полностью отключить IPv6, принуждая систему использовать только IPv4. Оба метода имеют свои преимущества и недостатки, и выбор зависит от ваших конкретных требований и условий сети. Надеемся, что это руководство поможет вам в настройке вашей системы.