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 monitor
和nmcli 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 選項,文件名應遵循。