Network-scriptsでdhcpをstaticに変更した後、servicesystemctl restart NetworkManager
を再起動したとき。静的IP設定は更新されると想定されていますが、更新されていません。だから私はしよう
ip link set dev enp0s3 down
、次にup
iPを更新しませんでした
次に、ifdown enp0s3
、次にifup enp0s3
で試してみます
機能した
なぜそれがifup
で機能したのですか?
前文:ip
およびifconfig
は、制御および監視ネットワーク用のユーティリティです。これらは通常、永続的な構成ファイルの読み取り/書き込みには使用されません。これが、ip link
が機能しなかった理由です。永続的な構成管理は、NetworkManager
などの他の手段で実行する必要があります。
(言うまでもないことですが、補足として、ip
を提供するiproute2
、 採用されている/採用されているnet-tools
の代わりとして多くのディストリビューションで採用されています。 ifconfig
を提供します。互換性の理由から、両方ともディストリビューションのデフォルトパッケージとして出荷されることがよくあります)。
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
を呼び出すか、man NetworkManager.conf
に記載されているようにNetworkManager
構成を変更します。
モニター接続ファイル
設定プラグインがファイルモニターをセットアップし、NetworkManagerの実行中に接続ファイルに加えられた変更をすぐに取得する必要があるかどうか。これはデフォルトで無効になっています。 NetworkManagerは、起動時、およびReloadConnectionsD-Bus呼び出しを介して明示的に要求された場合にのみ接続ファイルを読み取ります。 [...]
ip
は、ifconfig
と同様に、ハードウェアの状態を直接変更します。 ifconfig
とip
の唯一の違いは、ip
の構文が異なり、一部の機能をサポートしていることですifconfig
にはありません。
一方、ifup
とifdown
は、多数のスクリプトを実行し、/etc/network/interfaces
ファイルとその他の構成ファイルを読み取って、それに基づいて動作します。これには、おそらく/etc/network/interfaces
に入力する静的IP設定の追加が含まれます。
原則として、Network Managerもそれらを取得する必要がありますが、私はNetwork Managerを実行していません(ほとんどの場合、邪魔になります)。そのため、なぜ機能しなかったのかわかりません。
したがって、ネットワーク構成ファイルを考慮に入れる場合は、ifup
/ifdown
とNetworkManagerを使用してください。インターフェース設定を直接変更したい場合は、ip
とifconfig
を使用してください。