web-dev-qa-db-ja.com

ネットワークルーティングメトリックを永続的に変更するにはどうすればよいですか

ネットワークルーティングメトリックを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に戻ります。この変更を永続的なものにしたり、起動時に自動的に設定したりするにはどうすればよいですか?

7
marathon

これを行う正しい方法は、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およびを強制終了して、インターフェース、、ネットワークマネージャーを再起動します。

ドキュメント ここ を見つけることができます。

6
MariusMatutiae

NetworkManagerを使用している場合、デフォルトルートのメトリックを変更する適切な方法は、次のようにインターフェースenp0s3に関連付けられた接続を変更することです。

nmcli connection modify <connection-name> ipv4.route-metric 1

次に、接続を再度アクティブにします。

nmcli connection up <connection-name>

<connection-name>の出力でnmcli connectionの値を確認できます。

10
bengal

このようなインターフェイスメトリックを設定できる/etc/dhcpd.confで永続化できるはずです。

interface enp0s3;
metric 1;
1
Pythonic

これを行う最も簡単で正しい方法は、/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イベントでインターフェースを開始します。
1