現在新版本的Linux作業系統預設啟用Internet協定版本6(IPv6)。但是,在某些情況下,某些使用者可能會發現需要禁用IPv6支援或在禁用後重新啟用它。本文将詳細介紹如何禁用或啟用IPV6服務。
一、禁用IPv6
禁用IPv6有如下3中方法。
(一)在NetworkManager中禁用IPv6.
1.對于 RHEL7 和 RHEL 8.0:
[[email protected] ~]# nmcli connection modify ipv6.method "ignore"
2.對于RHEL8.1及更高版本和9:
[[email protected] ~]# nmcli connection modify ipv6.method "disabled"
(二)通過 sysctl 設定禁用 IPv6
1.建立一個名為的新檔案/etc/sysctl.d/ipv6.conf包含以下文本。
# First, disable for all interfaces
net.ipv6.conf.all.disable_ipv6 = 1
# If using the sysctl method, the protocol must be disabled on all specific interfaces, as well.
net.ipv6.conf..disable_ipv6 = 1
# By default, we do not disable IPv6 on localhost, as it's important for multiple
# components. If you want to disable it anyway, change the following
# value to 1.
net.ipv6.conf.lo.disable_ipv6 = 0
2.然後需要重新加載新設定:
[[email protected] ~]# sysctl -p /etc/sysctl.d/ipv6.conf
3.建立初始 RAM 磁盤映像的備份:
[[email protected] ~]# cp -p /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)_$(date +%Y-%m-%d_%H%M%S).img
4.然後使用以下指令重建 initramfs:
[[email protected] ~]# dracut -f -v
驗證
[[email protected] ~]# lsinitrd /boot/initramfs-$(uname -r).img | grep 'etc/sysctl.d/ipv6.conf'
5.注釋掉在 /etc/hosts中找到的任何IPv6 位址,包括 ::1 本地主機位址(如果您在步驟 #1 中也在本地主機上禁用了 IPv6)。
[[email protected] ~]# cp -p /etc/hosts /etc/hosts.disableipv6
[[email protected] ~]# sed -i 's/^[[:space:]]*::/#::/' /etc/hosts
(三)禁用 IPv6 内置核心子產品
1.編輯/etc/default/grub并追加ipv6.disable=1到GRUB_CMDLINE_LINUX像下面的示例:
GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/swap crashkernel=auto rd.lvm.lv=rhel/root ipv6.disable=1"
2.通過grub2-mkconfig指令重新生成grub.cfg檔案:
[[email protected] ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
或者,在 UEFI 系統上,運作以下指令:
[[email protected] ~]# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
3.重新啟動系統以禁用 IPv6 支援。
二、啟用IPv6
啟用IPv6有如下3中方法。
(一)在NetworkManager中啟用IPv6.
要使用 NetworkManager 重新啟用 IPv6,請修改連接配接的ipv6.method從disabled根據連接配接的尋址類型設定為适當的值。選擇的指令如下所示:
[[email protected] ~]# nmcli connection modify ipv6.method "auto"
[[email protected] ~]# nmcli connection modify ipv6.method "dhcp"
[[email protected] ~]# nmcli connection modify ipv6.method "link-local"
[[email protected] ~]# nmcli connection modify ipv6.method "manual"
(二)通過sysctl設定啟用IPv6
1.删除/etc/sysctl.d/ipv6.conf檔案。
2.從建立的備份恢複原始初始 RAM 磁盤映像。例子:
[[email protected] ~]# mv /boot/initramfs-4.18.0-240.el8.x86_64_2022-12-16_230548.img /boot/initramfs-4.18.0-240.el8.x86_64.img
3.如果AddressFamily inet被添加到/etc/ssh/sshd_config檔案以保留 SSH X11Forwarding,然後删除它并重新啟動 SSH 服務。
4.恢複舊的/etc/hosts檔案。
[[email protected] ~]# mv /etc/hosts.disableipv6 /etc/hosts
5.重新啟動系統以啟用IPv6支援。
(三)啟用IPv6内置核心子產品
1.編輯/etc/default/grub并删除條目ipv6.disable=1來自GRUB_CMDLINE_LINUX,如以下示例:
GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/swap crashkernel=auto rd.lvm.lv=rhel/root"
2.跑過grub2-mkconfig指令重新生成grub.cfg檔案:
[[email protected] ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
或者,在 UEFI 系統上,運作以下指令:
[[email protected] ~]# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg