有人知道我如何才能在 CentOS 5.6 上仅从一个接口禁用链路本地地址吗?这是我尝试过的:
root-> egrep -i ipv6 /etc/sysconfig/network-scripts/ifcfg-eth0
IPV6INIT=no
IPV6_AUTOCONF=no
IPV6_ROUTER=no
root-> egrep -i ipv6 /etc/sysctl.conf
#disable ipv6 from eth0
net.ipv6.conf.eth0.disable_ipv6 = 1
net.ipv6.conf.eth0.autoconf = 0
root-> ip -f inet6 a show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 fe80::20c:29ff:fe3c:16af/64 scope link
valid_lft forever preferred_lft forever
root-> ip -f inet6 a del fe80::20c:29ff:fe3c:16af/64 dev eth0
root-> ip -f inet6 a show dev eth0
这里没有什么
但随后地址返回:
root-> ifdown eth0 && ifup eth0
root-> ip -f inet6 a show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 fe80::20c:29ff:fe3c:16af/64 scope link
valid_lft forever preferred_lft forever
谢谢。
答案1
CentOS 网络脚本会执行一些与你尝试执行的操作相反的操作。我的猜测是,如果你按照之前的步骤操作,直到:
ifdown eth0 && ifup eth0
而是运行:
ifconfig eth0 down && ifconfig eth0 up
你应该没问题。ifdown 和 ifup 是系统脚本,它们的作用远不止打开和关闭接口。我建议编写自己的自定义脚本来修改接口的属性,而不是使用 ifdown/ifup。
或者将其作为 CentOS 的错误提出,因为在这种情况下,很可能他们的系统脚本并没有严格执行他们应该做的事情。