ネットワークルーティングメトリックをifmetric
で変更できます。たとえば、ifmetric enp0s3 1
。
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 1 0 0 enp0s3
0.0.0.0 192.168.237.1 0.0.0.0 UG 100 0 0 enp0s8
ただし、再起動すると、enp0s3のメトリックが101に戻ります。この変更を永続的なものにしたり、起動時に自動的に設定したりするにはどうすればよいですか?
これを行う正しい方法は、Debianおよび派生物で、次の内容で/ etc/NetworkManager/dispatcher.dにファイルを書き込むことです(好きな名前を付けてください)。 :
#!/bin/sh
# Change the metric of the default route only on interface enp0s3
IF=$1
STATUS=$2
MY_METRIC=1
if [ "$IF" = "enp0s3" ]
then
case "$STATUS" in
up)
ip route del default dev $IF
ip route add default via $DHCP4_ROUTERS dev $IF metric $MY_METRIC
;;
*)
;;
esac
fi
これにより、更新ごとにカスタマイズが上書きされることはありません。これを確認するには、ネットワークマネージャーを停止し、dhclientおよびを強制終了して、インターフェース、、ネットワークマネージャーを再起動します。
ドキュメント ここ を見つけることができます。
NetworkManagerを使用している場合、デフォルトルートのメトリックを変更する適切な方法は、次のようにインターフェースenp0s3に関連付けられた接続を変更することです。
nmcli connection modify <connection-name> ipv4.route-metric 1
次に、接続を再度アクティブにします。
nmcli connection up <connection-name>
<connection-name>
の出力でnmcli connection
の値を確認できます。
このようなインターフェイスメトリックを設定できる/etc/dhcpd.conf
で永続化できるはずです。
interface enp0s3;
metric 1;
これを行う最も簡単で正しい方法は、/etc/network/interfaces
を編集することです。
/etc/network/interfaces
の簡単な例を次に示します。
auto lo eth0
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet dhcp
metric 700
service networking restart
を使用してネットワークを再起動し、変更を有効にします。
参照:セクション5.7.2。 Debianマニュアル のifmetricパッケージ
以下は、eth0インターフェースがwlan0インターフェースよりも優先されるように設定します。
Ifmetricパッケージをインストールします。
"/ etc/network/interfaces"の "iface eth0 inet dhcp"行のすぐ下に "metric 0"のオプション行を追加します。
「/ etc/network/interfaces」の「iface wlan0 inet dhcp」行のすぐ下に「metric 1」のオプション行を追加します。
追加の注意:
auto <interface1> <interface2>
は、システムの開始時にインターフェースを開始します。allow-hotplug <interface>
は、hotplugイベントでインターフェースを開始します。