Windows Server 2025 / 如何排查 IP、DNS 和 DHCP 问题

排查 Windows Server 2025 网络问题时,应分别检查 IP 配置、网络路径、DNS 名称解析和实际服务。先记录 CLIENT1 当前配置,与同一网络中正常客户端的相同测试对照,再一次只修改一个有依据的设置并重测。ping 回应、DNS 应答和 TCP 端口连通各自证明的内容不同,不能相互替代。

明确故障范围与近期变化

先明确故障范围:所有客户端还是单个客户端受影响?名称和 IP 都无法访问,还是只有名称失败?是否仅某个服务出错?记录目标、时间、错误信息,以及近期重启、适配器、虚拟交换机和 DHCP 选项变化。IP 是互联网协议(Internet Protocol),DNS 是域名系统(Domain Name System),DHCP 是动态主机配置协议(Dynamic Host Configuration Protocol)。在同一网段用相同测试比较,不要同时修改 DNS 和防火墙,否则无法判断哪项修改起效。

症状 优先检查方向
名称和 IP 都失败 分别检查连接、地址、服务及防火墙规则。
只有名称失败 检查 DNS 服务器、记录、后缀与缓存。
单个客户端地址错误 对照手动配置、租约及其他 DHCP 服务器。
本地子网正常,外部访问失败 按网络设计检查网关、路由、NAT 与出站规则。

使用 IP 访问有助于区分名称问题,但不一定等同于使用服务名称访问,两者的证书要求和 Kerberos 身份验证条件可能不同。Windows 默认不会在目标以 IP 表示时尝试 Kerberos,详见 Kerberos 与 IP 目标的说明。诊断连接不应未经评估就成为长期访问方式,也不要忽略证书警告。

读取客户端实际配置

ipconfig /all
Get-NetIPConfiguration
Get-NetAdapter
Get-NetRoute -AddressFamily IPv4

在 CLIENT1 控制台的 Windows PowerShell 中执行此块。找准实验网适配器,记录 IP、掩码、DNS、DHCP 服务器、后缀及自动或手动配置方式。完成 DHCP 实验后,预期租约为 172.24.50.100–172.24.50.150,掩码为 255.255.255.0,DNS 为 172.24.50.10。Get-NetAdapter 用于核对适配器与状态;Get-NetRoute 显示目的前缀和下一跳,有默认路由时可见 0.0.0.0/0。无路由器的隔离网不需要网关也能在本子网内通信,此设计无法访问互联网属于预期结果。若 Get-NetIPConfiguration 未显示目标接口,可检查 -All 或指定实际接口索引,参见 IP 配置查询文档。

169.254.x.x 通常提示没有获得可用租约,但不能单凭此断定 DHCP 服务器损坏。先检查虚拟机是否启动、适配器是否启用并连接正确交换机,以及需要 DHCP 的客户端是否自动获取 IP。还应核对实际 DHCP 服务器是否为 DC1。DHCP 客户端排障指南指出,可在事件查看器的“应用程序和服务日志”中查看 DHCP 客户端的 Operational 和 Admin 事件。将事件与故障时间、适配器对照,而不是只看是否存在任意错误。

区分网络可达与服务可用

ping 172.24.50.10
Test-NetConnection -ComputerName 172.24.50.20 -Port 445

在 CLIENT1 执行这两个测试。ping 检查互联网控制消息协议(ICMP,Internet Control Message Protocol)的回应;回应被阻止不代表所有服务都不可用。Test-NetConnection 带 -Port 检查传输控制协议(TCP,Transmission Control Protocol)连接,应查看该目标与端口的 TcpTestSucceeded,详见 连接诊断命令文档。TCP 445 用于服务器消息块协议(SMB,Server Message Block)文件共享。仅在 FS1 已于 .20 提供服务时才预期成功,本课程此时可能尚未配置。True 不验证身份认证、共享权限或文件读取。

同子网内失败时,检查虚拟机运行状态、交换机连接、重复 IP 和掩码。只有外部访问失败时,检查真实网关、路由、网络地址转换(NAT,Network Address Translation)及出站规则,不要为隔离网随意填写路由器地址。改测其他端口前,确认确实应有服务监听该端口。检查相关防火墙规则的配置文件、允许来源和目标,不要整体关闭防火墙。

比较指定 DNS 与默认解析路径

Resolve-DnsName 'fs1.lab.example.test' -Type A -Server 172.24.50.10
nslookup fs1.lab.example.test 172.24.50.10
Resolve-DnsName 'fs1.lab.example.test' -Type A

在 CLIENT1 上,前两条查询明确指定 DC1 的 172.24.50.10,最后一条使用客户端配置的解析路径。fs1.lab.example.test 的 A 记录已创建时,解析结果应包含 172.24.50.20;不要把应答中的 DNS 服务器地址当成主机解析地址。nslookup 不使用客户端 DNS 缓存。指定服务器的查询成功而默认查询失败时,应检查 DNS 设置、适配器、策略和缓存;这只是排查线索,不能直接确定唯一原因。完全限定域名(FQDN,Fully Qualified Domain Name)成功而短名称失败时,检查后缀与搜索列表。

区分 NXDOMAIN 所表示的名称不存在与未收到回应的超时;名称也可能存在,但缺少请求类型的记录。结合DNS 客户端检查与 服务器区域和转发器检查进行判断。Clear-DnsClientCache 清空本地客户端缓存,Clear-DnsServerCache 针对 DNS 服务器服务缓存;即使在 DC1 上,这两个角色也不同。先确定相关缓存并保留观察结果,再决定是否清理;两者都不能修复权威区域中的错误记录。仅外部名称失败时,检查转发器和出口路径,不要把内部 DNS 换成公共 DNS 来掩盖问题。

检查 DHCP 并重复原测试

在 DC1 上以管理员身份打开 Windows PowerShell,执行下方本地服务器查询。检查 DHCPServer 是否为 Running、172.24.50.0 作用域是否激活、有无可用容量,以及是否有对应实际客户端的租约。另行检查隔离网接口绑定;仅在已有域时检查 Active Directory 授权。DHCP 综合排障指南涵盖这些检查。跨子网客户端可能需要 DHCP 中继代理,但单交换机实验中的故障不应通过无必要地添加中继来处理。

Get-Service DHCPServer
Get-DhcpServerv4Scope
Get-DhcpServerv4ScopeStatistics -ScopeId 172.24.50.0
Get-DhcpServerv4Lease -ScopeId 172.24.50.0

需要续租时,在 CLIENT1 控制台操作,并限定正确适配器。修改一个设置后,重复原来失败的同一名称、IP 或端口测试,同时确认原先正常的功能没有受影响。无改善时,仅恢复刚改动的值,并记录命令、目标、时间和错误信息。整体关闭防火墙、清空所有缓存和同时重建作用域会破坏排障线索,也增加恢复难度。

例如,指定 .10 的查询正确、默认查询失败,而且确认 CLIENT1 手动填写了错误 DNS。先记录原值,打开 ncpa.cpl → 隔离网适配器的“属性”→“Internet 协议版本 4 (TCP/IPv4)”→“属性”,仅将错误 DNS 值纠正为 172.24.50.10,保留 IP、掩码和网关,再重复两种查询。若 DNS 来自 DHCP,应检查作用域选项 006 并让客户端续租,而不是用手动例外掩盖配置错误。具体检查可参阅DHCP 作用域及选项配置。