Skip to main content

1. CentOS 6.x

CentOS 6 上是默认打开了 IPv6,但其实在我们实际使用中很难用到它,所以本篇的内容就是如何关闭 IPv6。

可以看到 inet6,说明还没关闭。

[root@ultraera ~]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:3A:F9:6F
inet addr:172.16.102.161 Bcast:172.16.102.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe3a:f96f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:199 errors:0 dropped:0 overruns:0 frame:0
TX packets:122 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:20124 (19.6 KiB) TX bytes:17182 (16.7 KiB)

修改/etc/modprobe.d/dist.conf

[root@ultraera ~]# vi /etc/modprobe.d/dist.conf
# 添加下面两行内容
alias net-pf-10 off
alias ipv6 off
# 保存退出,并且重新启动系统

# 开机不启动
[root@ultraera ~]# chkconfig ip6tables off

系统重启完成后,检查是否加载 IPv6

[root@ultraera ~]# lsmod | grep v6

补充

  • 修改/etc/sysconfig/network,追加
NETWORKING_IPV6=no
  • 修改/etc/hosts文件,把ipv6的那句本地主机名解析的也注释掉
#::1   localhost localhost6 localhost6.localdomain6

2. CentOS 7.x

Setup 1. 修改 grub 文件,在启动引导时不加载 ipv6

[root@ultraera ~]# vim /etc/default/grub

# 在GRUB_CMDLINE_LINUX=" " ,中增加
ipv6.disable=1

# 重新生产启动引导文件,注意,这里重启系统是没用的,需要手动重建引导文件
[root@ultraera ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
[root@ultraera ~]# reboot

验证是否关闭

[root@ultraera ~]# lsmod | grep ipv6

Setup 2. 第二种方式

# 修改/etc/sysctl.conf,增加以下:
net.ipv6.conf.all.disable_ipv6 = 1

reboot

IPv6 是默认支持的,所以当你要重新开起 IPv6 支持时,将以上添加的指令注释掉即可。 之前碰到过安装某些服务时,不能启动,后来检查原因是因为关闭 ipv6 的问题,因为在这些服务的 conf 文件,指定了类似监听 ipv6,因为关闭了 ipv6 导致服务无法启动,将其关闭即可。