NetworkManager是用來管理網卡配置和串連狀態的工具。它能夠自動檢測可用的網路,並根據需要進行自動切換,同時也可以手動設定網路設定,例如IP地址、網關和DNS。本文介紹Alibaba Cloud Linux 3系統中NetworkManager設定檔及常見配置說明。您可以根據實際需求調整配置,以滿足特定的業務情境。
NetworkManager設定檔說明
NetworkManager的設定檔由以下檔案組成,載入順序從左至右,優先順序依次變高:/usr/lib/NetworkManager/conf.d、/run/NetworkManager/conf.d/、/etc/NetworkManager/NetworkManager.conf、/etc/NetworkManager/conf.d。
/usr/lib/NetworkManager/conf.d:該目錄主要包含軟體的預設配置,任何使用者自訂配置都應該儲存在優先順序更高的設定檔中(例如/etc/NetworkManager/conf.d),以確保這些定製設定在軟體封裝更新時不會被覆蓋。/run/NetworkManager/conf.d/:該目錄存放的是臨時回合組態,通常由系統服務或啟動指令碼在啟動時建立。由於系統重啟後配置會丟失,因此不建議在此目錄中存放自訂配置。/etc/NetworkManager/NetworkManager.conf:該檔案是NetworkManager的主設定檔,在軟體包的刪除和升級過程中被更新。因此,為了防止使用者的自訂更改被覆蓋,一般不建議直接修改NetworkManager.conf檔案。/etc/NetworkManager/conf.d:修改預設的NetworkManager推薦通過在/etc/NetworkManager/conf.d目錄下建立相應的.conf檔案來完成配置。這樣可以確保軟體封裝更新時,自訂設定保持不變。需要注意的是,該目錄中的檔案會按檔案名稱的字典序進行讀取。
NetworkManager常見配置
NetworkManager日誌配置
本文以設定level=TRACE和domains=ALL來收集所有的動作記錄為例。
執行以下命令,建立並開啟
set-log.conf檔案。sudo vim /etc/NetworkManager/conf.d/set-log.conf按
i鍵進入編輯模式,將以下內容複寫到set-log.conf檔案中。[logging] level=TRACE domains=ALLlevel參數說明
記錄層級(level)
說明
OFF
將日誌記錄關閉,不會輸出任何日誌資訊。
ERR
僅輸出錯誤層級的日誌資訊。
WARN
輸出警告層級及以上的日誌資訊。
INFO
輸出一般資訊層級的日誌。
DEBUG
輸出調試層級的日誌資訊。
TRACE
輸出非常詳細的追蹤層級的日誌資訊。
domains參數說明
領域(domains)
說明
NONE
不記錄任何領域的日誌資訊。
ALL
記錄所有可用領域的日誌資訊。
DEFAULT
記錄預設領域的日誌資訊。
DHCP
記錄與DHCP用戶端相關的日誌資訊。
IP
記錄與IP管理相關的日誌資訊。
按
Esc鍵,輸入:wq後按Enter鍵,儲存配置。執行以下命令,使配置生效。
sudo systemctl restart NetworkManager執行以下命令,查看NetworkManager日誌。
journalctl -u NetworkManager
NetworkManager不接管網卡配置
配置NetworkManager不接管網卡時,需要在keyfilesection中指定unmanaged-devices鍵。本文以NetworkManager配置不接管輔助網卡(如eth1)為例。
執行以下命令,查詢網卡狀態。
nmcli device status回顯資訊如下圖所示,表示
eth0和eth1預設被NetworkManager接管,lo未被接管。
執行以下命令,建立並開啟
unmanaged.conf檔案。sudo vim /etc/NetworkManager/conf.d/unmanaged.conf按
i鍵進入編輯模式,將以下內容複寫到unmanaged.conf檔案中。[keyfile] unmanaged-devices=interface-name:eth1按
Esc鍵,輸入:wq後按Enter鍵,儲存配置。執行以下命令,使配置生效。
sudo systemctl restart NetworkManager執行以下命令,查看修改是否成功。
nmcli device status
NetworkManager外掛程式配置
NetworkManager使用ifcfg-rh/keyfile外掛程式來讀取和寫入網路設定,預設情況下,使用ifcfg-rh外掛程式來管理主網卡(如eth0),使用keyfile外掛程式來管理輔助網卡(如eth1)。
ifcfg-rh外掛程式用於從/etc/sysconfig/network-scripts/ifcfg-*檔案中讀取/寫入配置。keyfile外掛程式是NetworkManager的通用外掛程式,每個串連都有一個對應的.nmconnection設定檔。
執行以下命令,開啟NetworkManager.conf設定檔。
sudo vim /etc/NetworkManager/NetworkManager.conf按
i鍵進入編輯模式,添加或修改plugins的值。說明plugins中外掛程式優先順序是按照聲明順序決定的,即最左邊的優先順序越高。[main] plugins = ifcfg-rh, keyfile按
Esc鍵,輸入:wq後按Enter鍵,儲存配置。執行以下命令,使配置生效。
sudo systemctl restart NetworkManager執行以下命令,查看配置是否成功。
sudo journalctl -u NetworkManager | grep -i "settings plugin"