IMX6ULL Pro 配网踩坑记:明明连上 WiFi,却无法访问外网?
背景最近在给 IMX6ULL Pro 开发板配网时遇到了一个问题WiFi 已经成功连接wlan0也拿到了 IP 地址但无论如何就是 ping 不通外网www.baidu.com和8.8.8.8全都无法访问。经过一番排查最终发现竟然是路由表优先级——eth0的默认路由优先级高于wlan0导致所有网络流量都错误地涌向了没有插网线的eth0。这篇文章记录一下完整的排查思路和解决过程希望能帮到遇到类似问题的朋友。一、问题现象Wi-Fi 连接成功ifconfig输出如下wlan0 Link encap:Ethernet HWaddr C8:FE:0F:E6:9A:42 inet addr:192.168.246.151 Bcast:192.168.246.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:34 errors:0 dropped:299 overruns:0 frame:0 TX packets:15 errors:0 dropped:0 overruns:0 carrier:0IP 地址已正常获取但[root100ask:~]# ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8): 56 data bytes ^C --- 8.8.8.8 ping statistics --- 9 packets transmitted, 0 packets received, 100% packet loss [root100ask:~]# ping www.baidu.com ping: bad address www.baidu.com连网关都 ping 不通ping 192.168.246.1 # 100% packet loss二、原因导致Step 1网关不是192.168.246.1在连接热点的时候可能直接将热点的IP当成了网关Step 2查看路由表发现问题根源route -n输出如下Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.5.1 0.0.0.0 UG 0 0 0 eth0 0.0.0.0 192.168.246.154 0.0.0.0 UG 100 0 0 wlan0 192.168.5.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.246.0 0.0.0.0 255.255.255.0 U 100 0 0 wlan0eth0有一条默认路由网关是192.168.5.1Metric 为 0最高优先级wlan0也有一条默认路由网关是192.168.246.154Metric 为 100较低优先级虽然我连接的是 Wi-Fi但由于eth0的优先级更高系统把所有外网流量都优先送往eth0。而eth0根本没插网线数据包自然石沉大海。三、解决方案删除错误的默认路由重新指定网关# 1. 删除 eth0 的默认路由 route del default gw 192.168.5.1 # 2. 查看当前路由表确认 route -n此时路由表只剩wlan0的路由再测试一下[root100ask:~]# ping 8.8.8.8 -c 4 PING 8.8.8.8 (8.8.8.8): 56 data bytes 64 bytes from 8.8.8.8: seq0 ttl106 time392.287 ms 64 bytes from 8.8.8.8: seq1 ttl106 time279.379 ms 64 bytes from 8.8.8.8: seq2 ttl106 time248.894 ms还有一个问题就是DNS 解析失败虽然8.8.8.8能 ping 通了但ping www.baidu.com还是失败ping www.baidu.com # ping: bad address检查/etc/resolv.confls -l /etc/resolv.conf # lrwxrwxrwx 1 root root 32 ... - /var/run/resolv.conf发现它是一个损坏的软链接指向的目标文件不存在导致 DNS 配置没有生效。修复 DNSrm /etc/resolv.conf echo nameserver 114.114.114.114 /etc/resolv.conf echo nameserver 8.8.8.8 /etc/resolv.conf再次测试[root100ask:~]# ping www.baidu.com -c 4 PING www.baidu.com (183.2.172.177): 56 data bytes 64 bytes from 183.2.172.177: seq0 ttl51 time48.446 ms 64 bytes from 183.2.172.177: seq1 ttl51 time37.025 ms 64 bytes from 183.2.172.177: seq2 ttl51 time95.887 ms 64 bytes from 183.2.172.177: seq3 ttl51 time35.516 ms四、总结问题根因路由表冲突eth0与wlan0同时存在默认路由且eth0的 Metric 值更小优先级更高导致流量错误地走入了没有网线的eth0。DNS 配置损坏/etc/resolv.conf是一个指向不存在目标的软链接导致域名解析失败。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →