用户感受到的“稳”,往往来自一些看不见的工程选择。这一篇不讲产品,讲一次真实的排查:一位路由器用户的国内网站全部打不开,而国外网站好好的——最后的答案,藏在我们所依赖的开源内核的一行存活判断里。
一、一个自相矛盾的故障
工单里的描述是这样的:
路由器一直亮着,VPN 显示已连接。YouTube、ChatGPT 都正常。但是淘宝、微信网页版、国内所有网站,全部打不开。重启路由器就好了,过十几个小时又坏。
这几乎是一个自相矛盾的故障。能翻墙,却上不了国内网站——正常的直觉会说“那不是反了吗”。
答案在于:走代理的域名,根本不需要真的去问一次国内 DNS。
现代客户端用的是 fake-IP:需要走隧道的域名,本地立刻发一个假 IP 给应用,真正的解析交给隧道另一端完成。所以哪怕本机的国内 DNS 已经彻底死了,翻墙依然完好无损。而“直连”的国内域名,必须真的去问一次国内 DNS 服务器——那条路,已经变成了一个黑洞。
二、我们没有说“换个 DNS 试试”
这类工单最省事的回复是“换个 DNS 试试”或者“重启一下”。它有时候真的有用,但它不是答案,只是把问题推回给用户。
我们的规矩是:先说出原因,再动手修。 说不出原因,就继续查,或者加日志再查一遍。于是我们把这台设备的固件、配置、还有它底层用的开源内核,一层层拆开重放。
三、真正的原因:一个“看起来还活着”的套接字
问题出在 sing-box 的 DNS UDP 传输层(我们的路由器固件以它为内核)。逻辑简化后是这样:
- 对每一个上游 DNS 服务器(例如
223.5.5.5),它只开一个共享的 UDP 套接字,之后所有查询都复用它。 - 判断这个套接字是否还能用,条件只有一个:它不是空的。
- 读取回包时,没有超时。
UDP 是无连接的。当路由器的 WAN 重新拨号,或者运营商侧的 NAT 映射悄悄过期,这个套接字仍然“不是空的”——从代码的角度看,它活得好好的。但它发出去的每一个查询,都再也不会有回音。
于是:没有报错,没有断线,没有一行日志。 只有一台看起来完全正常、却再也解析不出任何国内域名的路由器。直到进程重启为止——这就是那 12 小时。
一个坏掉却不肯承认自己坏了的组件,比一个直接崩溃的组件危险得多。崩溃会触发重连,而静默失效不会触发任何东西。
四、为什么等上游是不够的
我们逐个检查了上游的稳定版本,包括截至发稿最新的那一个(2026 年 8 月 17 日发布):这段代码一字未改,那句“不是空的就算活着”的判断仍然在原处。上游的修复只出现在还处于 beta 阶段的下一个大版本里——它整体重写了 DNS 传输层,是一次大改动,短期内不会进入稳定线。社区里也有多份症状相似的报告。
也就是说:如果我们只是“用”这个开源内核,我们就只能等,而我们的用户要跟着一起等。
五、我们的修法
我们 fork 了这个内核,自己打上补丁:
- 给每一条连接打一个代号。 套接字一旦被判定失效,旧连接上的所有等待立刻作废,不会有人还傻等着一个永远不来的回包。
- 读取加上超时。 超时不再被当成“网络有点慢”,而是被当成“这条路可能已经死了”的证据。
- 一次重试。 复用的连接第一次写失败,立刻换一条新的重来,用户不会看见任何异常。
然后是验证。我们对自己有一条硬规矩:把修复删掉,测试必须变红。 一个删掉修复之后依然全绿的测试,不是保障,是安慰剂。这组补丁做了 4 次“故意破坏”的反向验证,全部按预期失败;再叠加并发竞态检测,以及多轮由另一个 AI 专门“找茬”的对抗式代码审查,改到没有问题为止。
修复随 OpenWrt 固件 v1.0.38 发布(2026 年 8 月 17 日)。
六、你需要做什么
如果你在路由器上使用 VilaNet:升级到 v1.0.38 或更高版本。 这个故障只出现在路由器固件这种长期不重启、且 WAN 会重新拨号的场景;在手机和电脑客户端上,我们没有观察到它。
如果你曾经遇到过“路由器还连着、国内网站却全挂了、重启就好”——就是它。
七、这对你意味着什么
这件事真正的重点,不是这一个 bug。任何软件都有 bug,我们的也有。
重点是当 bug 出现在你所依赖的底层时,谁能把它修掉。
一个转卖别人服务器的机场,遇到这种故障,能给你的最好答案就是“重启试试”——因为链路不是它的,客户端不是它的,内核更不是它的。而我们端到端地拥有整条交付通路:自己的节点、自己的中转线路、自己的客户端,需要的时候,连开源内核也自己 fork 下来修。
所以,从“读懂一行存活判断”到“给你推送一个新固件”,中间没有任何一家需要求的公司。
可靠不是运气,是架构;也是有人愿意一路读到最底下那一层。
给用户:这份底层的稳,就是你日常体验顺滑的原因。
给企业 / 合作伙伴:如果您希望把这类能力集成到自己的网络或产品中,欢迎前往 vilavpn.com 提交一张工单(support ticket),我们会安排进一步沟通。
© 2026 VilaVPN · 本文由 VilaAI 团队撰写 · 发布于 blog.vilavpn.com
🚀 立即体验 VilaVPN — 新用户首月5折(优惠码 SALE50%)
真专线 IPLC · 月付无忧 · 官方应用全平台