它是一个很小但功能非常强大的网络管理命令行软件。Nslookup命令可用于当前主流的计算机操作系统,如Windows、macOS和Linux。您可以使用它来执行DNS查询域名或IP地址,或任何其他特定的DNS记录。
也有Nslookup在线工具,Windows的Nslookup是系统自带的,在dos下可以直接调用使用。Linux的Nslookup工具则要安装一个工具包。
Ubuntu Nslookup工具安装方法如下:
- sudo apt-get update
- sudo apt-get install dnsutils
-
- nslookup [-option] [name | -] [server]
-
Options:将想要使用的选项与域名或IP地址放在一起。该选项可以与DNS记录的类型、超时、正在使用的端口、调试或其他相关。
Name:要查询的主机名或域名。
Server:可选参数,指定要查询的特定DNS服务器的名称或IP地址。
- nslookup example.com
-
可以通过该指令查看域名的A记录。
- mirror@Ubuntu22:~$ nslookup baidu.com
- Server: 114.114.114.114
- Address: 114.114.114.114#53
-
- Non-authoritative answer:
- Name: baidu.com
- Address: 39.156.66.10
- Name: baidu.com
- Address: 110.242.68.66
-
- mirror@Ubuntu22:~$
-
- nslookup -type=ns example.com
-
可以通过该指令查看域名的NS记录。
- mirror@Ubuntu22:~$ nslookup -type=ns baidu.com
- Server: 114.114.114.114
- Address: 114.114.114.114#53
-
- Non-authoritative answer:
- baidu.com nameserver = dns.baidu.com.
- baidu.com nameserver = ns4.baidu.com.
- baidu.com nameserver = ns7.baidu.com.
- baidu.com nameserver = ns3.baidu.com.
- baidu.com nameserver = ns2.baidu.com.
-
- Authoritative answers can be found from:
-
- mirror@Ubuntu22:~$
-
- nslookup -type=soa example.com
-
可以通过该指令查看域名的SOA记录。
- mirror@Ubuntu22:~$ nslookup -type=soa baidu.com
- Server: 114.114.114.114
- Address: 114.114.114.114#53
-
- Non-authoritative answer:
- baidu.com
- origin = dns.baidu.com
- mail addr = sa.baidu.com
- serial = 2012147587
- refresh = 300
- retry = 300
- expire = 2592000
- minimum = 7200
-
- Authoritative answers can be found from:
-
- mirror@Ubuntu22:~$
-
- nslookup -query=mx example.com
-
判断邮件服务器是否正常工作,可以查看邮件服务器的MX记录是否能正常解析。
- mirror@Ubuntu22:~$ nslookup -query=mx baidu.com
- Server: 114.114.114.114
- Address: 114.114.114.114#53
-
- Non-authoritative answer:
- baidu.com mail exchanger = 20 mx50.baidu.com.
- baidu.com mail exchanger = 20 usmx01.baidu.com.
- baidu.com mail exchanger = 20 jpmx.baidu.com.
- baidu.com mail exchanger = 10 mx.maillb.baidu.com.
- baidu.com mail exchanger = 20 mx1.baidu.com.
- baidu.com mail exchanger = 15 mx.n.shifen.com.
-
- Authoritative answers can be found from:
-
- mirror@Ubuntu22:~$
-
- nslookup -type=any example.com
-
可以通过该指令查看域名所有的DNS记录。
nslookup example.com dnsserver
可以通过该指令查看特定DNS服务器是否能解析指定域名。
- mirror@Ubuntu22:~$ nslookup baidu.com 223.5.5.5
- Server: 223.5.5.5
- Address: 223.5.5.5#53
-
- Non-authoritative answer:
- Name: baidu.com
- Address: 39.156.66.10
- Name: baidu.com
- Address: 110.242.68.66
-
- mirror@Ubuntu22:~$ nslookup baidu.com 114.114.114.114
- Server: 114.114.114.114
- Address: 114.114.114.114#53
-
- Non-authoritative answer:
- Name: baidu.com
- Address: 110.242.68.66
- Name: baidu.com
- Address: 39.156.66.10
-
- mirror@Ubuntu22:~$
-
- nslookup 8.8.8.8
-
可以通过该指令反向解析IP对应的域名。并非所有IP都可以解析为域名。
- mirror@Ubuntu22:~$ nslookup 110.242.68.66
- ** server can't find 66.68.242.110.in-addr.arpa: NXDOMAIN
-
- mirror@Ubuntu22:~$ nslookup 8.8.8.8
- 8.8.8.8.in-addr.arpa name = dns.google.
-
- Authoritative answers can be found from:
-
- mirror@Ubuntu22:~$
-
- nslookup -type=ptr 8.8.8.8.in-addr.arpa
-
可以通过DNS反向查询,可以验证IP地址对应的域名。为此,您需要检查将IP地址链接到域名的PTR记录。您需要将IP地址反过来(185.136.96.96更改为96.96.136.185),并且您需要添加in-addr。因为它存储在ARPA的顶级域中。
- mirror@Ubuntu22:~$ nslookup -type=ptr 8.8.8.8.in-addr.arpar.arpa
- Server: 114.114.114.114
- Address: 114.114.114.114#53
-
- Non-authoritative answer:
- 8.8.8.8.in-addr.arpa name = dns.google.
-
- Authoritative answers can be found from:
-
- mirror@Ubuntu22:~$
-
PTR:DNS的PTR记录(Pointer记录)是一种反向DNS记录,用于将IP地址解析回域名。与常见的DNS记录类型(如A记录将域名映射到IP地址)相反,PTR记录允许将IP地址映射回域名。
PTR记录通常由ISP(互联网服务提供商)或网络管理员在DNS服务器上设置。
PTR记录常常用于逆向解析、邮件服务器验证、网络故障诊断、日志记录、反向代理、安全审计等。
- nslookup -timeout=20 example.com
-
增加timeout参数,可以改变默认的应答超时间隔。这个对于网络品质不佳的情况下会用到。
- mirror@Ubuntu22:~$ nslookup -timeout=20 baidu.com
- Server: 114.114.114.114
- Address: 114.114.114.114#53
-
- Non-authoritative answer:
- Name: baidu.com
- Address: 39.156.66.10
- Name: baidu.com
- Address: 110.242.68.66
- ;; communications error to 114.114.114.114#53: timed out
-
- mirror@Ubuntu22:~$
-
- nslookup -debug example.com
-
可以通过该指令开启debug模式。
- mirror@Ubuntu22:~$ nslookup -debug baidu.com
- Server: 114.114.114.114
- Address: 114.114.114.114#53
-
- ------------
- QUESTIONS:
- baidu.com, type = A, class = IN
- ANSWERS:
- -> baidu.com
- internet address = 39.156.66.10
- ttl = 435
- -> baidu.com
- internet address = 110.242.68.66
- ttl = 435
- AUTHORITY RECORDS:
- ADDITIONAL RECORDS:
- ------------
- Non-authoritative answer:
- Name: baidu.com
- Address: 39.156.66.10
- Name: baidu.com
- Address: 110.242.68.66
- ------------
- QUESTIONS:
- baidu.com, type = AAAA, class = IN
- ANSWERS:
- AUTHORITY RECORDS:
- -> baidu.com
- origin = dns.baidu.com
- mail addr = sa.baidu.com
- serial = 2012147587
- refresh = 300
- retry = 300
- expire = 2592000
- minimum = 7200
- ttl = 1697
- ADDITIONAL RECORDS:
- ------------
-
- mirror@Ubuntu22:~$
-
Nslookup指令是一个非常常用和强大的DNS问题排查工具。因此,许多网络管理员使用它来测试和排除网络故障。
Nslookup指令可以在Windows、macOS、Linux等不同的操作系统中使用,而且使用非常方便。
DNS故障排查工具除了Nslookup外,还有dig和host。
Ping也可以解析域名的IP,那么和Nslookup有些什么区别呢: