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