解决Linux系统WiFI和有线连接优先级问题

📋 背景

最近我更换了 Mac mini,并将家里的旧笔记本重装为 Linux 系统,打算将其作为存储服务器,存放一些大文件和视频(毕竟 Mac 存储小且贵🤭)。

为了提高数据传输效率,我通过网线将 Mac mini 和 Linux 系统直接互联。

⚠️ 问题

然而在配置过程中,遇到了一个问题:虽然 Linux 系统可以连接 WiFi,但当同时连接 WiFi 和有线网络时,它默认使用的是有线网络。

由于我有线连接仅与 Mac 互联,无法访问外网,因此需要调整 Linux 的网络配置,以便同时实现与 Mac 互通和访问外网。

💡 思路

通过查阅相关资料,我发现这是路由策略问题。Linux 系统通过配置路由优先级,可以控制哪条网络连接优先被使用。只需简单调整两种网络连接的优先级,就可以解决这个问题。

🖥️ 解决方案:修改路由优先级

1️⃣ 查看当前路由信息

首先,检查系统的默认路由,查看哪条网络连接优先:

1
2
3
4
5
6
# 查看路由信息
sudo ip route

# 可以看到,enp1s0(有线网络)被设置为默认路由,优先级较高。
default via 192.168.10.1 dev enp1s0 proto static metric 100
default via 192.168.0.1 dev wlp2s0 proto dhcp metric 600

2️⃣ 修改路由优先级

设置有线网络和无线网络的优先级。数字越大,优先级越低:

1
2
3
4
5
# 设置有线连接,最后面的数字越大,优先级越低
sudo nmcli connection modify enp1s0 ipv4.route-metric 900

# 设置无线连接,注意这里不是填路由上面的那个设备名称,而是 WiFi 的信号名称
sudo nmcli connection modify <你的无线连接名称> ipv4.route-metric 100

3️⃣ 重启网络连接

修改优先级后,重启相关的网络连接以使配置生效:

1
2
3
4
5
# 重启有线网络
sudo nmcli connection down enp1s0 && nmcli connection up enp1s0

# 重启无线网络
sudo nmcli connection down <你的无线连接名称> && nmcli connection up <你的无线连接名称>

4️⃣ 验证路由设置

最后,查看路由信息,确认无线网络现在已经成为默认路由:

1
2
3
4
5
# 可以看到这次无线的路由就是在最上面了
sudo ip route

default via 192.168.0.1 dev wlp2s0 proto dhcp metric 100
default via 192.168.10.1 dev enp1s0 proto static metric 900

此时,可以再次尝试 ping baidu.com,验证网络连接是否正常。

💡 结语

通过上述步骤,可以轻松解决 Linux 系统在同时连接 WiFi 和有线网络时的路由优先级问题,确保系统既能访问互联网,又能与本地设备(如 Mac)互通。