Linux(CentOS,Ubuntu) 如何禁用(停用) IPv6

IPv6 里我们越来越近了,但是还是有一定距离,我们对 IPv6还不是很熟悉,在日常使用中还不能像 IPv4那样普遍。有些实际使用中还可能有些问题,比如有Pv6 有可能会导致 DNS 解析变慢等。
那么我们,在我们不需要的情况下我们如何禁用(停用) IPv6呢,下面我们介绍几个方法。
首先我们需要确定一下我们的系统是否启用的IPv6,可以通过 ip命令、ifconfig命令查看,还可以从 proc文件系统查看:

ip address list  | grep inet6
ifconfig | grep inet6
cat /proc/sys/net/ipv6/conf/all/disable_ipv6

1、修改网络配置文件,通过网络配置文件禁用 IPv6
修改 /etc/sysconfig/network 添加:

NETWORKING_IPV6=no
IPV6INIT=no

修改网络设备对应的配置文件
CentOS 下的 eth0,修改配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0

IPV6INIT=no
IPV6_AUTOCONF=no

2、修改系统配置文件,或修改系统配置参数
修改 /etc/sysctl.conf 添加如下内容,然后通过运行 sysctl -p 命令查看参数设置的状态,重启系统生效

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
#假如有网络设备 eth0
net.ipv6.conf.eth0.disable_ipv6 = 1

或者我们可以直接设置运行时系统的参数

echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6
echo 1 > /proc/sys/net/ipv6/conf/lo/disable_ipv6
#--
echo 1 > /proc/sys/net/ipv6/conf/eth0/disable_ipv6

sysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.default.disable_ipv6=1
sysctl -w net.ipv6.conf.lo.disable_ipv6 = 1
#--
sysctl -w net.ipv6.conf.eth0.disable_ipv6 = 1

3、通过禁用内核模块 ipv6来实现
编辑 /etc/modprobe.conf 添加:
install ipv6 /bin/true

或者在 Debain系统上:
echo ‘blacklist ipv6’ >> /etc/modprobe.d/blacklist

或者在有 /etc/modprobe.d 的发行版上:

touch /etc/modprobe.d/disable-ipv6.conf
echo “install ipv6 /bin/true” >> /etc/modprobe.d/disable-ipv6.conf

或者 CentOS5上:
编辑 /etc/modprobe.conf,添加

alias ipv6 off
alias net-pf-10 off

#5.4 或以上版本将
alias ipv6 off
#改为
options ipv6 disable=1

最后关闭 ip6tables服务

chkconfig ip6tables off

历史搜索记录:

Post a Comment

Your email is never shared. Required fields are marked *

*
*