ipv6虽然未来将是主流,不过目前还是ipv4的天下。开启ipv6后有很多很烦的事情,而又由于现在用不到ipv6,所以就决定将其disabled掉。具体操作方法总结如下。

一、查看状态

1ifconfig |grep inet6
2lsmod |grep ipv6

有结果输出,表示已经启用了ipv6。

二、关闭ipv6

根据操作系统的版本不同,关系的方法也不尽相同。现以主流centos为例,具体操作方法如下。

1、centos 4

1echo "alias net-pf-10 off" >> /etc/modprobe.conf

设置完成后,reboot生效。

2、centos 5

1chkconfig ip6tables off
2echo "NETWORKING_IPV6=no" >> /etc/sysconfig/network
3cat >> /etc/modprobe.conf <<EOF
4alias ipv6 off
5alias net-pf-10 off
6EOF

另一种更简单的方法:

1touch /etc/modprobe.d/disable-ipv6
2echo "install ipv6 /bin/true" >> /etc/modprobe.d/disable-ipv6

3、CentOS 5.4

由于centos 5.4升级了 symbol/ipv6 模块,所以按照上面的方法会出现内核模块failing to load,使用如下方法:

1touch /etc/modprobe.d/disable-ipv6
2echo "options ipv6 disable=1" >> /etc/modprobe.d/disable-ipv6

4、centos 6

1echo "net.ipv6.conf.all.disable_ipv6=1" >> /etc/sysctl.conf
2echo "blacklist ipv6" >> /etc/modprobe.d/blacklist.conf
3chkconfig ip6tables off
4cat >> /etc/sysconfig/network <<EOF
5NETWORKING_IPV6=no
6IPV6_AUTOCONF=no
7EOF

三、如何停用在用的IPv6

引用:http://wiki.centos.org/zh/FAQ/CentOS6

一些推荐不要停用 ipv6 模块,因为这样会导致 SELinux 及其它组件出现问题。你可改而在 /etc/sysctl.conf 加入:

1net.ipv6.conf.all.disable_ipv6 = 1
2net.ipv6.conf.default.disable_ipv6 = 1

要在运作中的系统停用它:

1echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
2echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6
3# 或
4sysctl -w net.ipv6.conf.all.disable_ipv6=1
5sysctl -w net.ipv6.conf.default.disable_ipv6=1

要是你在停用 IPv6 的系统上转接 X 时遇到问题,请编辑 /etc/ssh/sshd_config 及作出以下一组改动:

a、更改这一行

1#AddressFamily any
2AddressFamily inet

(inet 指定 ipv4;inet6 指定 ipv6)

或者

b、删除这行行首的井号(#)

1#ListenAddress 0.0.0.0

然后重启ssh。