没配转发器,Technitium DNS 查询却自己跑了?完整排查指南
【免费下载链接】DnsServerTechnitium DNS Server项目地址: https://gitcode.com/GitHub_Trending/dn/DnsServer
装好 Technitium DNS Server、保持全默认配置之后,我把浏览器的 DoH(DNS over HTTPS,即浏览器把查询加密直发你的 DNS 服务器)指了过去。第二天发现不对劲:Forwarders 一个没配,查询却跑去了公共 DNS。这次 Technitium DNS 异常转发,我按真实顺序复盘一遍,讲清楚怎么查、怎么修、怎么防。
现象确认:回答对了,路径却不对
反常行为有三个可观察信号,你可以逐条对号:
- 客户端解析结果正确、速度正常,但我从没配置过任何上游;
- 用 dig(DNS 查询命令行工具)连续查几个互不相关的域名,响应节奏和 NS 链特征都指向我从未写过的那家公共 DNS 服务商;
- 打开服务器端查询日志后,部分查询记录了转发动作,目标是一串我没配置过的公网解析器地址。
三条信号对上了,说明问题不在客户端,而是服务器在"主动"外发。
排查路径:从转发器排查绕到 App
第一步,先怀疑客户端。核对浏览器 DoH 端点和系统 DNS,两者都指向我的服务器,排除。
第二步,转回服务器主配置,按转发器排查的常规顺序看 Forwarders 区——空的。这是条死路,我在这份空列表上停了不短的时间,也是这次排查最大的弯路:配置里确实什么都没写。
第三步,换思路:不看配置,看行为。我从日志里挑一条被转发的查询,反向确认它是哪条代码路径发出的。结论是:这条转发不是 Forwarders 配置发出的,而是来自一个已安装的 App。
第四步,打开管理面板的 Apps 页,逐个比对安装列表,找到了它:Advanced Forwarding。参考该应用的说明,它的默认示例配置就是0.0.0.0/0映射到统一组、域名规则写*,即全网段、全域名命中。
根因:Advanced Forwarding 改写了默认解析
元凶就是 Advanced Forwarding。
📌 一句话讲清原理:它挂接在权威应答链路上,装好并启用后,每条查询都有机会被它"抢先应答"。它的配置里域名规则是通配*,客户端网络映射了 0.0.0.0/0,所以任何查询都会命中。命中后,它直接向解析器返回 FWD(转发)记录,相当于告诉服务器"这条查询发往这几个上游"。服务器把它当合法指令执行,于是查询被发去了公共 DNS。
这就是默认行为与被改写行为的分界:本意是不配转发器就回根服务器递归解析,而这个 App 在这条路径上插入了一条优先级更高的新规则。
处理步骤:卸载干扰应用
- 登录 Technitium DNS 管理面板
- 导航至 Apps 页面,确认 Advanced Forwarding 处于已安装、已启用状态
- 卸载 Advanced Forwarding,同时检查是否还有其他转发类应用处于启用状态,一并停用
- 复测:用 dig 查询此前被转发过的域名
- 比对服务器查询日志:转发动作应当消失
验证:确认走根服务器解析
修复确认分两步。第一步,随机挑一个公网域名用 dig 查询,看服务器侧解析路径应回到根服务器递归,而不是命中某个公网解析器。第二步,翻看查询日志,确认不再出现指向未配置上游的转发记录,回答内容与走根服务器解析的基线一致。
防复发,三条具体动作:
- 触发式:每次新装 App 或升级服务器版本后,立即复测一次解析路径(dig 一个域名 + 看日志有没有转发记录);
- 配置式:确需启用转发类应用时,规则里只写具体域名,看到
*就先停下来想清楚它匹配的是全网段还是真全量; - 周期式:每周在查询日志里筛一次转发类动作,核对来源是否只剩主配置里写明的 Forwarders。
如果确实需要走特定上游,把它写进主配置的 Forwarders,让路径在面板里可见,而不是依赖某个应用悄悄改行为。
配置说没改,行为为什么改了
配置文件里写的是"没有转发器",实际行为却是"全部外发",中间差着一个 App 的优先级。以后再遇到"配置和行为对不上",先问一句:除了配置文件,还有谁有权限改查询路径。
【免费下载链接】DnsServerTechnitium DNS Server项目地址: https://gitcode.com/GitHub_Trending/dn/DnsServer
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考