银河麒麟WiFi连通但ping不通网关,需依次排查:①验证网关与IP是否同子网;②临时关闭firewalld确认ICMP拦截;③检查wlp3s0链路状态及无线连接;④抓包分析ARP请求响应;⑤强制刷新路由表并清空ARP缓存;⑥禁用IPv6排除协议干扰。

银河麒麟系统显示WiFi已连接、本地IP地址配置正确(如192.168.1.105/24),但执行 ping 192.168.1.1 始终超时,网页打不开、SSH连不上,说明链路层已通,问题卡在ARP解析、路由转发或策略拦截环节。
确认网关与本机是否真实同子网
打开终端,运行:ip route | grep default,记下默认网关IP(如192.168.1.1)和出接口(如wlp3s0)。
再运行:ip addr show wlp3s0,找到该接口的 inet 地址(如192.168.1.105)及其前缀长度(如/24)。
【子网掩码必须严格匹配:若网关是192.168.1.1,本机地址就必须落在192.168.1.0/24范围内,且不能是169.254.x.x等链路本地地址】。若前缀为/16或/23,即使IP看起来“相近”,ARP请求也无法发出——因为系统判定网关不在直连网段,会直接查路由表而非发ARP。
若 ip addr 中未显示有效 inet 地址,或只有 inet6 或 169.254.x.x,说明 DHCP 根本没成功,此时所有后续排查无效,应先重启 NetworkManager:sudo systemctl restart NetworkManager。
检查无线接口链路状态与ARP行为
方法一:快速验证物理关联
执行:iw dev wlp3s0 link。若输出含 Connected to xx:xx:xx:xx:xx:xx 且信号强度正常(signal: -45 dBm),说明无线握手完成;若显示 Not connected.,则NetworkManager未真正关联AP,需核对WiFi密码或尝试切换认证模式(如关闭WPA3强制降级为WPA2)。
方法二:抓包看ARP是否发出
运行:sudo tcpdump -i wlp3s0 arp and host 192.168.1.1 -c 2,同时新开终端执行 ping -c 1 192.168.1.1。
若 tcpdump 无任何输出,说明系统根本没尝试解析网关MAC——问题在路由表缺失或NetworkManager未注入默认路由;若看到 who-has 192.168.1.1 但无 tell 响应,则网关设备未回复ARP,需检查路由器是否禁用了ICMP响应或ARP代理功能。
临时关闭防火墙验证ICMP拦截
银河麒麟V10默认启用 firewalld,其 public 区域规则常静默丢弃入向 ICMP Echo Request。
执行:sudo systemctl stop firewalld。
立即测试:ping -c 3 192.168.1.1。
若此时能通,说明问题确由防火墙引起;若仍不通,继续下一步。注意:firewalld 停止后无需重启即可生效,但该操作仅用于诊断。
强制刷新路由表并清空ARP缓存
某些Realtek无线网卡(如RTL8822CE)在麒麟OS下存在路由注入延迟,导致 default via 规则未写入内核路由表。
第一步:删除当前默认路由(替换为你的实际网关和接口):sudo ip route del default via 192.168.1.1 dev wlp3s0 2>/dev/null
第二步:手动重加,并显式指定源地址避免多网卡选错出口:sudo ip route add default via 192.168.1.1 dev wlp3s0 src 192.168.1.105
第三步:清空ARP缓存,强制重新解析:sudo ip neigh flush dev wlp3s0
完成后立即执行 ping 192.168.1.1 测试响应。
禁用IPv6排除协议干扰
IPv6启用状态下,部分路由器会因NDP(邻居发现协议)异常干扰IPv4 ARP流程,尤其在双栈网络中表现隐蔽。
临时禁用IPv6:执行 sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 和 sudo sysctl -w net.ipv6.conf.wlp3s0.disable_ipv6=1。
再执行一次 ping 192.168.1.1。若通,说明IPv6协议栈存在兼容性问题,可将上述命令写入 /etc/sysctl.conf 永久生效。











