技术文章 / 排查笔记

Windows Server 内网能解析、外网解析失败,怎样排查 DNS 转发器?

内部域名正常却无法解析外部域名?按Windows Server 2022 DNS管理器逐步核对转发器、递归、条件转发及防火墙,区分超时与否定响应,保留回退。

Windows Server 内网能解析、外网解析失败,怎样排查 DNS 转发器?技术文章配图

内网文件服务器名称能解析,网站域名却报错时,先确认客户端实际使用哪台企业 DNS,再检查这台 DNS 的外部查询路径。不要先把域成员的 DNS 改成公共地址:这样可能暂时打开网站,却破坏域控发现、内部业务和统一安全策略。本教程以 Windows Server 2022 的 DNS 管理器为入口,按“记录现状—定位范围—验证上游—最小修改—复验回退”处理。

本文是依据微软官方说明组织的操作示例,不代表在你的服务器上完成过验证。生产环境涉及 DNS 策略、跨域委派或安全设备时,应由相应管理员一起确认。

一、先确认这是不是转发器问题

DNS 转发器是替本地 DNS 继续查询其他名称的上游服务器。内部名称通常由企业 DNS 自己保存的区域回答;外部名称可能需要其他查询路径。因此“内网能用”只能证明一部分链路正常。

先选三个确定存在的测试名称:一个内部业务完整域名、两个分属不同域的外部完整域名。不要只输入短主机名,也不要把浏览器能否打开网页当作 DNS 单项测试;网页故障还可能来自代理、证书、路由或服务器端。

现象 优先检查 本轮先不要做什么
仅一台电脑异常,其他电脑正常 客户端使用的 DNS、VPN及接口配置 不要改所有服务器的转发器
同一 DNS 下多个客户端外部解析失败 该 DNS 的上游、查询策略与网络路径 不要删除内部区域
只有一个合作方或私有域异常 该命名空间的条件转发器、区域或委派 不要把所有域都切到公共 DNS
名称已解析出地址,但业务打不开 业务端口、代理、TLS与应用 不要持续修改 DNS

在受影响客户端打开“设置 → 网络和 Internet → 高级网络设置 → 更多网络适配器选项”,找到实际连接的网卡,打开“状态 → 详细信息”,记录 IPv4 DNS 服务器。VPN、无线和有线可能同时存在,记录当前实际接口;不要在这一步修改 IP 或 DNS。再对照一台正常电脑。若机器使用 IPv6,也记录对应 DNS,避免只看 IPv4 就下结论。

如果连内部域控也找不到,应先阅读Windows 加域前 DNS 检查,本篇不替代域控发现排障。

客户端、企业DNS与上游之间的外部查询路径

图示用于区分客户端到企业 DNS、企业 DNS 到上游两段路径,不作为现场抓包结果。

二、记录现状,准备能恢复的变更单

需要已安装 DNS Server 角色的 Windows Server 2022、可管理该 DNS 的授权账户,以及一个批准的维护窗口。远程桌面或管理网路必须稳定;无法联系网络或上游管理员时,不进行未经确认的替换。

  1. 在“服务器管理器 → 工具 → DNS”打开管理器。确认左侧选中的服务器名称,避免在多台 DNS 中改错对象。
  2. 右键该服务器,打开“属性 → 转发器”。记录每个地址、显示顺序、超时相关字段,以及“如果没有转发器可用,则使用根提示”选项的原值。界面语言或补丁版本可能使文字略有不同。
  3. 查看“高级”中的递归相关设置,只记录,不为了排障顺手更改。
  4. 展开“条件转发器”,记录与失败名称后缀匹配的条目、目标服务器及存储或复制范围。查看“正向查找区域”,确认是否存在覆盖该名称的本地区域。
  5. 在“根提示”标签记录现有状态。不要从不明网站复制一批地址,也不要删除原条目。
  6. 记录变更前两台客户端的内部及外部测试结果、时间、完整名称、使用的 DNS 和错误类型。为每项计划修改写出恢复原值的方法。

记录应保存到受控工单。截图可能包含内部域名、地址与服务器身份,不要直接公开。若现状无法完整记录,先停止;“记得以前大概是什么”不构成回退方案。

三、先识别名称实际走哪条路径

外部名称不一定使用服务器属性中的通用转发器。区域、缓存、条件转发器和委派都可能影响结果。若故障只涉及特定后缀,先查该后缀的配置,避免改了通用转发器却没有改变真正的问题路径。微软的查询路径说明同时强调,回退受递归策略、可用路径和剩余超时时间约束。

检查时采用以下边界:

  • 若本机托管一个覆盖该名称的权威区域,先确认区域用途及记录。不要为了让查询“出去”而直接删除区域。
  • 若有匹配的条件转发器,找对应目标 DNS 的负责人。私有命名空间是否允许转到其他递归路径必须有明确设计。
  • 若组织要求所有外部查询经过指定安全 DNS,不要启用根提示绕过该要求;DNS 选项也不能替代网络访问控制。
  • 若看到关闭递归的配置,先确认服务器是否有意只做权威应答。不要把原安全设计当故障自动打开。

