IPv6(互聯網協議版本 6)是一種互聯網協議,用於路由流量並為網絡上的計算機提供識別和定位系統。 長期以來,人們一直在吹捧 IPv6 將取代 IPv4,但我們還沒有做到。 在您的系統上禁用 IPv6 實際上非常簡單。
在本指南中,您將學習如何 禁用 IPv6 在 RHEL/CentOS 8.
另請閱讀:如何在 RHEL/CentOS 7/ 中禁用 IPv6Fedora
檢查是否啟用了 IPv6
首先,檢查我們的系統當前是否啟用了 IPv6。 為此,我們將運行以下命令:
$ ip a | grep inet6
從下面的輸出中,您可以看到 IPv6 條目,這意味著啟用了 IPv6。
下一步是禁用 IPv6。 有兩種方法可以解決這個問題:
1) 在 CentOS 8 上使用內核引導選項禁用 IPv6
如果你想在你的系統上永久禁用 IPv6,那麼這是選擇的方法。 另請注意,這需要重新啟動才能使更改生效。
第一步是打開默認的 GRUB 配置文件,如圖:
$ sudo vim /etc/default/grub
在文件末尾,追加以下行:
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX ipv6.disable=1"

Save 文件並退出。
為了使更改生效,我們需要更新 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

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

要禁用 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,我們希望本指南提供有關如何操作的有用見解。