在 Debian GNU/Linux 系统中,路由网关的优先级由 路由的度量值 (metric) 来决定。度量值越小,优先级越高。当有多个默认路由时,系统会选择度量值最小的路由进行通信。
[注意]树莓派4如果同时连接无网络的eth0以太网和有网络的wlan0时,可能会导致wifi连接后无法上网问题,因为eth0路由网关优先级高于wlan0导致的这个情况。
0. 查看当前路由表
使用ip route 命令查看当前的路由表:
ip route
输出示例:
1. 修改路由网关优先级
要修改网关的优先级,需要调整相应路由的metric值。
0. 删除现有路由:
sudo ip route del default
1. 接着添加新的路由并指定优先级(度量值)
- 例如,如果您希望 eth0 网卡优先,则将 eth0 路由的度量值设置为较小的数值:
// 这里将wifi网络口设置为优先级第一,这样就可以通过wifi来上网了
sudo ip route add default via 192.168.43.1 dev wlan0 metric 100
sudo ip route add default via 192.168.1.1 dev eth0 metric 200
metric 100 表示 wlan0 的路由优先级较高。
metric 200 表示 eth0的路由优先级较低。
2. 永久保存路由配置
- 路由表中的设置在系统重启后会丢失。如果您想要让这些设置永久生效,可以通过修改。Debian GNU/Linux 12 (Bookworm)版本通过NetworkManager来设置。通过 nmcli 命令行工具或 nm-connection-editor GUI 来设置路由的优先级。
sudo nmcli connection modify "Wi-Fi 1" ipv4.route-metric 100
sudo nmcli connection modify "Wired connection 1" ipv4.route-metric 200
如果配置正确,优先级较高的网关将使用较小的 metric 值,并且系统将优先使用该网关。