nmcli命令列網路配置

2021-10-12 12:35:09 字數 4279 閱讀 5499

nmcli是基於命令列的網路管理配置工具(command-line tool for controlling networkmanager),該命令可以完成所有的網路配置工作,並直接寫入了配置檔案,永久生效(無需重啟網路連線服務)。

語法:nmcli [ 選項 ] 物件

這裡的物件引數可以用全稱也可以用簡稱,最少可以只用乙個字母。物件中常用的是device(網路介面物件)connection(網路連線物件)

nmcli         ##檢視ip資訊

nmcli device status  ##所有介面的簡略資訊

nmcli device show ##所有介面的詳細資訊,device可以縮寫為d,de,dev...

nmcli device show ens160 ##指定的ens160網路介面的詳細資訊

nmcli connection show   ##所有連線的簡略資訊,connection可以縮寫為c,co,con...

nmcli connection show --active  ##顯示啟用的連線

nmcli connection show inteface-name   ##某個介面的詳細連線資訊

請理解: ethernet型別的網路連線資訊就存放於/etc/sysconfig/network-scripts目錄下,這個目錄也就是網路連線配置目錄

[root@hollowman ~]# cd /etc/sysconfig/network-scripts/ 

[root@hollowman network-scripts]# ls

ifcfg-ens160

可以看到該目錄下有乙個以「ifcif-」+「網路連線名ens160」網路連線配置檔案。這是系統預設生成的與網路介面名相同的網路連線名,後面我們可以建立其他的網路連線,同樣,該目錄下也會相應生成不同的網路連線配置檔案。

檢視一下網路連線:

[root@hollowman network-scripts]# nmcli c show

name uuid type device

ens160 12c0daf8-0019-47fb-b763-64e5cbfda958 ethernet ens160

virbr0 0a8c94be-61e4-4b82-84d1-afebef9a2aab bridge virbr0

可以發現有兩個網路連線,其中ens160的網路連線配置檔案就是上面的那個ifcfg-ens160,而virbr0則是乙個虛擬網橋連線,暫時不用理睬。

nmcli connection add con-name ens160-2 type ethernet ifname ens160 ipv4.method manual ipv4.addresses 192.168.100.20/24 ipv4.gateway 192.168.100.1 ipv4.dns 192.168.100.1

注意兩個重要引數:

autoconnect yes:對應配置檔案中的 onboot =yes,預設為yes

autoconnect no:對應配置檔案中的 onboot =no

ipv4.method auto:對應配置檔案中的 bootproto=dhcp,預設為auto

ipv4.method manual:對應配置檔案中的 bootproto=none

[root@hollowman ~]# nmcli connection add con-name ens160-2 type ethernet ifname ens160  ipv4.addresses 192.168.100.20/24 ipv4.gateway 192.168.100.1 ipv4.dns 192.168.100.1

connection 'ens160-2' (12c0daf8-0019-47fb-b763-64e5cbfda958) successfully added.

建立問連線後,網路連線配置目錄/etc/sysconfig/network-scripts/下就會多出乙個ifcfg-ens160-2的配置檔案了,但因為他使用的是ens160網路介面,而系統已經預設有乙個ens160連線並占用了這個網路介面,因此它暫時不能生效。

[root@hollowman network-scripts]# nmcli c show

name uuid type device

ens160 12c0daf8-0019-47fb-b763-64e5cbfda958 ethernet ens160

virbr0 0a8c94be-61e4-4b82-84d1-afebef9a2aab bridge virbr0

ens160-2 307da4b0-6327-4b1d-ad63-06103994c145 ethernet --

如上,ens160-2device為–,也就是沒有生效,如何生效呢?那就是下一步的內容了。

關閉鏈結

nmcli connection down 網路連線名

nmcli device disconnect 網路介面名

啟用連線

nmcli connection up 網路連線名

nmcli device connect 網路介面名

這兩種方式有什麼區別呢?

通過connection物件關閉其中乙個網路連線後,會自動啟用其他的網路連線,除非其他網路連線設定為了手動連線(method auto,也就是bootproto=dhcp)或者不存在其他網路連線。

如:nmcli c down ens160後,ens160連線將關閉,而ens160-2將自動啟用

但是,通過device物件關閉某個網路介面,則直接關閉該網路介面(包含已經啟用的網路連線),因此其他網路連線也就不會自動啟用。

建議使用nmcli device disconnect 網路介面名,因為這樣會更加可控。

將網路連線的獲取方式設定成手動(如果boottroto=dhcp 則修改為bootproto=none)

nmcli connection modify ens160-2 ipv4.method manual
設定完之後,再去通過nmcli c down ens160關閉ens160,則ens160-2不會啟用

其他引數設定同上,如果配置未設定則新建,已經存在但引數不同則修改,否則不做修改。

刪除dns

nmcli connection modify ens160-2 -ipv4.dns 192.168.100.1 (注意這裡的減號,後面的ip必須和原來配置dns的ip位址相同)

nmcli connection reload
過載所有網路連線,但不會立即生效,需重啟networkmanager服務才能生效

nmcli connection reload ens160-2
過載ens160-2這個網路連線

過載網路連線一般在手動修改網路連線配置檔案(如ifcfg-ens160-2)後使用,同時還需要systemctl restart networkmanager才能生效。比關閉和啟用網路連線要多乙個步驟,也算是多乙個使用的方法吧。

7.刪除網路連線

nmcli connection delete 網路連線名

收集 命令列配置網路

不知是不是有朋友像我一樣從使用者許可權下runas來得到乙個管理員許可權的cmd然後對電腦進行配置的修改,對於網路的配置用runas似乎不大好辦,其實我們一樣可以作到 下面看如何來作 c ipconfig all麢?r v傭?篾9紵 windows ip configuration2w?槩劃 鰆?y...

mac命令列配置網路

mac命令列配置網路 今天終於找到了mac os x通過命令列修改ip的方式了,記錄如下 修改mac位址,重啟後失效 sudo ifconfig en0 lladdr d0 67 e5 2e 07 f1 修改路由表,同時使用有線網絡卡和無線網絡卡 netstat nr 檢視路由表 www.2cto....

CentOS 命令列下網路配置

注 此方法適用於永久配置網路資訊 1 檢視網絡卡資訊 ifconfig 2 配置ip vi etc sysconfig network scripts ifcfg eth0 device eth0 網絡卡編號 bootproto static 靜態ip或者dhcp動態獲取。靜態 static 動態 ...