域名解析最直接的命令行工具是nslookup和dig,输入域名即可查询A、CNAME、MX等记录,完整步骤包括选择查询类型、指定DNS服务器、解读返回结果。 无论是Windows还是Linux/macOS,掌握这两条命令就能完成绝大多数域名解析命令场景,下面按实际使用频率拆解操作。
命令行域名解析怎么用?核心流程就三步
使用命令行解析域名,本质是向DNS服务器发送查询请求,无论你用nslookup还是dig,都逃不开这三步:
- 打开终端:Windows用
cmd或PowerShell,Linux/macOS用Terminal。 - 输入命令:格式为
nslookup 域名或dig 域名。 - 分析输出:找到
Address或ANSWER SECTION中的IP地址。
以查询example.com为例:
nslookup example.com
返回结果中会出现两种关键信息:
Server:当前使用的DNS服务器地址。Non-authoritative answer:来自缓存服务器而非权威服务器的记录,这是正常现象。
dig则更显专业:
dig example.com
ANSWER SECTION中直接列出解析结果,TTL值告诉你缓存秒数,业内专家指出,dig的输出结构对排查解析链路问题更有价值。
nslookup 命令详解:从基础到指定DNS
nslookup是Windows自带的解析工具,Linux/macOS也默认安装,它的常用变体包括:
- 查询默认A记录:
nslookup baidu.com - 指定DNS服务器:
nslookup baidu.com 8.8.8.8 - 查询其他记录类型:
nslookup -type=CNAME www.baidu.com - 反向解析:
nslookup 8.8.8.8
指定DNS服务器的用法很实用,比如你想验证某个新上线的记录是否在所有地区生效,就分别用本地DNS和公共DNS各查一次:

nslookup example.com 114.114.114.114 nslookup example.com 8.8.8.8
对比两次输出的IP是否一致,就能判断是本地缓存问题还是解析记录本身异常。
dig命令查询域名解析:更细致的输出
dig是Linux和macOS上最强大的DNS查询工具,Windows 10以上系统也可以安装BIND工具包来使用,它能显示完整的DNS报文信息。
基本查询:
dig example.com
只看精简结果:
dig example.com +short
+short参数会直接输出IP记录,适合脚本调用,如果要查指定类型的记录,格式为:
dig example.com MX dig example.com NS dig @8.8.8.8 example.com A
符号后面紧跟DNS服务器地址,作用和nslookup中的指定服务器参数一样,行业共识认为,dig命令输出的status: NOERROR是解析正常的最直接证据。
域名解析失败怎么排查?用命令行定位问题
遇到网站打不开,先别急着怪网络,用命令行做三步排查,多数问题能快速定位。
常见错误类型与判断
nslookup和dig的结果中隐藏着解析失败的线索:
- NXDOMAIN:域名不存在或拼写错误,说明DNS服务器查询不到该域名的任何记录。
- SERVFAIL:DNS服务器自身故障或上游权威服务器无响应,通常需要更换服务器重试。
- 空结果:没有报错但查不到记录,可能是域名没有配置对应类型的解析。
- 超时(timed out):网络连接不上DNS服务器,检查防火墙或本地网络。
当看到SERVFAIL时,换一个公共DNS再查一次。
nslookup trouble.com 8.8.8.8
如果8.8.8返回正常结果,说明本地DNS服务器有问题。

对比多个DNS服务器的响应
用一个简单的命令,就能对比不同DNS服务器的解析结果,Windows下可以逐条执行:
nslookup example.com 223.5.5.5 nslookup example.com 119.29.29.29
Linux/macOS下用dig更直观:
dig @223.5.5.5 example.com +short dig @119.29.29.29 example.com +short
把输出并排对比,即可判断是否存在解析记录不一致的情况,如果不同服务器返回不同IP,多半是域名配置了不同线路的解析,也可能是被DNS污染。
还有一种常见情况:nslookup命令能查到IP,但浏览器仍然打不开,这时用ping或curl验证IP的连通性:
ping 目标IP curl -I 目标IP
排查思路从“域名解析”转向“网络连接和服务器状态”,据工信部相关公开资料,多数解析异常问题集中在缓存污染和配置错误,清理本地DNS缓存往往能解决一部分困扰。
命令行解析结果怎么看?关键字段一张表说清
很多新手卡在“命令能跑通,但看不懂输出”,这里给出最常用的字段对照表。
| 字段 | 含义 | 出现在哪类命令 |
|---|---|---|
Server |
响应本次查询的DNS服务器IP | nslookup |
Address |
解析得到的IP,或DNS服务器地址 | nslookup / dig |
Non-authoritative answer |
来自非权威服务器的缓存结果 | nslookup |
Aliases |
域名的别名(CNAME链) | nslookup |
ANSWER SECTION |
最终解析答案,包含记录类型和值 | dig |
TTL |
缓存生存时间,单位秒 | dig |
status |
查询状态,NOERROR表示正常 | dig |
对照这个表再看输出,结构就会清晰很多,实际操作中,Aliases字段值得多留意,它能帮你发现CNAME跳转是否正确。
域名解析记录类型:不同命令的对应查询
命令行解析通常只需关注四种记录类型,它们的查询命令如下:
- A记录:域名指向IPv4地址,
nslookup -type=A example.com - CNAME记录:域名别名,
dig example.com CNAME - MX记录:邮件服务器,
nslookup -type=MX example.com - NS记录:授权DNS服务器,
dig example.com NS
以查询MX记录为例,返回内容中会显示邮件服务器的优先级和主机名:
nslookup -type=MX example.com
输出中的mail exchanger后面跟着优先级数字,数字越小优先级越高,这套查询方法在排查邮箱收发异常时同样适用。
关于命令行域名解析的常见问题
nslookup 和 dig 哪个更适合日常使用?
nslookup在Windows上零安装成本,输出对新手友好;dig信息更完整,适合分析TTL、权威段和附加段,日常快速确认IP,两者皆可;深入排查解析链路,优先选择dig。
为什么 nslookup 能解析,但 ping 域名却提示找不到主机?
nslookup直接向DNS服务器发请求,ping会优先查找系统hosts文件和本地DNS缓存,若hosts文件里写错了映射,或系统缓存中残留旧记录,就会出现这种不一致,执行ipconfig/flushdns清空缓存后重新ping,通常能恢复正常。
域名解析记录修改后多久生效?
生效时间由TTL值控制,改记录前把TTL调低,例如300秒,等待旧值过期,再修改A记录,解析会在五分钟后逐步切换,若当前TTL是86400,则最长要等24小时,用dig 域名 SOA查看权威服务器上的最小TTL,能估算总生效时间。
