实现域名解析最核心的命令是nslookup和dig,前者跨平台通用,后者在Linux/macOS上信息更全,日常排查域名解析问题,优先用nslookup查看系统默认解析结果,用dig指定DNS服务器做深度诊断,Windows下还可配合ipconfig /flushdns刷新本地缓存。
域名解析用什么命令?先分清两种场景
很多人问“域名解析用什么命令”,其实答案分两层:查询解析结果和修改解析配置,修改配置需要登录DNS服务商后台,命令行只能查询和测试,命令行工具里,nslookup是Windows、Linux、macOS都自带的老牌工具,适合快速验证;dig是Linux和macOS上的进阶工具,能显示完整解析链路;host是精简版,适合脚本调用。
最常用的三个查询命令对比
| 命令 | 适用系统 | 输出特点 | 适合场景 |
|---|---|---|---|
nslookup |
Windows/Linux/macOS | 简洁,显示DNS服务器和解析结果 | 日常快速查IP |
dig |
Linux/macOS | 详细,含TTL、权威服务器、查询耗时 | 排查DNS污染、TTL问题 |
host |
Linux/macOS | 极简,只输出关键信息 | 脚本批处理 |
Windows用户注意:Windows 10/11自带的nslookup足够用,但缺少dig命令,如果需要dig,可以安装Windows版BIND工具,或者直接用nslookup的交互模式代替。
nslookup命令怎么用?详细步骤拆解
nslookup有两种用法:非交互模式直接输入完整命令,交互模式进入命令行后逐个查询,下面按实际排查流程写。
第一步:直接查询域名对应的IP
打开终端(Windows按Win+R输入cmd,Linux/macOS打开Terminal),输入:
nslookup example.com
系统会用当前网卡配置的DNS服务器发起查询,返回类似结果:
服务器: dns.google Address: 8.8.8.8 非权威应答: 名称: example.com Address: 93.184.216.34
这里的“非权威应答”表示结果来自DNS缓存或递归服务器,不是域名自身的权威DNS直接返回,这是正常现象。

如果你想看权威服务器的答案,需要指定DNS服务器的类型。
第二步:指定DNS服务器查询
默认查询用的是本机配置的DNS(可能是运营商DNS或公共DNS),如果怀疑运营商DNS缓存有问题,可以手动指定114.114.114或8.8.8:
nslookup example.com 8.8.8.8
这一步特别适合排查“别人能访问,我不能访问”的域名解析故障,两种DNS返回的IP如果不一样,说明本地DNS缓存可能有问题。
第三步:查询域名解析记录类型
域名解析不只有A记录(IP地址),还有MX记录(邮件服务器)、TXT记录(验证信息)、CNAME记录(别名)等,用-type参数指定:
nslookup -type=MX example.com nslookup -type=TXT example.com nslookup -type=NS example.com
排查邮箱无法收信时,MX记录查询是最常用的操作,比如公司邮箱域名解析错误,邮件服务器会拒收,这时候用这条命令能快速定位问题。
第四步:Windows下刷新本地DNS缓存
修改了解析记录后,本地电脑可能还保存着旧IP,Windows用:
ipconfig /flushdns
macOS用:
sudo killall -HUP mDNSResponder
Linux根发行版不同,常见的是:
sudo systemctl restart systemd-resolved
这一整套操作下来,域名解析从查询到刷新的完整流程就通了。
Linux查询域名解析命令,dig才是深度诊断神器
如果你管理服务器,或者经常处理网站打不开的问题,dig命令会给出比nslookup更详细的诊断信息,行业共识认为,dig是Linux下最权威的DNS排查工具。
基础查询与默认输出解读
dig example.com
输出结果分几段,重点看这两行:
- QUESTION:你要查什么(域名和记录类型)
- ANSWER:解析结果,含IP、TTL(缓存存活时间)
TTL特别有用:当你修改了DNS记录,但全世界访问还是旧IP,就是因为TTL还没过期。TTL值越小,DNS生效越快

