Ubuntu

如何永久更改網路路由指標

  • March 18, 2022

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 刷新介面的 IP 地址,然後重新啟動網路管理器。

您可以在此處找到文件。

編輯

根據 FvD 要求:

systemctl stop network-manager
pkill dhclient
ip addr flush dev eth0   
systemctl start network-manager

如果有問題的介面是eth0,否則進行相應的更改。

如果您使用的是 NetworkManager,則更改預設路由的度量標準的正確方法是通過以下方式修改與介面 enp0s3 關聯的連接:

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

然後重新啟動連接:

nmcli connection up <connection-name>

<connection-name>您可以在 的輸出中找到 的值nmcli connection

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