В данной инструкции рассмотрим включение поддержки IPv6 в DEB и RHEL дистрибутивах ОС Linux.
Хотя поддержка IPv6 пока не реализована в мире полноценно и на сервере она может быть отключена, для работы некоторых приложений может понадобиться наличие такого функционала на сетевых интерфейсах.
Проверяем что ipv6 выключен:
grep ipv6 /etc/default/grub
Вывод будет примерно следующим:
GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8 ipv6.disable=1 "
Нужно открыть файл на редактирование любым редактором, найти там эту строку и изменить значение параметра 'ipv6.disable' на '0'.
После внесения изменений пересобираем конфигурацию загрузчика 'grub':
grub-mkconfig
Обновляем загрузчик 'grub' и применяем новую конфигурацию:
update-grub2
Проверяем, что новое значение применилось в системе:
grep ipv6 /etc/default/grub
Пример вывода команды:
GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8 ipv6.disable=0 "
Перезагружаем сервер:
reboot
После перезагрузки проверяем наличие IPv6 на сетевых интерфейсах:
ip -br a
Вывод будет следующим:
lo UNKNOWN 127.0.0.1/8
enp0s5 UP 10.10.10.25/27 fe80::c801:23ff:fed8:7e4d/64
Если после всех внесенных изменений в найстройки IPv6 не появился на сетевых интерфейсах, то стоит проверить еще один файл конфигурации в ОС:
grep ipv6 /boot/efi/EFI/ubuntu/grub.cfg
В файле найти строки:
linux /boot/vmlinuz-5.15.0-60-generic root=UUID=00461488-3b35-4a53-91a8-2e527e4987da ro console=tty0 console=ttyS0,115200n8 ipv6.disable=1
linux /boot/vmlinuz-5.15.0-60-generic root=UUID=00461488-3b35-4a53-91a8-2e527e4987da ro console=tty0 console=ttyS0,115200n8 ipv6.disable=1
И изменить значение 'ipv6.disable' на '0'. Сохранить файл и перезагрузить систему:
reboot
После этого снова проверить вывод команды:
ip -br a
Отличий практически нет от DEB дистрибутивов, поэтому кратко опишем действия и команды.
Проверяем что ipv6 выключен:
grep ipv6 /etc/default/grub
Если значение параметра в выводе 'ipv6.disable' равно единице, то меняем на '0', отредактировав файл '/etc/default/grub'.
После внесения изменений пересобираем конфигурацию загрузчика 'grub':
grub-mkconfig
Перезагружаем сервер:
reboot
После перезагрузки проверяем наличие IPv6 на сетевых интерфейсах:
ip -br a
Вывод будет следующим:
lo UNKNOWN 127.0.0.1/8
enp0s5 UP 10.10.10.26/27 fe80::c801:95ff:feff:3cda/64
Если после всех внесенных изменений в найстройки IPv6 не появился на сетевых интерфейсах, то стоит проверить еще один файл конфигурации в ОС:
grep ipv6 /boot/efi/EFI/ubuntu/grub.cfg
В файле найти строки:
linux /boot/vmlinuz-5.15.0-60-generic root=UUID=00461488-3b35-4a53-91a8-2e527e4987da ro console=tty0 console=ttyS0,115200n8 ipv6.disable=1
linux /boot/vmlinuz-5.15.0-60-generic root=UUID=00461488-3b35-4a53-91a8-2e527e4987da ro console=tty0 console=ttyS0,115200n8 ipv6.disable=1
И изменить значение 'ipv6.disable' на '0'. Сохранить файл и перезагрузить систему:
reboot
На этом включение поддержки IPv6 будет закончено. Далее настройки сохраняться и будут всегда работать в системе.
Пример скрипта BASH для включения поддержки IPv6 в DEB подобных ОС (Ubuntu, Debian, etc.):
#!/bin/bash
# Проверяем, что IPv6 выключен
if grep -q 'ipv6.disable=1' /etc/default/grub; then
echo "Поддержка IPv6 отключена. Включаем ..."
echo "Изменение настроек в файле /etc/default/grub"
sed -i 's/ipv6.disable=1/ipv6.disable=0/' /etc/default/grub
grub-mkconfig -o /boot/grub/grub.cfg
update-grub2
if grep -q 'ipv6.disable=1' /boot/efi/EFI/ubuntu/grub.cfg; then
echo "Изменение настроек в файле /boot/efi/EFI/ubuntu/grub.cfg"
sed -i 's/ipv6.disable=1/ipv6.disable=0/' /boot/efi/EFI/ubuntu/grub.cfg
fi
echo "Перезагрузка системы для применения изменений..."
reboot
else
echo "Поддержка IPv6 уже включена или отсутствуют нужныфе параметры в:"
echo "/etc/default/grub"
echo "/boot/efi/EFI/ubuntu/grub.cfg"
fi
Вы можете создать файл скрипта скопировав вышеуказанные строки, назначить ему права на исполнение и просто выполнить его.
Наличие всех параметров будет проверено и внесены все необходимые изменения.
ВНИМАНИЕ! После выполнения сервер будет перезагружен.