本教程不新建或迁移条件转发器,也不修改其递归回退策略。该操作可能影响整个私有命名空间,需要单独设计和批准。

四、验证上游:从 DNS 服务器出发,而不是只测管理员电脑

在自己的电脑上能访问上游,不代表服务器源地址也被允许。请网络管理员核对 DNS 服务器到每个上游的路由、出站策略、返回流量及源地址转换,明确 UDP 53 与 TCP 53 均在验证范围内。仅有连通性探测或 TCP 端口测试,不能证明 DNS 查询和 UDP 路径正确。

为了保留 GUI 主线,这里使用管理器的基本检查,但它们不是完整协议验收:

  1. 在服务器属性的“监视”页,选择对本服务器的简单查询和递归查询,再点击“立即测试”。分别记录结果和时间。
  2. 简单查询失败时,先处理本机 DNS 服务、接口和区域问题;不要直接继续替换上游。
  3. 简单查询通过而递归查询失败,说明需要继续检查外部查询链路;它没有自动定位到某一个转发器,也没有证明 TCP 与 UDP 都失败。
  4. 在“转发器”页查看地址验证提示。名称不能验证不是唯一判废条件;请结合实际 DNS 查询响应检查。
  5. 请有权限的管理员从这台 DNS 服务器对每个上游执行直接 DNS 查询,分别验证 UDP 与 TCP,并记录选定名称、响应码、耗时和回答。可按微软配置文档中的直接查询步骤执行。未经这一步,不把图形界面的绿色标记写成“上游全部通过”。

继续通过图形界面收集以下证据,不将监视页的结果扩展解释为任意域名查询:

  1. 打开“服务器管理器 → 工具 → 事件查看器”,在“应用程序和服务日志”中找到 DNS Server 日志;不同安装环境可能在自定义视图中提供对应入口。按故障时间筛选,记录事件来源、事件 ID、完整说明和服务器时间。没有事件不等于没有 DNS 故障,也不要仅凭某个历史告警就更改配置。
  2. 在批准的防火墙或网络监控控制台,按本台 DNS 服务器源地址、一个上游目标地址、故障时间和端口 53 查找会话。分别记录 UDP 与 TCP 的允许/拒绝及请求、返回流量证据;只有“允许”规则而没有实际响应,不能写成查询成功。
  3. 由具备批准工具与权限的网络团队从本台 DNS 服务器发起逐个上游的直接查询。交接清单至少包含完整测试名称、记录类型、源服务器及地址、上游目标、UDP/TCP、发起时间、响应码、回答和耗时。先查已知存在的外部名称,再查原故障名称。若工具会自动转为 TCP,必须分开说明默认传输结果与 UDP 实际报文证据。
  4. 若需要抓包,在获批范围内由网络团队在服务器及必要边界开始捕获,再从原受影响客户端的业务界面复现一次,随后停止捕获;核对实际名称、实际使用的 DNS、查询及响应。抓包可能包含内部名称与业务信息,应放入受控工单。不要仅捕获客户端一侧就断言上游没有回应。
  5. 修改后的客户端复验仍使用原业务入口和原完整域名。让网络团队关联新的查询响应及客户端最终访问结果;浏览器成功可能受缓存影响,必须注明是否观察到本轮实际 DNS 查询。内部业务也采用相同方式检查,不能只复验外部网站。

这些步骤不要求操作者把未经审批的工具安装到 DNS 服务器,也不声称事件查看器可以对指定域名发起查询。如果无法取得逐个上游的查询证据,保留监视结果、日志和时间线,升级至网络与上游负责人;此时不进入上游地址替换,也不宣布修复完成。

这最后一项需要 DNS 查询工具;管理器监视页不能替代它。若当前人员只允许 GUI 操作、也没有网络团队的协议证据,可以完成记录和初步定位,但应在此停下,不能宣布已定位或已修复。

五、区分“没回应”和“回答不存在”

根据DNS响应类型判断下一步检查对象

图示强调先读响应再选动作。没有回答、拒绝回答和回答不存在,处理方向不同。

观测结果 意味着什么 下一步
超时、没有可见响应 可能存在路径、上游负载或返回流量问题 关联服务器与边界日志,核对请求是否发出及响应是否返回
NXDOMAIN 该解析路径回答名称不存在,不等于上游断网 检查完整名称、正确区域、上游权威数据及负缓存
REFUSED 对方拒绝本次查询 检查来源许可、递归访问控制或查询策略
SERVFAIL 递归处理失败的汇总结果 继续查上游和服务器日志,不据此认定记录不存在
有地址但业务仍失败 DNS 已提供回答,但地址和业务可达性仍需核实 核对预期地址,然后转入应用链路排障

