● AI回答 :https://yb.tencent.com/s/2Da4q8PArMyr
● 问题描述 :同时连接eth2、wlan0网卡时,wlan0连公司访客wifi不能联网;
● 总结 :由于多个网卡,导致路由表不对,搜索不到正确的联网地址;
● 解决思路:修改默认路由规则,让wifi路由优先级最高;
① 查询路由表
bash
# nmcli是ubuntu22.04的网络管理器NetworkManager的命令工具
nmcli connection show
可以看到eth2排最上面,wlan0排第二个;

② 修改有线和无线路由优先级(metric越大越低,但数值不能相同)
方案一:nmcli(临时生效,关机时复位)
bash
# 修改有线连接的优先级(降低)
sudo nmcli connection modify "netplan-eth2" ipv4.route-metric 1100
sudo nmcli connection modify "netplan-eth3" ipv4.route-metric 1000
# 修改无线连接的优先级(提高)- 使用正确的连接ssid名称
sudo nmcli connection modify "Lyric_Robot-Guest 1" ipv4.route-metric 100
# 重启NetworkManager
sudo systemctl restart NetworkManager
方案二 :netplan(推介,永久有效,开机时加载)
编辑netplan文件:
sudo vi /etc/netplan/01-network-manager-all.yaml
bash
network:
version: 2
renderer: NetworkManager
ethernets:
eth0:
dhcp4: true
routes:
- to: 0.0.0.0/0
via: 172.20.1.233/24
metric: 1300 # 添加这行
eth1:
dhcp4: true
routes:
- to: 0.0.0.0/0
via: 182.168.1.233/24
metric: 1200 # 添加这行
eth2:
dhcp4: true
routes:
- to: 0.0.0.0/0
via: 192.168.1.233/24
metric: 1100 # 添加这行
eth3:
dhcp4: true
routes:
- to: 0.0.0.0/0
via: 192.20.0.100/24
metric: 1000 # 添加这行
wifis:
wlan0:
dhcp4: true
access-points:
"Lyric_Robot-Guest 1":
password: "12345678"
routes:
- to: 0.0.0.0/0
# via: 192.168.1.1 # 这个配置和dhcp4互斥,动态还是静态自己决定
metric: 100 # 添加这行,最大的优先级保证wifi路由寻址正常
执行sudo netplan apply 命令应用netplan,不报错即可,报错则按提示检查。
③ 结果[成功]
【nmcli connection show】查询路由表可以看到 "Lyric_Robot-Guest 1"排第一个了;

【ip route show】:可以看到metric值确实改变了。

可以同时使用有线的时候,wifi可以联网了。(测试OK)