🔧 DNS 故障排除

DNS 服务器 · 第 10 篇 · 适用于 Windows Server 2019 / 2022 / 2025

1. 故障排除流程

当 DNS 出现故障时,建议按以下流程逐步排查:

  1. 步骤1:确认 DNS 服务状态是否正常运行
  2. 步骤2:验证客户端 DNS 配置是否指向正确的服务器
  3. 步骤3:测试本地 DNS 解析(服务器端)
  4. 步骤4:检查区域数据和记录
  5. 步骤5:查看 DNS 服务器事件日志

2. DNS 服务无法启动

症状表现

DNS Server 服务状态为"已停止",尝试启动时提示错误或立即停止。

1

打开 服务管理器工具服务

2

找到 DNS Server 服务,右键选择 属性

3

检查 启动类型 是否为"自动",尝试手动启动服务

4

如启动失败,查看 事件查看器Windows 日志系统 中的错误信息

常见原因与解决

3. 客户端无法解析域名

症状表现

客户端 ping 域名返回"无法找到主机",但直接 ping IP 地址正常。

1

在客户端打开 网络和共享中心更改适配器设置

2

右键网卡 → 属性Internet 协议版本 4 (TCP/IPv4)

3

确认 DNS 服务器地址指向正确的内部 DNS 服务器

4

打开命令提示符,运行 ipconfig /flushdns 清除缓存后重试

4. 域控制器无法注册 DNS 记录

症状表现

域控制器的 SRV 记录未在 DNS 中注册,导致客户端无法找到域控制器。

PowerShell
# 检查 SRV 记录是否存在
Get-DnsServerResourceRecord -ZoneName iehang.cn -RRType SRV

# 强制重新注册域控制器 DNS 记录
Register-DnsClient

# 检查 Netlogon 服务状态
Get-Service -Name Netlogon

# 重启 Netlogon 服务触发注册
Restart-Service -Name Netlogon

常见原因

5. DNS 递归查询失败

症状表现

内网域名解析正常,但无法解析互联网域名(如 www.baidu.com)。

PowerShell
# 检查递归设置
Get-DnsServerRecursion

# 检查根提示
Get-DnsServerRootHint

# 测试向根服务器查询
Resolve-DnsName -Name www.baidu.com -Server a.root-servers.net

解决方法

6. 常用诊断命令汇总

PowerShell
# === 服务端诊断 ===

# 查看 DNS 服务状态
Get-Service -Name DNS

# 查看所有区域
Get-DnsServerZone

# 查看区域记录
Get-DnsServerResourceRecord -ZoneName iehang.cn

# 查看 DNS 事件日志
Get-WinEvent -LogName "DNS Server" -MaxEvents 20

# === 客户端诊断 ===

# 清除 DNS 缓存
Clear-DnsClientCache

# 测试解析
nslookup www.iehang.cn

# 详细解析过程
nslookup -debug www.iehang.cn

# 查看缓存内容
ipconfig /displaydns

7. 常见问题与解决方案

Q1:DNS 服务启动后立即停止怎么办?

通常是端口冲突或数据库损坏。检查 53 端口是否被其他程序占用,或尝试删除并重新创建 DNS 区域。运行 netstat -ano | findstr :53 确认端口状态。

Q2:客户端能 ping 通 DNS 服务器但无法解析?

检查防火墙是否放行了 UDP/TCP 53 端口。运行 Test-NetConnection -ComputerName 192.168.10.10 -Port 53 验证端口可达性。

Q3:如何强制刷新 DNS 记录?

在服务器上运行 ipconfig /registerdns 强制注册,或在 DNS 管理器中右键区域选择"重新加载"。

Q4:特定域名无法解析但其他正常?

检查条件转发器配置,可能是该域名的转发规则指向了不可达的 DNS 服务器。运行 Get-DnsServerZone 查找是否有条件转发器覆盖了该域名。