通知 欢迎关注我的店铺天天软件圆

自编译immortalwrt dns解析失败ping提示无法连接到端口

2025-07-27
0评论
/
阅读
爱搜啊

最近在折腾自编译的ImmortalWrt固件时,遇到个诡异的网络故障:明明能获取公网IP,网速测试却完全失效,DNS解析更是彻底罢工。这个问题困扰了我整整两天,各种常规解法都试遍了却毫无进展,最后竟靠一个网关跃点设置意外解决。下面记录下这次踩坑经历和解决方案,给遇到类似问题的朋友参考。

故障现象:网络断连

整个故障过程是这样的:

  1. 刚刷完自编译的ImmortalWrt固件时,网络功能完全正常,测速也能跑满带宽

  2. 安装Lucky(DDNS工具)、vnStat(流量监控)后开始出现异常

  3. 即使卸载了这些软件并关闭所有网络加速功能,问题依然存在

  4. 核心症状

    • DNS解析完全失败,ping命令提示

      connect: Cannot assign requested address
    • 测速服务器无法连接,但路由器本身能正常拨号获取IP

    • 偶尔利用DNS缓存能短暂访问,刷新后立即失败

排查过程:无效的尝试

在Google和论坛疯狂搜索无果后,我尝试了以下方法均告失败:

# 检查过的配置项:
1. WAN/LAN接口设置自定义DNS(114.114.114.114, 8.8.8.8等)
2. dnsmasq.conf中添加server=/example.com/1.1.1.1等转发规则
3. 完全重置防火墙规则(默认未作特殊配置)
4. 卸载所有可疑软件:Lucky, vnStat等
5. 停用所有流量整形和加速模块
6. 清除DNS缓存:killall -HUP dnsmasq

⚠️ 诡异现象:路由器本身能ping通外网IP,但局域网内所有设备DNS解析失效,说明问题出在路由转发层而非物理连接。

终极解决方案:网关跃点设置

当几乎要放弃重刷固件时,偶然在接口配置中发现转机:

  1. 进入网络 → 接口 → LAN配置页面

  2. 切换到物理设置标签页

  3. 覆盖网关跃点选项中填入50(默认值通常为0)

  4. 保存并应用配置,无需重启立即生效

自编译immortalwrt dns解析失败ping提示无法连接到端口

原理解析:为什么跃点能解决问题?

这个神奇的操作背后有合理的网络原理:

  1. 当存在多个网络接口时,系统根据跃点数(metric)选择默认网关

  2. 自编译固件可能因驱动问题错误识别虚拟接口(如Docker网桥)

  3. 设置较高跃点值(如50)能确保主LAN接口获得更高路由优先级

  4. 避免流量被错误导向不存在的虚拟网关导致丢包

故障期间的route -n输出验证了这个猜测:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref  Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0     0 eth0
0.0.0.0         172.17.0.1      0.0.0.0         UG    0      0     0 docker0 <-- 错误网关!

当所有常规网络排查手段失效时,不妨关注底层路由决策。网关跃点作为容易被忽视的基础设置,在复杂网络环境下可能成为关键故障点。建议编译第三方固件时:

  • 首次配置就明确设置各接口跃点值

  • 虚拟接口(Docker/VPN)设置比物理接口更高的跃点

  • ip route show table all定期检查路由表

折腾开源固件总会遇到各种玄学问题,但每次解决都能学到新知识。希望这个案例能帮你少走弯路!


点击链接加入群聊四群:722808830
点击链接加入群聊三群:751529538(已满)
点击链接加入群聊二群:376877156(已满)
点击链接加入群聊一群:622891808(已满)

饿了么红包
饿了么红包


本站附件分享,如果附件失效,可以去找找看

诚通网盘附件百度网盘附件

于2025-07-27发布