如何在 CentOS/RHEL 7 上禁用 IPv6

本文说明了在 CentOS/RHEL 7 上禁用 IPv6 的步骤。

有两种方法可以做到这一点:

  1. 在内核模块中禁用IPv6(需要重启)
  2. 使用 sysctl 设置禁用 IPv6(无需重启)

要验证是否启用了 IPv6,请执行:

# ifconfig -a | grep inet6
        inet6 fe80::211:aff:fe6a:9de4  prefixlen 64  scopeid 0x20
        inet6 ::1  prefixlen 128  scopeid 0x10[host]
www. On IT Road .com

2. 使用 sysctl 设置禁用 IPv6(无需重启)

  1. 在 /etc/sysctl.conf 中添加以下几行:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

注意:要在单个接口上禁用 IPv6,请将以下行添加到 /etc/sysctl.conf :
net.ipv6.conf.[interface].disable_ipv6 = 1 ### [interface] 是接口名称
net.ipv6.conf.default.disable_ipv6 = 1

  1. 要使设置生效,请执行:
# sysctl -p

注意:如果我们使用 sysctl 方法,请确保文件 /etc/ssh/sshd_config 包含一行 AddressFamily inet 以避免破坏 SSH Xforwarding

  1. 将 AddressFamily 行添加到 sshd_config :
# vi /etc/ssh/sshd_config
....
AddressFamily inet
....

重新启动 sshd 以使更改生效:

# systemctl restart sshd

1.在内核模块中禁用IPv6(需要重启)

  1. 编辑 /etc/default/grub 并在 GRUB_CMDLINE_LINUX 行中添加 ipv6.disable=1,例如:
# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="ipv6.disable=1 crashkernel=auto rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
  1. 重新生成一个 GRUB 配置文件并覆盖现有的:
# grub2-mkconfig -o /boot/grub2/grub.cfg
  1. 重新启动系统并验证“ip addr show”命令输出中没有“inet6”行。
# shutdown -r now
# ip addr show | grep net6
日期:2020-09-17 00:12:02 来源:oir作者:oir