两种截然不同的使用时刻
dig / nslookup
完整协议细节,可脚本化,可离线使用
网页版工具
无需配置,支持批量查询,可分享
dig、nslookup 与网页版 DNS 工具:各自的适用场景
dig 和 nslookup 之所以成为命令行里的常用工具,是有原因的:它们精确、可脚本化,而且几乎所有带终端的系统上都能使用。网页版查询工具并不打算取代它们,只是覆盖那些命令行不太适合手头任务的场景。
终端工具更有优势的地方
- 直接查询某台指定的非默认 DNS 服务器:dig @1.1.1.1 example.com 一条命令即可,无需任何配置界面。
- 查看完整的响应,包括标志位、TTL 以及返回记录的确切结构,在您需要调试 DNS 本身、而不只是想要一个答案时非常有用。
- 把检查脚本化,嵌入已经存在于 shell 脚本或 CI 流水线中的自动化流程。
- 完全脱离浏览器,在您已经通过 SSH 登录的服务器上离线工作。
网页工具的价值所在
- 用手机或任何手边没有终端的设备快速查一下。
- 一次解析规模很大的域名列表,并带有进度视图和规范的导出功能,而不必手动把一连串 dig 调用的输出写进文本文件。
- 给非技术背景的同事发一个链接,而不是手把手教他们安装并使用命令行工具。
- 安排定时的重复检查,之后在仪表盘中查看结果,而不必自己维护一个 cron 任务和存放输出的地方。
| 对比维度 | dig / nslookup | 网页版工具 |
|---|---|---|
| 所需准备 | 一个终端,大多数系统已预装 | 无需准备,只需浏览器 |
| 查询指定服务器 | 一个参数即可(@1.1.1.1) | 通常固定使用该工具自带的解析器 |
| 批量解析 | 需要自己编写循环脚本 | 内置,带进度和导出 |
| 完整协议细节(标志位、TTL) | 有,体现在原始响应中 | 通常被抽象隐藏 |
| 能否分享给非技术同事 | 不太方便 | 一个链接即可 |
实际上,大多数用网页工具做快速单次查询的人,在需要深入调试 DNS 时仍会保留 dig。两者并非竞争关系,而是适用于从“我只想快速得到一个答案”到“我需要看清协议究竟在做什么”这条光谱上的不同位置。
即使很少使用其余功能,也值得了解的两个 dig 参数
- dig +short 会去掉冗长的头部和标志位输出,只打印答案,非常适合通过管道传给脚本,而不必解析 dig 默认的、面向人阅读的输出格式。
- dig +trace 会手动重走完整的解析链,显示从根服务器一直到权威应答的每一跳。当问题出在比最终记录更靠前的环节时,这是找出究竟哪一步出了问题的最快办法。
nslookup 的交互模式,常被忽视
大多数人只把 nslookup 当作单条命令来运行,用完就走。但如果不带任何参数直接输入 nslookup,就会进入交互式提示符,在其中只需指定一次服务器(server 1.1.1.1),之后的多次查询都会沿用,无需每次重复输入。当您要针对同一个非默认解析器连续检查几条相关记录时,这非常方便。相比 dig 以参数驱动的方式,这个功能较小、讨论也较少,但如果您出于习惯或平台默认配置而专门使用 nslookup(而不是 dig),值得知道它的存在。
需要查看某个域名的公网 DNS 地址?使用 Domain IP Lookup 工具。
本主题的免费工具
相关阅读
选择合适的导出格式
CSV
电子表格分析、筛选、数据透视表
JSON
脚本与自动化差异比对流水线
导出并分析批量 DNS 查询结果
解析完几千个域名之后,真正有价值的工作是如何处理导出的数据,这是一份针对这一步的实用指南。
让检查频率与监控对象相匹配
设置定时 DNS 健康检查
周期性的查询任务可以自动发现 DNS 的变动。本文教您思考该检查什么、多久检查一次,以及如何设计告警。
四个步骤,按顺序核对
导出
所有现有记录
迁移
到新的服务商
验证
逐条比对记录
确认
等旧 TTL 过期
如何确认 DNS 迁移顺利完成
一份实用的检查清单,用来确认 DNS 服务商切换或记录迁移是否真正完成,而不是想当然地认为已经完成,帮您避免悄无声息的故障。