。
查询指定DNS服务器并显示完整链路
dig @8.8.8.8 example.com +trace
+trace参数会模拟DNS递归过程,从根域名服务器一路查到权威服务器,这在排查域名解析被劫持或DNS污染时非常关键,如果公共DNS返回的IP和你服务器商提供的不一致,那基本可以确认解析链路上有问题。
批量查询多个域名
dig example.com example.org example.net +short
+short参数只输出IP,适合在脚本里判断域名是否解析成功。
域名解析命令的详细步骤:从发现问题到解决
实际工作中,用户常问“域名解析命令的详细步骤有哪些”,下面按一个典型的“网站打不开”场景走一遍完整流程。
- 打开命令行工具:Windows按
Win+R输入cmd,macOS打开“终端”,Linux用Ctrl+Alt+T。 - 先查本机解析结果:执行
nslookup 你的域名,看返回的IP是否和服务器商提供的一致,不一致则跳到第4步。 - 确认系统网络是否正常:执行
ping 你的域名,能Ping通说明解析和网络都通畅,打不开可能是网页服务器或防火墙问题。 - 换公共DNS验证:执行
nslookup 你的域名 114.114.114.114和nslookup 你的域名 8.8.8.8,对比两个结果,结果一致且正确,说明本地DNS缓存有问题,执行ipconfig /flushdns(Windows)或对应macOS/Linux刷新命令。 - 检查记录类型:如果是邮件服务异常,执行
nslookup -type=MX 你的域名;如果是子域名解析,检查是否漏配了对应的A记录或CNAME记录。 - 深度排查用dig:在Linux或macOS上执行
dig 你的域名 +trace,看哪一跳的返回异常,如果是权威服务器上配错了,需要登录DNS服务商后台修正。 - 等待TTL过期:解析修改后,全球生效通常需要几分钟到48小时不等,取决于原TTL设置,查看
dig 你的域名输出的TTL数值,单位为秒,换算成时间就能估算生效周期。
多级子域名怎么查:比如www.example.com无法访问,先查

example.com是否正常,再查www记录是否存在,用nslookup www.example.com和nslookup example.com对比,能确定是子域名漏配还是主域名问题。
域名解析命令常见问题与操作陷阱
业内专家指出,多数域名解析排查错误都出在执行细节上,下面整理最容易踩坑的几点。
nslookup返回“DNS request timed out”
意思是指定DNS服务器没有在超时时间内响应,可能原因:网络防火墙拦截了UDP 53端口,或者DNS服务器本身故障,换个DNS地址再试一次。
ping域名显示IP,但浏览器打不开
说明域名解析成功,问题出在HTTP/HTTPS服务层,这时候检查服务器端口是否开放:telnet 域名 80或telnet 域名 443,端口不通,查服务器安全组和网站配置。
Windows的nslookup查不到某些记录
Windows自带的nslookup对TXT记录、CNAME记录的显示格式比较旧,建议用-type=CNAME替代不支持的参数组合,如果查询还是失败,可以试试Resolve-DnsName这个PowerShell命令。
Resolve-DnsName example.com -Type TXT
这是Windows平台上的dig替代方案,输出格式比nslookup更清晰。
Q&A:关于域名解析命令的高频问题
域名解析命令和ping有什么区别?
ping先走DNS解析,然后发送ICMP探测包,主要验证网络连通性,域名解析命令只做DNS查询,不发起网络连接,如果ping显示“找不到主机”,用nslookup查域名能确定是解析失败还是网络不通。
修改DNS服务器地址后,需要重启电脑吗?
不需要,Windows修改本地网络适配器的DNS设置后,执行ipconfig /flushdns即可生效,macOS改完设置后,执行sudo killall -HUP mDNSResponder刷新缓存,Linux使用NetworkManager时,改完会自动应用。
域名解析多久能生效?
新注册的域名首次解析通常几分钟内生效,但全球DNS服务器缓存刷新需要数小时,修改已有解析记录时,生效时间严格受原记录TTL值控制,多数服务商默认TTL为600秒(10分钟)到3600秒(1小时),部分老配置设为86400秒(24小时),用dig 域名 +noall +answer可以查看当前生效的TTL,据此推算剩余等待时间。