nmcli工具詳解




1. nmcli 安裝

nmcli實用工具是由NetworkManager包提供,有關詳情,請參閱NetworkManager(8)

~]$ yum install -y NetworkManager

在CentOS 7中,默認已安裝。






2. nmcli 基本選項


選項 作用
-t 簡潔輸出,會將多余的空格刪除,
-p 人性化輸出,輸出很漂亮
-n 優化輸出,有兩個選項tabular(不推薦)和multiline(默認)
-c 顏色開關,控制顏色輸出(默認啟用)
-f 過濾字段,all為過濾所有字段,common打印出可過濾的字段
-g 過濾字段,適用於腳本,以:分隔
-w 超時時間






3. general 常規選項

命令格式:nmcli general {status|hostname|permissions|logging}
命令描述:使用此命令可以顯示網絡管理器狀態和權限,你可以獲取和更改系統主機名,以及網絡管理器日志記錄級別和域。



3.1 status

顯示網絡管理器的整體狀態。

[root@www ~]# nmcli general status
STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN    
connected  full          enabled  enabled  enabled  enabled 



3.2 hostname

獲取主機名或該更主機名,在沒有給定參數的情況下,打印配置的主機名,當指定了參數,它將被移交給NetworkManager,以設置為新的系統主機名。

[root@www ~]# nmcli general hostname
www.keepdown.cn
[root@www ~]# nmcli general hostname myself
[root@www ~]# nmcli general hostname
myself



3.3 permissions

顯示當前用戶對網絡管理器可允許的操作權限。 如啟用和禁用網絡、更改WI-FI和WWAN狀態、修改連接等。

[root@www ~]# nmcli general permissions 
PERMISSION                                                 VALUE 
org.freedesktop.NetworkManager.enable-disable-network      yes   
org.freedesktop.NetworkManager.enable-disable-wifi         yes   
org.freedesktop.NetworkManager.enable-disable-wwan         yes   
org.freedesktop.NetworkManager.enable-disable-wimax        yes   
org.freedesktop.NetworkManager.sleep-wake                  yes   
org.freedesktop.NetworkManager.network-control             yes   
org.freedesktop.NetworkManager.wifi.share.protected        yes   
org.freedesktop.NetworkManager.wifi.share.open             yes   
org.freedesktop.NetworkManager.settings.modify.system      yes   
org.freedesktop.NetworkManager.settings.modify.own         yes   
org.freedesktop.NetworkManager.settings.modify.hostname    yes   
org.freedesktop.NetworkManager.settings.modify.global-dns  yes   
org.freedesktop.NetworkManager.reload                      yes   
org.freedesktop.NetworkManager.checkpoint-rollback         yes   
org.freedesktop.NetworkManager.enable-disable-statistics   yes



3.4 loggin

獲取和更改網絡管理器日志記錄級別和域,沒有任何參數當前日志記錄級別和域顯示。為了更改日志記錄狀態, 請提供級別和域參數,有關可用級別和域值, 參閱NetworkManager.conf(5)

[root@www ~]# nmcli general logging
LEVEL  DOMAINS                                                                                                                                                                                                                       
INFO   PLATFORM,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,IP4,IP6,AUTOIP4,DNS,VPN,SHARING,SUPPLICANT,AGENTS,SETTINGS,SUSPEND,CORE,DEVICE,OLPC,INFINIBAND,FIREWALL,ADSL,BOND,VLAN,BRIDGE,TEAM,CONCHECK,DCB,DISPATCH,AUDIT,SYSTEMD,PROXY






4. networking 網絡控制

命令格式:nmcli networking {on|off|connectivity}
命令描述:查詢網絡管理器網絡狀態,開啟和關閉網絡
選項:

  • on: 禁用所有接口
  • off: 開啟所有接口
  • connectivity: 獲取網絡狀態,可選參數checl告訴網絡管理器重新檢查連接性,否則顯示最近已知的狀態。而無需重新檢查。(可能的狀態如下所示)
    • none: 主機為連接到任何網絡
    • portal: 無法到達完整的互聯網
    • limited: 主機已連接到網絡,但無法訪問互聯網
    • full: 主機連接到網絡,並具有完全訪問
    • unknown: 無法找到連接狀態
