У сучасних мережах все частіше використовується 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 10/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 10/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. Обидва методи мають свої переваги і недоліки, і вибір залежить від ваших конкретних вимог і умов мережі. Сподіваємося, що цей посібник допоможе вам у налаштуванні вашої системи.