ipconfig /displaydns用于查看本地dns缓存,nslookup用于验证dns服务器响应与解析路径,ipconfig /all用于定位dns服务器配置源头;三者分工协作才能高效排查dns问题。
在windows运维中,ipconfig 是最常用的基础网络排查命令之一,但它本身不能直接查看dns缓存内容或dns服务器响应详情。真正用于查看dns缓存的是 ipconfig /displaydns,而要验证dns服务器是否响应、解析是否正常,则需配合 nslookup 或 ping 等工具。理解两者的分工和协作方式,是高效定位dns问题的关键。
用 ipconfig /displaydns 查看本地DNS缓存记录
Windows系统会将最近解析过的域名及其对应IP地址缓存在本地,以加快后续访问速度。ipconfig /displaydns 命令可列出当前缓存中的全部条目,包括记录类型(A、CNAME、AAAA等)、TTL剩余时间、解析来源等信息。
- 在命令提示符(管理员或普通用户权限均可)中输入:ipconfig /displaydns
- 输出中每条记录包含“记录名称”、“记录类型”、“记录长度”、“TTL”、“数据长度”和“IP地址”等字段
- 若缓存为空,会提示“DNS 解析程序缓存为空”;若某域名反复出现失败记录(如“记录不存在”),可能说明该域名近期解析异常
- 清空缓存可用:ipconfig /flushdns —— 这常用于排除因过期或错误缓存导致的解析故障
用 nslookup 验证DNS服务器响应与解析路径
ipconfig 只能告诉你本机配置了哪些DNS服务器(通过 ipconfig /all),但无法测试它们是否在线、能否正确响应查询。nslookup 才是专门用于交互式DNS查询和诊断的工具。
- 运行 nslookup example.com,系统会向默认DNS服务器发起查询,并返回权威应答或转发结果
- 指定特定DNS服务器查询:nslookup example.com 8.8.8.8,可用于对比不同DNS(如本地ISP DNS vs 公共DNS)的响应差异
- 进入交互模式后,输入 server 192.168.1.1 可切换至指定DNS服务器,再执行查询,便于逐级排查递归链路
- 注意观察返回结果中的“服务器”字段(是否为你期望的DNS)、“非权威应答”提示(说明来自缓存)、以及响应时间(判断延迟或超时)
结合 ipconfig /all 定位DNS服务器配置源头
当DNS解析异常时,首先要确认系统实际使用的DNS服务器是否符合预期。这需要借助 ipconfig /all 查看完整网络接口配置。
- 执行 ipconfig /all 后,找到当前活动网卡(如“无线局域网适配器 WLAN”),查看“DNS服务器”一行列出的IP
- 若显示为 192.168.x.x 类地址,通常是路由器作为DNS代理;若为运营商地址(如 218.85.152.99),则由ISP提供解析服务
- 检查“DHCP已启用”状态:若为“是”,DNS服务器通常由DHCP自动分配;若为“否”,则DNS为手动配置,需核对设置是否正确
- 多网卡环境(如同时连WiFi和有线)下,注意Windows按接口跃点数决定优先级,DNS请求未必走你认为的那个网卡
常见误操作与排查建议
运维中容易混淆命令能力,导致排查方向偏差。例如,仅靠 ipconfig /displaydns 发现某域名无缓存,就断定“DNS没工作”,其实只是该域名尚未被访问过;又或者看到 ipconfig /all 显示DNS服务器正常,就忽略防火墙或策略拦截可能。
- 缓存无记录 ≠ DNS故障:可能是首次访问、TTL过期后未重查、或应用使用了自定义DNS(如Chrome的DoH)
- DNS服务器可达 ≠ 解析成功:需用 nslookup -type=txt o-o.myaddr.l.google.com 8.8.8.8 测试纯DNS连通性(避免HTTP干扰)
- 某些安全软件或组策略会禁用DNS客户端服务(Dnscache),此时 ipconfig /displaydns 永远为空,需检查服务状态:sc query dnscache
- 企业环境中,若启用DNS over HTTPS(DoH)或DNS over TLS(DoT),传统工具可能无法捕获真实查询路径,需结合网络抓包分析










