首页 > 技术文章 > NetworkManager的坑(如何让network manager不去管理网络端口)

kramer 2016-07-12 18:42 原文

在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/

推荐阅读