openEuler WiFi 无法访问公网的排查与解决笔记
openEuler WiFi 无法访问公网的排查与解决笔记
在使用 openEuler 系统连接 WiFi 时,我遇到了 WiFi 已连接但无法访问公网 的问题。本文记录了从问题发现到解决的完整排查过程,方便未来遇到类似情况参考。
一、问题现象
在 openEuler 上使用 nmcli
查看网络状态:
1 | nmcli device status |
输出显示:
1 | wlan0 wifi connected CAD330BS1 |
可以看到无线网卡 wlan0
已经成功连接到 WiFi(SSID:CAD330BS1),但是尝试 ping 公网:
1 | ping www.baidu.com |
结果均提示:
1 | ping: socket: Operation not permitted |
二、初步诊断
-
普通用户权限问题
ping 报错 “Operation not permitted”,表明普通用户没有 raw socket 权限。使用sudo
测试:1
sudo ping 114.114.114.114
得到:
1
From 192.168.0.2 icmp_seq=1 Destination Host Unreachable
局域网可以访问,但公网不可达。
-
检查默认路由
1
ip route
输出:
1
2
3
4default via 192.168.0.1 dev usb0 proto static metric 100 linkdown
default via 172.168.50.1 dev wlan0 proto dhcp metric 600
172.168.50.0/24 dev wlan0 proto kernel scope link src 172.168.50.109 metric 600
192.168.0.0/24 dev usb0 proto kernel scope link src 192.168.0.2 metric 100 linkdown分析:
wlan0
默认路由存在,但 metric 较高(600),而usb0
的默认路由 metric=100,但 linkdown,可能影响路由选择。- WiFi IP 配置正确:
172.168.50.109/24
,网关172.168.50.1
,DNS 正确。
-
确认局域网连通性
1
sudo ping -c 4 172.168.50.1
成功返回:
1
64 bytes from 172.168.50.1: icmp_seq=1 ttl=64 time=1.70 ms
局域网连接正常。
-
排查防火墙
openEuler 上未启用
firewalld
:1
2sudo systemctl stop firewalld
Failed to stop firewalld.service: Unit firewalld.service not loaded.防火墙不是问题。
三、问题分析
根据以上排查,问题主要原因是:
- 默认路由冲突或优先级问题
- 系统存在两个默认路由,
usb0
虽然 linkdown,但 metric 较低,可能干扰路由选择。 wlan0
metric 较高,导致外网流量未通过 wlan0。
- 系统存在两个默认路由,
- 局域网和 DHCP 配置正确
- IP、子网掩码、网关和 DNS 都正确
- 问题仅在 路由选择 层,防火墙和 DNS 均正常。
四、解决步骤
- 删除无效的 usb0 默认路由
1 | sudo ip route del default via 192.168.0.1 dev usb0 |
- 重新设置 wlan0 默认路由
1 | sudo ip route add default via 172.168.50.1 dev wlan0 |
- 验证网络
1 | ip route |
成功 ping 通公网 IP 和域名,网络恢复正常。
五、总结与经验
通过此次排查,我总结了 openEuler WiFi 网络问题的几个关键点:
- 局域网可通 ≠ 公网可达
- 先确认能否 ping 网关,再看是否能 ping 公网 IP
- 默认路由优先级(metric)非常重要
- 如果系统存在多个默认路由,metric 高的路由可能导致流量被阻塞
- linkdown 接口的默认路由最好删除
- 防火墙不是唯一因素
- openEuler 默认防火墙未启用,但仍可能出现无法访问公网的情况
- 排查流程建议:
- 检查 IP 与网关:
ip addr show wlan0
,ping 网关
- 检查默认路由:
ip route
- 删除无效路由,重新添加正确路由
- 测试公网 IP 与域名连通性
- 检查防火墙和 DNS(如必要)
- 检查 IP 与网关:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 James的成长之路!
评论