如何在 RHEL/CentOS 8 上禁用 IPv6

IPv6(互聯網協議版本 6)是一種互聯網協議,用於路由流量並為網絡上的計算機提供識別和定位系統。 長期以來,人們一直在吹捧 IPv6 將取代 IPv4,但我們還沒有做到。 在您的系統上禁用 IPv6 實際上非常簡單。

在本指南中,您將學習如何 禁用 IPv6RHEL/CentOS 8.

另請閱讀:如何在 RHEL/CentOS 7/ 中禁用 IPv6Fedora

檢查是否啟用了 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"

使用內核選項在 CentOS 8 上禁用 IPv6使用內核選項在 CentOS 8 上禁用 IPv6

Save 文件並退出。

為了使更改生效,我們需要更新 GRUB 配置文件。 但首先,我們需要知道 GRUB 配置文件的位置。 為此,請運行以下命令:

$ sudo ls -lh /etc/grub*.cfg

找到grub配置文件的位置找到grub配置文件的位置

接下來,生成一個新的 GRUB 配置文件保存到 /boot/grub2/grub.cfg 文件。

$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg

更新 grub 配置文件更新 grub 配置文件

此外,運行下一個命令以創建一個新的配置文件並將其保存到 /boot/efi/EFI/centos/grub2.cfg 文件

$ sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub2.cfg

生成新的 grub 配置文件生成新的 grub 配置文件

此後,使用以下命令重新啟動系統:

$ sudo reboot

重新啟動完成後,登錄並再次運行以下命令。 請注意,未列出 IPv6 信息。

$ ip  a | grep inet6

在 CentOS 8 上禁用 IPv6IPv6 已禁用

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

將條目添加到新的 sysctl 文件

Save 並退出配置文件。 在我們禁用 IPv6 協議之前,讓我們先檢查一下命令的值是什麼 net.ipv6.conf.default.disable_ipv6 是。 你應該得到 0 的值。

$ sudo sysctl --values net.ipv6.conf.default.disable_ipv6

systcl 值為 0 檢查 IPv6 時,systcl 值為 0

要禁用 IPv6,請執行以下命令:

$ sysctl --load /etc/sysctl.d/70-ipv6.conf

使用 sysctl 禁用 IPv6使用 sysctl 禁用 IPv6

現在,再次驗證 sysctl 值,這一次,您將獲得值 1,表明 Ipv6 已被禁用。

$ sudo sysctl --values net.ipv6.conf.default.disable_ipv6

systcl 值為 1 systcl 值為 1

結論

雖然 IPv6 旨在取代 IPv4,但大多數係統仍在使用 IPv4。 事實上,根據谷歌的說法,IPv6 的採用率只有 20%,而且還需要相當長的時間才能讓世界耗盡 IPv4 地址。 如果您希望在 CentOS 8 上禁用 IPv6,我們希望本指南提供有關如何操作的有用見解。