[root@www ~]# nmcli networking connectivity
full
[root@www ~]# nmcli networking connectivity check
full






5. radio 無線限傳輸控制

命令格式:nmcli radio {all|wifi|wwan}
顯示無線開關狀態,或啟用和禁用開關

[root@www ~]# nmcli radio all
WIFI-HW  WIFI     WWAN-HW  WWAN    
enabled  enabled  enabled  enabled 
[root@www ~]# nmcli radio all off
[root@www ~]# nmcli radio all
WIFI-HW  WIFI      WWAN-HW  WWAN     
enabled  disabled  enabled  disabled 
[root@www ~]# nmcli radio wifi on
[root@www ~]# nmcli radio wwan on
[root@www ~]# nmcli radio all
WIFI-HW  WIFI     WWAN-HW  WWAN    
enabled  enabled  enabled  enabled






6. monitor 活動監視器

活動監視器(ACTIVITY MONITOR)

觀察網絡管理器活動。監視連接的變化狀態、設備或連接配置文件。

另請參閱 nmcli connection monitornmcli device monitor某些設備或連接中的更改。






7. connection 連接管理

命令格式:nmcli connection {show|up|down|modify|add|edit|clone|delete|monitor|reload|load|import|export}
這是主要使用的一個功能。



7.1 show

show有兩種用法,分別是:


1. 列出活動的連接,或進行排序(+-為升降序)

# 查看所有連接狀態
[root@www ~]# nmcli connection show
# 等同於nmcli connection show --order +active
[root@www ~]# nmcli connection show --active
# 以活動的連接進行排序
[root@www ~]# nmcli connection show --order +active
# 將所有連接以名稱排序
[root@www ~]# nmcli connection show --order +name
# 將所有連接以類型排序(倒序)
[root@www ~]# nmcli connection show --order -type

2. 查看指定連接的詳細信息

[root@www ~]# nmcli connection show eth0
# 省略......



7.2 up

激活連接,提供連接名稱或uuid進行激活,若未提供,則可以使用ifname指定設備名進行激活。

# 以連接名進行激活
[root@www ~]# nmcli connection up eth0
# 以uuid進行激活
[root@www ~]# nmcli connection up 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
# 以設備接口名進行激活
[root@www ~]# nmcli connection up ifname eth0



7.3 down

停用連接,提供連接名或uuid進行停用,若未提供,則可以使用ifname指定設備名進行激活。

# 以連接名進行激活
[root@www ~]# nmcli connection down eth0
# 以uuid進行激活
[root@www ~]# nmcli connection down 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
# 以設備接口名進行激活
[root@www ~]# nmcli connection down ifname eth0



7.4 modify

這些屬性可以用nmcli connection show eth0進行獲取,然后可以修改、添加或刪除屬性,若要設置屬性,只需指定屬性名稱后跟值,空值將刪除屬性值,同一屬性添加多個值使用+。同一屬性刪除指定值用-加索引。


添加多個ip

# 添加三個
[root@www ~]# nmcli connection modify eth0 +ipv4.addresses 192.168.100.102/24
[root@www ~]# nmcli connection modify eth0 +ipv4.addresses 192.168.100.103/24
[root@www ~]# nmcli connection modify eth0 +ipv4.addresses 192.168.100.104/24
# 查看
[root@www ~]# nmcli -f IP4 connection show eth0
IP4.ADDRESS[1]:                         192.168.100.101/24
IP4.GATEWAY:                            192.168.100.100
IP4.DNS[1]:                             8.8.8.8
# 啟用配置
[root@www ~]# nmcli connection up eth0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/18)
# 再次查看
[root@www ~]# nmcli -f IP4 connection show eth0
IP4.ADDRESS[1]:                         192.168.100.101/24
IP4.ADDRESS[2]:                         192.168.100.102/24
IP4.ADDRESS[3]:                         192.168.100.103/24
IP4.ADDRESS[4]:                         192.168.100.104/24
IP4.GATEWAY:                            192.168.100.100
IP4.DNS[1]:                             8.8.8.8

