如何永久更改网络路由指标

如何永久更改网络路由指标

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。如何使此更改永久生效或在启动时自动设置?

答案1

如果您使用 NetworkManager,更改默认路由度量的正确方法是修改与接口 enp0s3 关联的连接,如下所示:

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

然后重新激活连接:

nmcli connection up <connection-name>

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

答案2

在 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

如果有问题的接口是以太网0,否则进行相应更改。

答案3

对于Ubuntu

ip route replace default via 192.168.1.1 metric 1

对我来说,自从我输入它以来,它不需要任何更多的步骤,并且直到现在它仍然是 metic 1。

对于 Centos

正确的方法是将上述条目添加到“/etc/sysconfig/network-scripts/route-eth(x)“除了所以ip route replace 只添加default via 192.168.1.1 metric 1

答案4

您应该能够使其永久化,/etc/dhcpd.conf您可以在其中设置这样的接口指标。

interface enp0s3;
metric 1;

相关内容