目录
步骤 2:修复 DNS 配置,避免 “能通 IP 但不通域名”
本文首发于电子发烧友论坛:
最近在测试HZ-T536开发板时遇到个奇葩网络问题,折腾了小半天终于解决,特地来分享下排查思路 —— 毕竟 “部分网站通、部分网站不通” 这种情况,比 “完全没网” 更让人头大,新手很容易走弯路。

一、出现问题:诡异的 “选择性断网”
先上现象,大家感受下这矛盾的 ping 结果:
- 能通的网站(全是 IPv6 地址):
ping www.baidu.com:5 包全通,延迟 8-9ms,解析到 IPv6 地址2408:871a:2100:186c:0:ff:b07e:3fbc;ping www.sina.com.cn/www.huawei.com:同样全通,解析的都是 IPv6 地址。
- 不通的网站(全是 IPv4 地址):
ping open.bigmodel.cn:100% 丢包,提示From bogon (192.168.2.18) Destination Host Unreachable;ping www.bing.com:同上,解析到 IPv4 地址202.89.233.100但完全连不上。
第一反应是 “DNS 坏了?”,但 ping 百度 IPv6 能通,说明 DNS 能解析域名;再想 “运营商屏蔽?”,但同一网络下的 Windows 电脑能正常访问 bigmodel 和 Bing—— 排除外部问题,肯定是 HZ-T536本地配置炸了。
二、查找问题:从 “ping 结果差异” 抓核心线索
1. 先破 “IPv6 通、IPv4 不通” 的关键矛盾
为什么有的网站通有的不通?看解析地址类型瞬间明白:
- 通的网站:都解析到了 IPv6 地址(
2408:/2400:开头); - 不通的网站:只解析到 IPv4 地址(
60.205./202.89.开头)。
结论: HZ-T536的 IPv6 网络正常,但 IPv4 完全走不通 ,问题锁定在 IPv4 配置。
2. 查 IPv4 基础配置:找到 “死穴”
执行 3 条关键命令,扒出配置漏洞:
bash
# 1. 查看 IPv4 地址和网卡状态
ip addr show | grep -A 5 "inet "
# 2. 查看 IPv4 路由表(重点看默认网关)
ip route show
# 3. 查看 DNS 配置
cat /etc/resolv.conf | grep "nameserver"
关键输出解读(坑全在这里!):
- 网卡状态 :系统有两张网卡
eth0和eth1:eth0:IPv4 地址192.168.1.102/24,状态UP(链路正常);eth1:IPv4 地址192.168.2.18/24,状态linkdown(链路断开)。
- 路由表 :默认网关绑定在
eth1上!!!
plaintext
default via 192.168.2.1 dev eth1 onlink linkdown
翻译下:系统所有 IPv4 数据包,都要通过 “已断开的 eth1 网卡” 发往网关 192.168.2.1—— 这不是把数据包往 “死胡同” 里送吗?
- DNS 配置 :只有
nameserver 127.0.0.53(本地回环地址,没配上游 DNS 的话等于无效)。
3. 验证猜想:网关链路确实断了
ping 一下 eth1 的网关 192.168.2.1,果然不通;再 ping eth0 网段的网关 192.168.1.1(路由器常见网关),虽然当时没配,但能 ping 通 —— 实锤了: 默认网关绑错了网卡,且绑错的网卡还断了链路 。
三、解决问题:2 步搞定,比想象中简单
既然问题根源是 “网关绑错 + DNS 无效”,那就针对性修复,全程不用重启系统!
步骤 1:删除无效网关,给正常网卡绑正确网关
eth0 是唯一链路正常的网卡,把默认网关切到 eth0 上:
bash
# 1. 删除 eth1 上的无效网关(没用的配置先清掉)
sudo ip route del default via 192.168.2.1 dev eth1 2>/dev/null
# 2. 给 eth0 绑正确网关(192.168.1.1 是我路由器的网关,你们要换成自己的!)
sudo ip route add default via 192.168.1.1 dev eth0
验证网关是否生效:
执行 ip route show,看到这行就对了(没有 linkdown 标记):
plaintext
default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.102
步骤 2:修复 DNS 配置,避免 “能通 IP 但不通域名”
之前 DNS 是本地回环地址,手动加两个公网 DNS:
bash
# 编辑 DNS 配置文件
sudo nano /etc/resolv.conf
把里面的 nameserver 127.0.0.53 换成或加上这两个(国内用 114 更稳):
plaintext
nameserver 114.114.114.114
nameserver 8.8.8.8
保存退出(Ctrl+O → 回车 → Ctrl+X)。
步骤 3:测试效果,瞬间通网!
再 ping 之前不通的地址,全活了:
ping 110.242.68.66(百度 IPv4):3 包全通;ping open.bigmodel.cn:延迟 15ms 左右,无丢包;ping www.bing.com:同样正常。
甚至不用重启,配置立马生效 —— 这就是 Linux 命令行的爽点!
四、避坑总结:双网卡用户必看
- “部分网站通” 先看 IP 类型 :优先区分是 IPv4 还是 IPv6 问题,用
ping -4 域名(强制 IPv4)和ping -6 域名(强制 IPv6)快速定位; - 路由表是 “交通指挥中心” :遇到 IPv4 不通,先查
ip route show,默认网关必须绑定在 “状态 UP” 的网卡上,有linkdown标记的绝对有问题; - DNS 别忘配 :网关对了但域名解析不了,大概率是
/etc/resolv.conf没加公网 DNS,114.114.114.114 或 8.8.8.8 直接用; - 双网卡注意 “网关冲突” :尽量只给一张活跃网卡配默认网关,多网卡场景要规划好路由规则,别让数据包走岔路。
如果你们也遇到类似的 “选择性断网”,按这个流程查,基本能搞定~ 有其他问题欢迎评论区交流!

被折叠的 条评论
为什么被折叠?



