为什么 ifup 似乎忽略 sysctl 设置?

为什么 ifup 似乎忽略 sysctl 设置?

在新的 CentOS 7 系统上,我尝试禁用 ipv6。

/etc/sysctl.conf为此,我添加了以下内容:

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

启动时,所有接口均在不支持 ipv6 的情况下出现 - 太棒了!但是,如果我在接口上发出ifdownand ,它会恢复 ipv6 支持:ifup

[root@server ~]# ip a | grep inet6
[root@server ~]# ifdown enp0s3 && ifup enp0s3
Device 'enp0s3' successfully disconnected.
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/9)
[root@server ~]# ip a | grep inet6
    inet6 2601:681:201:62b0::45d8/128 scope global tentative noprefixroute dynamic 
    inet6 2601:681:201:62b0:c6b:2fa2:be84:3e40/64 scope global noprefixroute dynamic 
    inet6 fe80::9997:e614:3fdd:a0ba/64 scope link noprefixroute 
[root@server ~]# 

如果我“重新运行” sysctl,ipv6 地址将被删除:

[root@server ~]# sysctl -p
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
[root@server ~]# ip a | grep inet6
[root@server ~]# 
  • 是什么赋予了?似乎ifup运行时不考虑 中的设置sysctl。我认为设置sysctl.conf是“永久的”。我误解了什么吗?
  • 有没有办法避免sysctl -p每次执行后都需要执行ifup

相关内容