不要假设第一台返回否定回答后,第二台就一定会提供“正确答案”。微软的转发器故障案例区分了超时、拒绝与缺失记录。增加更多上游地址不能替代记录和策略修正。

六、只做已证明需要的最小修改

只有当直接查询、网络证据和配置核对指向某个已失效或写错的通用上游,且替代地址已经获批并验证后,才进入修改。

  1. 回到“DNS → 对应服务器 → 属性 → 转发器 → 编辑”。再次确认当前服务器名。
  2. 按变更单更正错误地址或替换已确认失效的地址。保留仍有效的企业上游;不要把整张列表清空再尝试。
  3. 确认地址顺序符合设计。列表顺序不意味着每次查询都固定从第一项开始;Windows 可能根据响应情况动态调整活动顺序。
  4. 点击“确定”返回属性页。根提示选项保持原有批准策略;若需要改变回退边界,停止本轮修改并另开变更。
  5. 点击“应用”或“确定”,重新打开属性核对保存值,记录时间和实际差异。

不为“让配置生效”默认重启 DNS 服务或服务器。重启会扩大影响,还可能掩盖时序问题。不要无证据增加超时;更多等待也可能只是让客户端更晚失败。

七、复验与回退:业务恢复需要两端证据

先在 DNS 服务器复查监视项和逐个上游的直接查询,再从先前受影响客户端重新验证相同的内部及外部名称。测试记录使用同一套名称,方便比较;同时增加一个此前没有测试过、确定存在的外部名称,降低仅命中旧缓存的误判风险。

验收项 通过条件 未满足时
配置保存 实际地址与批准清单一致,回退策略未意外改变 恢复原配置,停止扩展修改
上游协议 服务器源地址到每个必要上游的 UDP/TCP DNS 查询获得预期结果 保留证据,交由网络或上游团队处理
客户端名称解析 原受影响客户端的已知名称返回符合业务预期的回答 检查所用 DNS、缓存与实际查询路径
内部业务 域控发现、文件访问等原本正常项目仍正常 立即回退本轮修改,按内部影响升级
应用访问 目标业务实际可用,且不是代理或缓存制造的假象 按应用链路继续定位,不反复改 DNS

缓存可能使旧答案暂时保留,包括否定答案。先记录 TTL 与测试时间;需要清缓存时,按批准范围选择客户端或服务器侧,避免为一个工单无差别清除所有服务器缓存。不要通过随意更换测试名称掩盖原故障。

回退时恢复变更单中原上游地址、顺序和本轮确实改过的选项,保存后重新核对并复测内部业务。回退恢复配置不等于立即清除所有缓存影响。若原值恢复后仍异常,保留前后证据并升级,不继续叠加未经验证的更改。

Intel EXPI9301CTBLK以太网网卡实拍,说明物理链路与DNS协议检查是不同层次

照片:Solomon203,Intel EXPI9301CTBLK 网卡,CC BY-SA 4.0,本篇缩放并转为 WebP;非本文现场。网卡链路正常不代表 UDP/TCP 53 已放通;此照片不证明特定服务器兼容性或 DNS 健康。

常见问题

客户端改用公共 DNS 就能上网,可以长期这样吗?

域成员应遵守内部 DNS 设计。临时绕过可能使外部解析看似恢复,同时影响内部名称与域服务。应修复企业 DNS 的正确上游路径,客户端设置变更也要按原值恢复。

勾选根提示就一定能恢复吗?

不能。递归允许、可用根提示、网络路径与时间预算都有关;组织还可能禁止直接向互联网 DNS 查询。不要把它当作通用修复开关。

为什么配置两台转发器仍然失败?

两台可能共享同一出口故障,或者第一台已经返回否定/拒绝响应。还要考虑总递归超时与活动顺序。分别取得每台上游的查询证据,才能讨论冗余是否有效。

监视页递归测试通过,是否就验收完成?

不是。还需验证故障名称、实际客户端、必要协议和内部业务没有回归;单次测试只能证明它当时测试的路径。

相关解决方案

需要长期维护内部 DNS、网络边界和服务器可用性,可结合煜企企业 IT 服务整理服务器依赖图、批准的上游清单与故障升级联系人。

相关阅读

如果多台 DNS 或多个分支同时异常,建议准备故障时间线、响应码与边界日志,再安排联合排障,减少重复修改。

返回文章列表

相关解决方案

把技术主题连接到可实施的方案

网络设备 & 交换路由

适合从交换机、路由、VLAN、PoE 或网络改造文章进入企业网络设备建设方案。

查看方案 →

IT运维外包服务

适合在阅读故障处理、基础设施维护或 IT 管理文章后,了解如何建立持续的企业运维机制。

查看方案 →

行业软件开发

适合从业务流程、数据、接口或企业应用文章进入行业软件开发方案。

查看方案 →

相关文章

阅读相关内容

返回文章列表