You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 24.04 LTS下实现内置与USB无线网卡自动切换的方案咨询

Ubuntu 24.04 LTS下实现内置与USB无线网卡自动切换的方案咨询

嗨,我来帮你搞定这个无线网卡自动切换的需求!结合你提供的网卡信息(wlan0是内置、wlx347de44fb859是USB),我们可以通过NetworkManager优先级配置+udev规则触发的组合来实现自动切换,具体步骤如下:

一、给USB网卡配置同WiFi并设置更高优先级

首先确保你的USB网卡能连接上和内置网卡一样的WiFi(比如你提到的WIFI228_2.4G),为了区分两个连接,建议给USB网卡的连接单独命名,比如WIFI228_2.4G (USB):

  1. 先查看当前所有WiFi连接:
nmcli connection show
  1. 复制内置网卡的WiFi连接配置,绑定到USB网卡:
nmcli connection clone "WIFI228_2.4G" "WIFI228_2.4G (USB)"
nmcli connection modify "WIFI228_2.4G (USB)" connection.interface-name wlx347de44fb859
  1. 给USB连接设置更低的路由metric值(数值越小优先级越高,你的内置网卡当前metric是600,我们设成500):
nmcli connection modify "WIFI228_2.4G (USB)" ipv4.route-metric 500
nmcli connection modify "WIFI228_2.4G (USB)" ipv6.route-metric 500

二、用udev规则实现插拔时的强制切换

优先级设置能让系统优先选择USB网卡,但有时候插拔动作可能不会立即触发切换,udev规则可以帮我们强制触发连接切换:

  1. 创建udev规则文件:
sudo nano /etc/udev/rules.d/90-wifi-switch.rules
  1. 粘贴以下内容(注意替换连接名称为你实际的名称,MAC地址用你提供的USB网卡地址):
# 插入USB网卡时,激活USB连接并禁用内置连接
ACTION=="add", SUBSYSTEM=="net", ATTR{address}=="34:7D:E4:4F:B8:59", RUN+="/usr/bin/nmcli connection up 'WIFI228_2.4G (USB)' && /usr/bin/nmcli connection down 'WIFI228_2.4G'"

# 拔出USB网卡时,重新激活内置连接
ACTION=="remove", SUBSYSTEM=="net", ATTR{address}=="34:7D:E4:4F:B8:59", RUN+="/usr/bin/nmcli connection up 'WIFI228_2.4G'"
  1. 保存退出编辑器后,重新加载udev规则:
sudo udevadm control --reload-rules && sudo udevadm trigger

三、测试验证

现在你可以插拔USB网卡试试效果:

  • 插入USB网卡:系统应该自动切换到USB网卡的连接,用nmcli device status可以查看当前活跃的网卡
  • 拔出USB网卡:系统会自动切回内置的wlan0连接

如果遇到问题,可以查看udev日志(journalctl -u systemd-udevd.service)或者NetworkManager日志(journalctl -u NetworkManager.service)来排查原因。

备注:内容来源于stack exchange,提问作者matveygal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 08:09:31