在CentOS上,有时你需要停止并禁用 NetworkManager。但这样做了之后,其实NetworkManager还在影响着你的端口。 比如你有端口配置如下:
[root@compute02 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens35
DEVICE=ens35
TYPE=Ethernet
ONBOOT="yes"
BOOTPROTO="none"
在你停止NetworkManager的时候这个端口很可能就被悄悄的停掉了,比如你运行了停止命令 systemctl stop NetworkManager后,你再运行 systemctl status NetworkManager 可能会发现有这样的话
Jul 12 06:34:39 compute02 NetworkManager[23964]: <info> (ens35): device state change: activated -> deactivating (reason 'unmanaged') [100 110 3]
Jul 12 06:34:39 compute02 NetworkManager[23964]: <info> (ens35): device state change: deactivating -> unmanaged (reason 'unmanaged') [110 10 3]
这个端口因为本来被NetworkManager管理着,现在你停掉NetworkManager,它就会down掉。
所以,为了让NetworkManager不会影响我们的端口,我们应该让NetworkManager不去管理我们的端口。 有一个命令可以查询被其管理的端口,如下:
[root@compute02 ~]# nmcli dev status
DEVICE TYPE STATE CONNECTION
ens32 ethernet connected ens32
ens35 ethernet connected System ens35
ens33 ethernet unmanaged --
不被管理的端口应该是unmanaged。想要不被NetworkManager管理,需要修改 ifcfg-* 这样的端口配置文件,加入
NM_CONTROLLED=no
HWADDR=00:11:22:33:44:55
这样重启NetworkManager就可以让端口不被管理了。 参考 http://support.qacafe.com/knowledge-base/how-do-i-prevent-network-manager-from-controlling-an-interface/