NetworkManager是2004年Red Hat啓動的項目,旨在可以讓Linux用戶更輕鬆地處理現代網絡需求,尤爲是無線網絡,能自動發現網卡並配置ip地址。linux
在rhel8上,必須開啓NM,不然沒法使用網絡。網絡
相似在手機上同時開啓wifi和蜂窩網絡,自動探測可用網絡並鏈接,無需手動切換。app
nmcli使用方法很是相似linux ip命令、cisco交換機命令,而且支持tab補全,也可在命令最後經過-h、--help、help查看幫助。在nmcli中有2個命令最爲經常使用:ide
nmcli connection字體
譯做鏈接,可理解爲配置文件,至關於ifcfg-eth0。能夠簡寫爲nmcli cspa
nmcli deviceorm
譯做設備,可理解爲實際存在的網卡(包括物理網卡和虛擬網卡)。能夠簡寫爲nmcli ddns
在NM裏,有2個維度:鏈接(connection)和設備(device),這是多對一的關係。想給某個網卡配ip,首先NM要能納管這個網卡。設備裏存在的網卡(即 nmcli d能夠看到的),就是NM納管的。接着,能夠爲一個設備配置多個鏈接(即 nmcli c能夠看到的),每一個鏈接能夠理解爲一個ifcfg配置文件。同一時刻,一個設備只能有一個鏈接活躍。能夠經過 nmcli c up切換鏈接。事件
connection有2種狀態:ip
▷ 活躍(帶顏色字體):表示當前該connection生效 ▷ 非活躍(正常字體):表示當前該connection不生效
device有4種常見狀態:
▷ connected:已被NM納管,而且當前有活躍的connection ▷ disconnected:已被NM納管,可是當前沒有活躍的connection ▷ unmanaged:未被NM納管 ▷ unavailable:不可用,NM沒法納管,一般出現於網卡link爲down的時候(好比ip link set ethX down)
配置動態ip(等同於配置ifcfg,其中BOOTPROTO=dhcp,並ifup啓動)
nmcli c add type ethernet con-name eth0 ifname ens33 ipv4.method auto
type ethernet:建立鏈接時候必須指定類型,類型有不少,能夠經過nmcli c add type -h看到,這裏指定爲ethernet。
con-name eth0 ifname ens33:第一個eth0表示鏈接(connection)的名字,這個名字能夠任意定義,無需和網卡名相同;第二個ens33表示網卡名,這個ens33必須是在nmcli d裏能看到的。
配置靜態ip(等同於配置ifcfg,其中BOOTPROTO=none,並ifup啓動)
nmcli c add type ethernet con-name eth0 ifname ens33 ipv4.addr 192.168.1.100/24 ipv4.gateway 192.168.1.254 ipv4.dns '8.8.8.8,4.4.4.4' ipv4.method manual
ipv4.method對應ifcfg文件內容的BOOTPROTO,ipv4.method默認爲auto,對應爲BOOTPROTO=dhcp,這種時候若是指定ip,就可能致使網卡同時有dhcp分配的ip和靜態ip。設置爲manual表示BOOTPROTO=none,即只有靜態ip。
# 查看ip(相似於ifconfig、ip addr)
nmcli
# 啓用指定網卡配置文件(至關於ifup)
nmcli c up ethX
# 中止指定網卡配置文件(至關於ifdown)
nmcli c down ethX
# 刪除指定網卡配置文件(相似於ifdown並刪除ifcfg)
nmcli c delete ethX
# 查看connection列表
nmcli c show
# 查看connection詳細信息
nmcli c show ethX
# 重載全部網卡配置文件(不會當即生效)
nmcli c reload
# 重載指定ifcfg或route到connection(不會當即生效)
nmcli c load /etc/sysconfig/network-scripts/ifcfg-ethX
nmcli c load /etc/sysconfig/network-scripts/route-ethX
# 當即使網卡配置文件生效,有3種方法
nmcli c up eth0 # 啓用指定網卡配置文件
nmcli d reapply eth0 #刷新網卡配置文件,前提是網卡的device處於connected狀態,不然會報錯。
nmcli d connect eth0 #激活網卡
# 查看網卡列表
nmcli d
# 查看全部網卡的詳細信息
nmcli d show
# 查看指定網卡的詳細信息
nmcli d show eth0
# 激活網卡(就算以前nmcli c delete eth0刪除網卡配置文件,也可使用此命令激活從新生成配置文件)
由NM對指定網卡進行管理,同時刷新該網卡對應的活躍connection(若是以前有修改過connection配置);若是有connection可是都處於非活躍狀態,則自動選擇一個connection並將其活躍;若是沒有connection,則自動生成一個並將其活躍。
nmcli d connect eth0
nmcli d disconnect eth0
讓NM暫時無論理指定網卡,此操做不會變動實際網卡的link狀態,只會使對應的connection變成非活躍。若重啓系統則又會自動connect。另外,若是手工將該網卡的connection所有刪掉,該網卡狀態也會自動變爲disconnected。
# 關閉無線網絡(NM默認啓用無線網絡)
nmcli r all off
# 查看NM啓動狀態
nmcli n
# 開啓NM納管
nmcli n on
# 關閉NM納管(謹慎執行)
nmcli n off
# 監聽事件
nmcli m
# 查看NM自己狀態
nmcli
# 檢測NM是否在線可用
nm-online