IPv6(互联网协议版本 6)是一种互联网协议,用于路由流量并为网络上的计算机提供识别和定位系统。长期以来,人们一直在吹捧 IPv6 将取代 IPv4,但我们还没有做到。在您的系统上禁用 IPv6 实际上非常简单。
在本指南中,您将了解如何在RHEL/CentOS 8上禁用 IPv6。
检查是否启用了 IPv6
首先,检查我们的系统当前是否启用了 IPv6。为此,我们将运行以下命令:
$ ip a | grep inet6
从下面的输出中,您可以看到 IPv6 条目,这意味着 IPv6 已启用。
验证是否启用了 IPv6
下一步是禁用 IPv6。有两种方法可以解决这个问题:
1) 在 CentOS 8 上使用内核引导选项禁用 IPv6
如果您想在系统上永久禁用 IPv6,那么这是选择的方法。另外,请注意,这需要重新启动才能使更改生效。
第一步是打开默认的 GRUB 配置文件,如图所示:
$ sudo vim /etc/default/grub
在文件末尾,附加以下行:
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX ipv6.disable=1"
保存文件并退出。
为了使更改生效,我们需要更新 GRUB 配置文件。但首先,我们需要知道 GRUB 配置文件的位置。为此,请运行以下命令:
$ sudo ls -lh /etc/grub*.cfg
接下来,生成一个新的 GRUB 配置文件以将其保存到/boot/grub2/grub.cfg文件中。
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
此外,运行下一个命令来创建一个新的配置文件并将其保存到/boot/efi/EFI/centos/grub2.cfg文件
$ sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub2.cfg
此后,使用以下命令重新启动系统:
$ sudo reboot
重新启动完成后,登录并再次运行以下命令。请注意,未列出 IPv6 信息。
$ ip a | grep inet6
2) 使用 sysctl 禁用 IPv6
到目前为止,我们已经研究了在 CentOS 8 上禁用 IPv6 的一种方法。下一个方法是使用 sysctl,它是一个用于在运行时修改内核参数的软件实用程序。这是一个临时修复,不需要重新启动系统。
首先,新建一个配置文件,如图:
$ sudo vim /etc/sysctl.d/70-ipv6.conf
然后添加显示的行
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
保存并退出配置文件。在我们禁用 IPv6 协议之前,让我们先检查一下命令net.ipv6.conf.default.disable_ipv6 的值是多少。你应该得到 0 的值。
$ sudo sysctl --values net.ipv6.conf.default.disable_ipv6
检查 IPv6 时的 systcl 值为 0
要禁用 IPv6,请执行以下命令:
$ sysctl --load /etc/sysctl.d/70-ipv6.conf
现在,再次验证 sysctl 值,这一次,您将获得 1 值,表示 Ipv6 已被禁用。
$ sudo sysctl --values net.ipv6.conf.default.disable_ipv6
结论
虽然 IPv6 旨在取代 IPv4,但大多数系统仍在使用 IPV4。事实上,根据谷歌的数据,IPv6 的采用率仅为 20%,而且在世界上用完 IPv4 地址还需要相当长的时间。如果您希望在 CentOS 8 上禁用 IPv6,我们希望本指南提供有关如何执行此操作的有用见解。