如何详细追踪并记录DNS解析的每一步过程?
- 内容介绍
- 文章标签
- 相关推荐
什么是 DNS 解析?
域名解析是把易记的域名转换为机器可识别的 IP 地址的过程。按理说,当你在浏览器里输入 www.example.com 时计算机需要先完成这一步才能建立 TCP 连接并获取网页内容。如果这一环节出现问题,你会看到“网页无法打开”、“DNS 查询超时”等提示。这就是很多使用者最头疼的痛点。
为什么需要追踪 DNS 解析过程?
- 定位故障:知道是本地缓存、DNS 服务器还是网络导致的解析失败。- 性能调整:查看每一步的耗时找出瓶颈. - 安全审计:确认没有被劫持或污染的响应。
1. 查看本地 hosts 文件
hosts 文件是最高优先级的本地映射。如果域名在此被手动指向某个 IP,则会跳过所有 DNS 查询。检查它可以快速排除误配置。
Windows: C:\Windows\System32\drivers\etc\hosts Linux/macOS: /etc/hosts
用记事本或 vim 打开该文件,查看是否有针对目标域名的条目。
2. 检查本地 DNS 服务器地址
了解当前使用的 DNS 服务器对...有帮助判断后续查询是否走向正确的递归服务器。
ipconfig /all # Windows cat /etc/resolv.conf # Linux/macOS
输出中会类似显示:DNS Servers . . . . . . . . . . . : 8.8.8.8
3. 用命令行工具跟踪 DNS 解析过程
Windows:
nslookup www.example.com
Linux/macOS:
dig +trace www.example.com
nslookup会逐步显示所查询的服务器及其响应;dig +trace则从根域名服务器开始递归展示每一步的查询方法和耗时。
- 常见痛点及对应检查项:
- 返回 SERVFAIL 或超时?按理说,: 检查网络连通性还有目标 DNS 是否可达。
- 返回 NXDOMAIN?话说回来,: 域名确实不存在或拼写错误;确认 hosts 未误写。
- A/AAAA记录异常?: 注意是否出现旧 IP 或被劫持的地址。
- 输出示例:
<> DiG 9.18 <> +trace www.example.com global options: +cmd . IN NS ... Received XX bytes from Y.Y.Y.Y#53 in ZZ ms Received XX bytes from A.A.A.A#53 in YY ms Received XX bytes from C.C.C.C#53 in XX ms www.example.com. IN A 93.184.216.XX ...
- 输出示例:
再看Server,dns.google Address: 8.8.8.#5 Non-authoritative answer: 从Name来看。www.example.com Address: 93.xx.xx.xx Authoritative answers can be found from: ...
- 小技巧:将结果保存到文件便于后续分析: dig +trace www.example.com> dns_trace.txt nslookup www.example.com> nslookup.txt
- 常用选项速查表:
| 工具 | 选项 | 作用 | dig | *%%%^^^_)))))))))))))))))))))){{{{{{{{{{{{{{}}}}}}}}}}}}]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]][ )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ) )))) )) ))) ))) )) )))) )))) )))) )))) )))) )))) )))) )) )))) )) ))) ))) ))) ))) ))) ))) )) )))) )) )))) )) )))) ) ) ) ) ) ) ) |
|---|
) ) ) ) ) ) ) ) ) ) ) ) )) )) )) )) )) )) )) )) )) )) )) )) )) )) )) )))) ))))))))))))))))))))))))))
。什么是 DNS 解析?
域名解析是把易记的域名转换为机器可识别的 IP 地址的过程。按理说,当你在浏览器里输入 www.example.com 时计算机需要先完成这一步才能建立 TCP 连接并获取网页内容。如果这一环节出现问题,你会看到“网页无法打开”、“DNS 查询超时”等提示。这就是很多使用者最头疼的痛点。
为什么需要追踪 DNS 解析过程?
- 定位故障:知道是本地缓存、DNS 服务器还是网络导致的解析失败。- 性能调整:查看每一步的耗时找出瓶颈. - 安全审计:确认没有被劫持或污染的响应。
1. 查看本地 hosts 文件
hosts 文件是最高优先级的本地映射。如果域名在此被手动指向某个 IP,则会跳过所有 DNS 查询。检查它可以快速排除误配置。
Windows: C:\Windows\System32\drivers\etc\hosts Linux/macOS: /etc/hosts
用记事本或 vim 打开该文件,查看是否有针对目标域名的条目。
2. 检查本地 DNS 服务器地址
了解当前使用的 DNS 服务器对...有帮助判断后续查询是否走向正确的递归服务器。
ipconfig /all # Windows cat /etc/resolv.conf # Linux/macOS
输出中会类似显示:DNS Servers . . . . . . . . . . . : 8.8.8.8
3. 用命令行工具跟踪 DNS 解析过程
Windows:
nslookup www.example.com
Linux/macOS:
dig +trace www.example.com
nslookup会逐步显示所查询的服务器及其响应;dig +trace则从根域名服务器开始递归展示每一步的查询方法和耗时。
- 常见痛点及对应检查项:
- 返回 SERVFAIL 或超时?按理说,: 检查网络连通性还有目标 DNS 是否可达。
- 返回 NXDOMAIN?话说回来,: 域名确实不存在或拼写错误;确认 hosts 未误写。
- A/AAAA记录异常?: 注意是否出现旧 IP 或被劫持的地址。
- 输出示例:
<> DiG 9.18 <> +trace www.example.com global options: +cmd . IN NS ... Received XX bytes from Y.Y.Y.Y#53 in ZZ ms Received XX bytes from A.A.A.A#53 in YY ms Received XX bytes from C.C.C.C#53 in XX ms www.example.com. IN A 93.184.216.XX ...
- 输出示例:
再看Server,dns.google Address: 8.8.8.#5 Non-authoritative answer: 从Name来看。www.example.com Address: 93.xx.xx.xx Authoritative answers can be found from: ...
- 小技巧:将结果保存到文件便于后续分析: dig +trace www.example.com> dns_trace.txt nslookup www.example.com> nslookup.txt
- 常用选项速查表:
| 工具 | 选项 | 作用 | dig | *%%%^^^_)))))))))))))))))))))){{{{{{{{{{{{{{}}}}}}}}}}}}]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]][ )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ) )))) )) ))) ))) )) )))) )))) )))) )))) )))) )))) )))) )) )))) )) ))) ))) ))) ))) ))) ))) )) )))) )) )))) )) )))) ) ) ) ) ) ) ) |
|---|
) ) ) ) ) ) ) ) ) ) ) ) )) )) )) )) )) )) )) )) )) )) )) )) )) )) )) )))) ))))))))))))))))))))))))))
。
