Ubuntu
如何永久更改網路路由指標
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
。