刪除指定ip

[root@www ~]# nmcli -f IP4 connection show eth0
IP4.ADDRESS[1]:                         192.168.100.101/24
IP4.ADDRESS[2]:                         192.168.100.102/24
IP4.ADDRESS[3]:                         192.168.100.103/24
IP4.ADDRESS[4]:                         192.168.100.104/24
IP4.GATEWAY:                            192.168.100.100
IP4.DNS[1]:                             8.8.8.8
# 刪除索當前索引為2的地址
[root@www ~]# nmcli connection modify eth0 -ipv4.addresses 2
# 查看
[root@www ~]# nmcli -f IP4 connection show eth0
IP4.ADDRESS[1]:                         192.168.100.101/24
IP4.ADDRESS[2]:                         192.168.100.102/24
IP4.ADDRESS[3]:                         192.168.100.103/24
IP4.ADDRESS[4]:                         192.168.100.104/24
IP4.GATEWAY:                            192.168.100.100
IP4.DNS[1]:                             8.8.8.8
# 再次激活
[root@www ~]# nmcli connection up eth0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/19)
# 查看
[root@www ~]# nmcli -f IP4 connection show eth0
IP4.ADDRESS[1]:                         192.168.100.101/24
IP4.ADDRESS[2]:                         192.168.100.102/24
IP4.GATEWAY:                            192.168.100.100
IP4.DNS[1]:                             8.8.8.8



7.5 add

這是創建一個新的連接,需要指定新創建連接的屬性,語法與modify相同。

[root@www ~]# nmcli con add con-name eth1 type ethernet  autoconnect yes ifname eth0
# con-name     連接名稱
# type              連接類型
# autoconnect 是否自動連接
# ifname          連接到的設備名稱

更多的類型或方法可以使用nmcli connection add help查看。



7.6 clone

克隆連接,克隆一個存在的連接,除了連接名稱和uuid是新生成的,其他都是一樣的。

[root@www ~]# nmcli connection clone eth0 eth0_1



7.7 delete

刪除連接,這將刪除一個連接。

[root@www ~]# nmcli connection delete eth0_1



7.8 load

從磁盤加載/重新加載一個或多個連接文件,例如你手動創建了一個/etc/sysconfig/network-scripts/ifcfg-ethx連接文件,你可以將其加載到網絡管理器,以便管理。

[root@www ~]# echo -e "TYPE=Ethernet\nNAME=ethx" > /etc/sysconfig/network-scripts/ifcfg-ethx
[root@www ~]# nmcli connection show
NAME  UUID                                  TYPE            DEVICE 
eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  802-3-ethernet  eth0 
[root@www ~]# nmcli connection load /etc/sysconfig/network-scripts/ifcfg-ethx 
[root@www ~]# nmcli connection show
NAME  UUID                                  TYPE            DEVICE 
eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  802-3-ethernet  eth0   
ethx  d45d97fb-8530-60e2-2d15-d92c0df8b0fc  802-3-ethernet  --



7.9 monitor

監視連接配置文件活動。每當指定的連接更改時, 此命令都會打印一行。要監視的連接由其名稱、UUID 或 D 總線路徑標識。如果 ID 不明確, 則可以使用關鍵字 id、uuid 或路徑。有關 ID 指定關鍵字的說明, 請參閱上面的連接顯示。

監視所有連接配置文件, 以防指定無。當所有監視的連接消失時, 該命令將終止。如果要監視連接創建, 請考慮使用帶有 nmcli 監視器命令的全局監視器。

