Contents

Linux中nslookup命令简介

1. 简介

在本教程中,让我们看看在Linux上使用nslookup命令的不同方法。

2. nslookup命令

** nslookup是一个用于查询域名服务器 (DNS) 的命令行工具,适用于 Linux 和 Windows 等操作系统:**

2.1.交互式与非交互式

我们有两种使用nslookup 的模式:交互式和非交互式。

首先,我们可以通过输入不带参数的命令来激活交互模式:

[kdoyle@localhost ~]$ nslookup
>

随后,我们会收到一个命令提示符来键入单个命令,而无需每次都键入nslookup

另一方面,非交互模式使用与参数相同的命令:

[kdoyle@localhost ~]$ nslookup -type=a redhat.com

现在,让我们使用nslookup运行一些查询。

2.2. 查找域

查看域名查询的结果:

[kdoyle@localhost ~]$ nslookup redhat.com
Server:        192.168.1.1
Address:    192.168.1.1#53
Non-authoritative answer:
Name:    redhat.com
Address: 209.132.183.105

**DNS 记录(或A 记录)在文本“非权威答案”之后开始。**这些记录显示与域关联的 IP 地址。

请记住,DNS 记录将域名映射到计算机系统的 IP 地址。

2.3. 反向 DNS 查找

同样,我们可以从 IP 地址中查找域名:

[kdoyle@localhost ~]$ nslookup
> type=ptr
> 209.132.183.105
105.183.132.209.in-addr.arpa    name = redirect.redhat.com.

请注意返回域名与原始域名的细微差别。实际上正在返回一条称为 PTR 的不同记录。 某些域没有为 IP 地址注册的 PTR 记录:

[kdoyle@localhost ~]$ nslookup
> 104.18.62.78
Server:        192.168.1.1
Address:    192.168.1.1#53
** server can't find 78.62.18.104.in-addr.arpa: NXDOMAIN

3.类型参数

接下来,类型参数为我们的查找添加更多信息。例如,ptr提供了上面提到的反向 DNS。

现在让我们尝试一些其他类型。

3.1.所有参赛作品

我们可以通过指定*-type* = a来获取所有 DNS 条目:

[kdoyle@localhost ~]$ nslookup -type=a blogdemo.com
Server:        192.168.1.1
Address:    192.168.1.1#53
Non-authoritative answer:
Name:    blogdemo.com
Address: 104.18.63.78
Name:    blogdemo.com
Address: 104.18.62.78

3.2. 权威(SOA)

接下来,我们查看有关域的权威 (SOA) 信息。例如,A 记录包含邮件信息和此处显示的其他信息:

[kdoyle@localhost ~]$ nslookup -type=soa blogdemo.com
Server:        192.168.1.1
Address:    192.168.1.1#53
Non-authoritative answer:
blogdemo.com
    origin = lakas.ns.cloudflare.com
    mail addr = dns.cloudflare.com
    serial = 2033559691
    refresh = 10000
    retry = 2400
    expire = 604800
    minimum = 3600

由于互联网上分布着许多域名服务器,我们得到的结果并非第一手资料。这些被称为非权威答案。但是,它们仍然提供准确的记录。

3.3. 任何条目

最后,type=any参数返回所有上述内容,**包括服务器上的任何其他类型的记录。**当我们不知道我们想要哪个记录时,这很有帮助。

请注意,type=any不太可能在大多数公共名称服务器上实现,但它在内部网络上仍然有用。

4. 名称服务器信息

有时,我们希望查看名称服务器信息以验证域记录的存在位置。

例如,我们可以使用type=ns测试我们的域:

[kdoyle@localhost ~]$ nslookup -type=ns blogdemo.com
Server:        192.168.1.1
Address:    192.168.1.1#53
Non-authoritative answer:
blogdemo.com    nameserver = lakas.ns.cloudflare.com.
blogdemo.com    nameserver = meera.ns.cloudflare.com.

因此,我们可以确定要为通过域的服务器到服务器通信配置什么 DNS。请记住,查询新的 DNS 需要更改本地网络配置

5. 打开调试

此外,nslookup的交互模式使用户能够调试查询:

[kdoyle@localhost ~]$ nslookup -debug blogdemo.com
Server:        192.168.1.1
## Address:    192.168.1.1#53
    QUESTIONS:
    blogdemo.com, type = A, class = IN
    ANSWERS:
    ->  blogdemo.com
    internet address = 104.18.63.78
    ttl = 300
    ->  blogdemo.com
    internet address = 104.18.62.78
    ttl = 300
    AUTHORITY RECORDS:
##     ADDITIONAL RECORDS:
Non-authoritative answer:
Name:    blogdemo.com
Address: 104.18.63.78
Name:    blogdemo.com
## Address: 104.18.62.78
    QUESTIONS:
    blogdemo.com, type = AAAA, class = IN
    ANSWERS:
    ->  blogdemo.com
    has AAAA address 2606:4700:3030::6812:3e4e
    ttl = 300
    ->  blogdemo.com
    has AAAA address 2606:4700:3036::6812:3f4e
    ttl = 300
    AUTHORITY RECORDS:
##     ADDITIONAL RECORDS:
Name:    blogdemo.com
Address: 2606:4700:3030::6812:3e4e
Name:    blogdemo.com
Address: 2606:4700:3036::6812:3f4e