/etc/modprobe.d/disable-ipv6
我有一台运行 CentOS 5.8 的机器。通过创建包含以下内容的文件禁用了 IPv6 :
options ipv6 disable=1
删除文件并重新启动计算机应该会重新启用 IPv6。有没有无需重新启动即可启用 IPv6 的方法?
附加信息:
我发现了一些内容echo 0 > /proc/sys/net/ipv6/conf/interface/disable_ipv6
,但是/proc/sys/net/ipv6
这台机器上却不存在。
sysctl
未显示任何有关 IPv6 的信息:
# sysctl -a | grep -i ipv6 | wc -l
0
ipv6内核模块加载:
#lsmod | grep ipv6
ipv6 437857 1 cnic
尝试删除它会引发错误:
# modprobe -vnr ipv6
FATAL: Module ipv6 is in use.
# modprobe --show-depends ipv6
insmod /lib/modules/2.6.18-308.13.1.el5/kernel/crypto/crypto_api.ko
insmod /lib/modules/2.6.18-308.13.1.el5/kernel/net/xfrm/xfrm_nalgo.ko
insmod /lib/modules/2.6.18-308.13.1.el5/kernel/net/ipv6/ipv6.ko
Modprobe 表示crypto_api
依赖于 ipv6 模块。在正在运行的 Web 服务器上卸载并加载该模块听起来并不是一个好主意。
我rmmod
按照@Zoredache 的建议尝试了:
# rmmod -v ipv6
ERROR: Module ipv6 is in use by cnic
答案1
无需重启即可重新加载 ipv6 驱动程序
$ /sbin/lsmod |grep ipv
ipv6 438625 3 rdma_cm,ib_addr,cnic
# loop through all the dependent modules, and unload them
$ rmmod cnic ...
$ rmmod rdma_cm
$ modprobe ipv6 disable=0
您可能需要关闭网络,但这可以避免重新启动。
答案2
看起来这是不可能的。我最终重启了机器以启用 IPv6。我希望有人能证明我错了,因为我有一大堆其他机器以同样的方式配置。
答案3
我已经让它工作了,
前:
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
做这个 :
$ modprobe ipv6
$ sysctl net.ipv6.conf.all.disable_ipv6=0
后:
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
希望这可以帮助