https://access.redhat.com/mt/zh-hans/solutions/8709#rhel89disable
RHEL9
- 方式一:禁用 IPv6 内置内核模块
grubby --update-kernel=ALL --args='ipv6.disable=1'
reboot
注意:目前RHEL9.1存在bug,使用内核引导参数禁用ipv6后,在使用ping命令是会有一个 “ping: socket: Address family not supported by protocol” 的错误信息
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=2152511
- 方式二:通过 sysctl 设置禁用 IPv6
vim /etc/sysctl.d/ipv6.conf
# 首先,对所有接口禁用
net.ipv6.conf.all.disable_ipv6 = 1
# 如果使用sysctl方法,也必须在所有特定的接口上禁用该协议。
net.ipv6.conf.<interface>.disable_ipv6 = 1
# 默认情况下,不会在localhost上禁用IPv6,因为它对多个组件很重要。如果你想禁用它,请将下面的值改为1。
net.ipv6.conf.lo.disable_ipv6 = 0
加载新配置
sysctl -p /etc/sysctl.d/ipv6.conf
备份initramfs文件,并生成新的
cp -p /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)_$(date +%Y-%m-%d_%H%M%S).img
# 以下命令重建 initramfs:
dracut -f -v
验证文件包含
lsinitrd /boot/initramfs-$(uname -r).img | grep 'etc/sysctl.d/ipv6.conf'
注释掉在 /etc/hosts 中找到的任何 IPv6 地址,包括 ::1 本地主机地址(如果您在步骤 #1 中也在本地主机上禁用了 IPv6)
cp -p /etc/hosts /etc/hosts.disableipv6
sed -i 's/^[[:space:]]*::/#::/' /etc/hosts