命令简介

nslookup(Name Server Lookup)是一种网络管理命令,用于从 DNS 服务器查询域名、IP或其他 DNS 记录信息。

nslookup 有两种工作模式,交互模式和非交互模式。在交互模式下,用户可以向域名服务器查询各类主机、域名的信息,或者输出域名中的主机列表。在非交互模式下,针对一个主机或域名仅仅获取特定的名称或所需信息。

  • 进入交互模式有两种方式:

(1)直接输入 nslookup 命令,不加任何参数,此时 nslookup 会连接到默认的域名服务器(/etc/resolv.conf的第一个DNS地址);

(2)第一个参数是连字符(-),第二个参数是域名服务器的主机名或IP,即nslookup - SERVER | IP。

  • 其他方式则进入非交互模式,比如nslookup NAME查询域名对应的IP。

命令格式

nslookup [-OPTION] [NAME | -] [SERVER]
#NAME 为域名,SERVER 为域名服务器地址

#常用
nslookup -qt=type domain [dns-server]
nslookup -type=type domain [dns-server]

选项说明

-query=TYPE        设置查询的类型。等同交互命令 set type=VALUE。VALUE 取值见下文
-timeout=NUMBER 设置等待响应的超时时间,单位秒。等同交互命令 set timeout=NUMBER

交互命令

HOST [SERVER]
查询域名对应的地址。如果指定 SERVER 则使用指定的域名服务器解析
server DOMAIN
指定域名服务器
lserver DOMAIN
改变默认域名服务器
exit
退出交互模式
set KEYWORD[=VALUE]
此命令用于更改影响查找的状态信息。有效关键字为:
all
打印所有 KEYWORD 当前配置
class=VALUE
改变 DNS class,VALUE 可取值 IN(Internet)、CH(Chaos)、HS(Hesiod)和 ANY,默认 IN。DNS class 用于指定信息的协议组
[no]debug
在搜索时打开或关闭完整响应数据包和任何中间响应数据包的显示。默认 nodebug,简写 [no]deb
[no]d2
打开或关闭调试模式。这将显示有关 nslookup 正在执行的操作的更多信息。默认 nod2
domain=NAME
设置搜索列表
[no]search
如果查找请求包含至少一个句点但没有以尾随句点结束,则将域搜索列表中的域名追加到请求,直到收到应答。默认 search
port=VALUE
修改默认的TCP/UDP域名服务器端口。默认 53
type=VALUE
更改查询的类型。可取值 A(A记录)、CNAME(CNAME记录)、NS(域名服务器记录)、MX(邮件交换记录)、PTR(反向记录)等。大小写不敏感,默认 A(Address)
[no]recurse
如果域名服务器没有该信息,请告诉它查询其他服务器。默认 recurse,简写 [no]rec
retry=NUMBER
设置重试次数
timeout=NUMBER
设置等待响应的超时时间,单位秒
[no]vc
打开或关闭发送请求到服务器使用虚拟电路。默认 novc
[no]fail
如果域名服务器响应 SERVFAIL 或推荐(nofail)或终止查询(fail),尝试下一个名称服务器。默认不尝试(nofail)

常用示例

  1. 在非交互模式下正向解析,查询域名信息。
nslookup baidu.com
Server:10.123.119.98
Address:10.123.119.98#53

Non-authoritative answer:
Name:baidu.com
Address: 39.156.69.79
Name:baidu.com
Address: 220.181.38.148
image-20221002144919107
  1. 在交互模式下正向解析,查询域名信息。
nslookup
> baidu.com
Server:10.123.119.98
Address:10.123.119.98#53

Non-authoritative answer:
Name:baidu.com
Address: 220.181.38.148
Name:baidu.com
Address: 39.156.69.79
> exit

最后一个交互命令 exit 表示退

  1. 反向解析,通过 IP 查询对应的域名。
nslookup 209.132.183.105
Server:10.123.119.98
Address:10.123.119.98#53

Non-authoritative answer:
105.183.132.209.in-addr.arpaname = redirect.redhat.com.

Authoritative answers can be found from:
  1. 查询域名别名。
nslookup -query=cname www.baidu.com
Server:10.123.119.98
Address:10.123.119.98#53

Non-authoritative answer:
www.baidu.comcanonical name = www.a.shifen.com.

Authoritative answers can be found from:

不知道为什么,查询域名别名时需要在域名前面加上 www,不然会得到如下结果:

nslookup -query=cname baidu.com
Server:10.123.119.98
Address:10.123.119.98#53

Non-authoritative answer:
*** Can't find baidu.com: No answer

Authoritative answers can be found from:
baidu.com
origin = dns.baidu.com
mail addr = sa.baidu.com
serial = 2012144164
refresh = 300
retry = 300
expire = 2592000
minimum = 7200

(5)查询其他类型的记录。

nslookup -query=TYPE DOMAIN|IP [DNS-SERVER]
nslookup -qt=type domain [dns-server]
nslookup -type=type domain [dns-server]

TYPE:
AIPv4 地址记录
AAAAIPv6 地址记录
AFSDB Andrew文件系统数据库服务器记录
ATMA ATM地址记录
CNAME别名记录
HINFO硬件配置记录,包括CPU、操作系统信息
ISDN域名对应的ISDN号码
MB存放指定邮箱的服务器
MG邮件组记录
MINFO邮件组和邮箱的信息记录
MR改名的邮箱记录
MX邮件服务器记录
NS名字服务器记录
PTR反向记录
RP负责人记录
RT路由穿透记录
SRVTCP服务器信息记录
TXT域名对应的文本信息
X25域名对应的X.25地址记录

注意事项

一个问题:-qt参数和-query效果等同吗

直接看图,在linux中的nslookup貌似不支持-qt,仅仅可以使用-query

image-20221005143556738

而在Windows中,都可以查询出结果

image-20221005143654079

所以,,,,直接用query就好拉~

BUT,,关于 querytype 和 type 的小疑惑

查看帮助文档:man nslookup | less

得知:-querytype 和 -type 的效用一致,可以简写为 -q 和 -ty,其在不指定类型的情况下默认查询类型为 A

搞不懂、、、、、、、、、、这他喵的

refer