更改网络接口的优先级

更改网络接口的优先级

我希望我的 ppp0 连接比 wlan0 具有更高的优先级。我在/etc/network/interfaces文件中添加了以下几行。

iface wlan0 inet dhcp
    up ifmetric wlan0 20
----------------------------------------------------------------------------
#route table after modifying
$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.43.1    0.0.0.0         UG    20     0        0 wlan0
169.254.0.0     0.0.0.0         255.255.0.0     U     20     0        0 wlan0
192.168.43.0    0.0.0.0         255.255.255.0   U     20     0        0 wlan0
220.224.141.145 0.0.0.0         255.255.255.255 UH    0      0        0 ppp0

如您所见,wlan0 的度量标准已更改为 20,但它仍比 ppp0 更受默认网关的青睐。当我查看路由手册页时,它提到“最近的内核未使用度量标准”。

我可以通过删除不需要的网关并添加 ppp0 作为网关来手动更改路由。但是当 wlan0 断开连接并重新连接时,路由表会更改为默认值。我如何才能永久将 ppp0 设置为默认网关?

答案1

您有多种方式可以更改默认路线。

进行此类活动的好地方是/etc/network/if-down.d//etc/network/if-up.d/

您可以在此文件夹中放置一些脚本并执行操作。例如,将此脚本放入每次启动时/etc/ppp/if-up.d/默认路由到接口,使脚本以执行权限 755调用ppp0script

sudo nano /etc/ppp/if-up.d/script

# Check for specific interface if desired
[ "$IFACE" != "ppp0" ] || exit 0
# Do something
sudo route add default dev ppp0

chmod 755 /etc/ppp/if-up.d/script

在第二种情况下wifi重新连接,再创建一个脚本,又名 script2

sudo nano /etc/network/if-up.d/script2

# Check for specific interface if desired
[ "$IFACE" != "wlan0" ] || exit 0
# Do something
sudo route add default dev ppp0

wlan0如果上升则将默认路由设置为,ppp0如果ppp0下降则路由将不会更改wlan0

尝试。

编辑1

根据互联网研究,对于ppp0界面,您将脚本移入/etc/ppp/if-up.d

相关内容