[root@www ~]# nmcli connection monitor eth0






8. device 設備管理

命令格式:nmcli device {status|show|set|connect|reapply|modify|disconnect|delete|monitor|wifi|lldp}
顯示和管理設備接口。該選項有很多功能,例如連接wifi,創建熱點,掃描無線,鄰近發現等,下面僅列出常用選項。詳細功能可使用nmcli device help查看。



8.1 status

打印設備狀態,如果沒有將命令指定給nmcli device,則這是默認操作。

[root@www ~]# nmcli device status
DEVICE  TYPE      STATE      CONNECTION 
eth0    ethernet  connected  eth0       
lo      loopback  unmanaged  --         
[root@www ~]# nmcli device
DEVICE  TYPE      STATE      CONNECTION 
eth0    ethernet  connected  eth0       
lo      loopback  unmanaged  --



8.2 show

顯示所有設備接口的詳細信息。

# 不指定設備接口名稱,則顯示所有接口的信息
[root@www ~]# nmcli device show eth0
GENERAL.DEVICE:                         eth0
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:0C:29:99:9A:A1
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     eth0
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/9
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.100.101/24
IP4.ADDRESS[2]:                         192.168.100.102/24
IP4.GATEWAY:                            192.168.100.100
IP4.DNS[1]:                             8.8.8.8



8.3 set

設置設備屬性

[root@www ~]# nmcli device set ifname eth0 autoconnect yes



8.4 connect

連接設備。提供一個設備接口,網絡管理器將嘗試找到一個合適的連接, 將被激活。它還將考慮未設置為自動連接的連接。(默認超時為90s)

[root@www ~]# nmcli dev connect eth0
Device 'eth0' successfully activated with '5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03'.



8.5 reapply

使用上次應用后對當前活動連接所做的更改來更新設備。

[root@www ~]# nmcli device reapply eth0
Connection successfully reapplied to device 'eth0'.



8.6 modify

修改設備上處於活動的設備,但該修改只是臨時的,並不會寫入文件。(語法與 nmcli connection modify 相同)

[root@www ~]# nmcli device modify eth0 +ipv4.addresses 192.168.100.103/24
Connection successfully reapplied to device 'eth0'.
[root@www ~]# nmcli dev show eth0
[root@www ~]# nmcli device modify eth0 -ipv4.addresses 1
Connection successfully reapplied to device 'eth0'.



8.7 disconnect

斷開當前連接的設備,防止自動連接。但注意,斷開意味着設備停止!但可用 connect 進行連接

[root@www ~]# nmcli device disconnect eth0



8.8 delete

刪除設備,該命令從系統中刪除接口。請注意, 這僅適用於諸如bonds, bridges, teams等軟件設備。命令無法刪除硬件設備 (如以太網)。超時時間為10秒

[root@www ~]# nmcli device delete bonds



8.9 monitor

監視設備活動。每當指定的設備更改狀態時, 此命令都會打印一行。

監視所有設備以防未指定接口。當所有指定的設備消失時, 監視器將終止。如果要監視設備添加, 請考慮使用帶有 nmcli 監視器命令的全局監視器。

[root@www ~]# nmcli device monitor eth0






9. nmcli 返回狀態碼

mcli 如果成功退出狀態值為0,如果發生錯誤則返回大於0的值。

  • 0: 成功-指示操作已成功

  • 1: 位置或指定的錯誤

  • 2: 無效的用戶輸入,錯誤的nmcli調用

  • 3: 超時了(請參閱 --wait 選項)

  • 4: 連接激活失敗

  • 5: 連接停用失敗

  • 6: 斷開設備失敗

  • 7: 連接刪除失敗

  • 8: 網絡管理器沒有運行

  • 10: 連接、設備或接入點不存在

  • 65: 當使用 --complete-args 選項,文件名應遵循。







免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM