nmcli使用方法
nmcli使用方法非常類似Linux ip命令、cisco交換機命令,并且支持tab補全(詳見本文最后的Tips),也可在命令最后通過-h、–help、help查看幫助。在nmcli中有2個命令最為常用:
nmcli connection
譯作連接,可理解為配置文件,相當于ifcfg-ethX??梢院唽憺閚mcli c
nmcli device
譯作設備,可理解為實際存在的網卡(包括物理網卡和虛擬網卡)??梢院唽憺閚mcli d
在NM里,有2個維度:連接(connection)和設備(device),這是多對一的關系。想給某個網卡配ip,首先NM要能納管這個網卡。設備里存在的網卡(即nmcli d可以看到的),就是NM納管的。接著,可以為一個設備配置多個連接(即nmcli c可以看到的),每個連接可以理解為一個ifcfg配置文件。同一時刻,一個設備只能有一個連接活躍??梢酝ㄟ^nmcli c up切換連接。
connection有2種狀態:
活躍(帶顏色字體):表示當前該connection生效
非活躍(正常字體):表示當前該connection不生效
device有4種常見狀態:
connected:已被NM納管,并且當前有活躍的connection
disconnected:已被NM納管,但是當前沒有活躍的connection
unmanaged:未被NM納管
unavailable:不可用,NM無法納管,通常出現于網卡link為down的時候(比如ip link set ethX down)
nmcli常用命令
# 查看ip(類似于ifconfig、ip addr)
nmcli
# 創建connection,配置靜態ip(等同于配置ifcfg,其中BOOTPROTO=none,并ifup啟動)
nmcli c add type ethernet con-name ethX ifname ethX ipv4.addr 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.method manual
# 創建connection,配置動態ip(等同于配置ifcfg,其中BOOTPROTO=dhcp,并ifup啟動)
nmcli c add type ethernet con-name ethX ifname ethX ipv4.method auto
# 修改ip(非交互式)
nmcli c modify ethX ipv4.addr ‘192.168.1.200/24’
nmcli c up ethX
# 修改ip(交互式)
nmcli c edit ethX
nmcli> goto ipv4.addresses
nmcli ipv4.addresses> change
Edit ‘addresses’ value: 192.168.1.200/24
Do you also want to set ‘ipv4.method’ to ‘manual’? [yes]: yes
nmcli ipv4> save
nmcli ipv4> activate
nmcli ipv4> quit
# 啟用connection(相當于ifup)
nmcli c up ethX
# 停止connection(相當于ifdown)
nmcli c down
# 刪除connection(類似于ifdown并刪除ifcfg)
nmcli c delete ethX
# 查看connection列表
nmcli c show
# 查看connection詳細信息
nmcli c show ethX
# 重載所有ifcfg或route到connection(不會立即生效)
nmcli c reload
# 重載指定ifcfg或route到connection(不會立即生效)
nmcli c load /etc/sysconfig/network-scripts/ifcfg-ethX
nmcli c load /etc/sysconfig/network-scripts/route-ethX
# 立即生效connection,有3種方法
nmcli c up ethX
nmcli d reapply ethX
nmcli d connect ethX
# 查看device列表
nmcli d
# 查看所有device詳細信息
nmcli d show
# 查看指定device的詳細信息
nmcli d show ethX
# 激活網卡
nmcli d connect ethX
# 關閉無線網絡(NM默認啟用無線網絡)
nmcli r all off
# 查看NM納管狀態
nmcli n
# 開啟NM納管
nmcli n on
# 關閉NM納管(謹慎執行)
nmcli n off
# 監聽事件
nmcli m
# 查看NM本身狀態
nmcli
# 檢測NM是否在線可用
nm-online