Linux

ip-tools 與舊的 ifconfig

  • April 1, 2020

當我在網路腳本中將 dhcp 更改為 static 然後我重新啟動 service systemctl restart NetworkManager。靜態 ip 設置應該被更新,但它沒有。所以我嘗試

ip link set dev enp0s3 down進而up

沒有更新ip

然後我ifdown enp0s3嘗試ifup enp0s3

有效

為什麼它起作用了ifup

序言:ip並且是用於控制監視網路ifconfig的實用程序。它們通常不用於讀取/寫入持久配置文件 - 這就是為什麼不起作用。持久配置管理必須通過其他方式來完成,例如.ip link``NetworkManager

(可能不用說,但是,作為旁注,iproute2提供ip的 ,已經/正在被許多發行版採用,作為提供 的 的替代品。出於兼容性原因net-toolsifconfig它們通常都作為發行版中的預設軟體包提供)。

為什麼ifup有效而systemctl restart NetworkManager無效:

在 CentOS 上(我已經檢查了 CentOS 7),ifup並由; 它們對 中的腳本進行操作,由同一個包提供。因此,能夠應用您在此處所做的更改也就不足為奇了。ifdown``initscripts``/etc/sysconfig/network-scripts/``ifup

NetworkManager - CentOS 從上游繼承的預設網路服務提供商 - 在 Red Hat 和 Fedora 上被配置為使用ifcfg-rh外掛/etc/sysconfig/network-scripts/ifcfg-*. 但它不監視這些文件。

man nm-settings-ifcfg-rh警告說

使用者可以手動創建或修改 ifcfg-rh 連接文件,即使這不是管理配置文件的推薦方式。但是,如果他們選擇這樣做,他們必須通知 NetworkManager 他們的更改(參見 nm-settings(5) 中的 monitor-connection-file 和 nmcli con (re)load)。

因此,systemctl reload NetworkManager不應該從 CentOS 上的文件重新載入網路連接的配置。為此,您可以呼叫nmcli connection reload或更改NetworkManager配置,如man NetworkManager.conf

monitor-connection-files

配置的設置外掛是否應該設置文件監視器並在 NetworkManager 執行時立即獲取對連接文件所做的更改。預設情況下禁用此功能;NetworkManager 只會在啟動時以及通過 ReloadConnections D-Bus 呼叫明確請求時讀取連接文件。

$$ … $$

引用自:https://unix.stackexchange.com/questions/482596