Linux网络工具:用于查询DNS(域名系统)域名解析信息的命令nslookup详解

目录

一、概述

二、基本功能

1、查询域名对应的IP地址

2、查询IP地址对应的主机名

3、查询特定类型的DNS记录

三、用法

1、命令格式

2、常用选项

五、nslookup的安装

[1. 打开终端](#1. 打开终端)

[2. 更新的系统包列表](#2. 更新的系统包列表)

[3. 安装 bind-utils 软件包](#3. 安装 bind-utils 软件包)

[(1)对于CentOS 7及更早版本](#(1)对于CentOS 7及更早版本)

[(2)对于CentOS 8及更高版本](#(2)对于CentOS 8及更高版本)

[4. 安装完成的使用](#4. 安装完成的使用)

四、使用示例

[1. 查询域名对应的IP地址](#1. 查询域名对应的IP地址)

[2. 查询MX记录](#2. 查询MX记录)

[3. 查询反向解析](#3. 查询反向解析)

[4. 指定DNS服务器查询](#4. 指定DNS服务器查询)

五、输出结果

六、注意事项


一、概述

Linux中的nslookup工具是一个功能强大的网络命令行工具,主要用于查询DNS(域名系统)域名解析信息。它可以帮助用户诊断网络连接问题、检查域名解析是否正确,以及查询特定类型的DNS记录等。

二、基本功能

1、查询域名对应的IP地址

用户可以输入一个域名,nslookup会返回该域名对应的IP地址。

2、查询IP地址对应的主机名

通过反向查询功能,用户可以输入一个IP地址来查找其对应的主机名。

3、查询特定类型的DNS记录

支持查询A记录(IPv4地址)、AAAA记录(IPv6地址)、MX记录(邮件交换记录)、CNAME记录(别名记录)等多种类型的DNS记录。

三、用法

1、命令格式

nslookup [选项] [查询内容]

2、常用选项

命令有如下选项:

-query=[type]:指定查询的DNS记录类型,如A、AAAA、MX等。

-timeout=[秒数]:设置查询的超时时间,以秒为单位。

-retry=[次数]:设置查询的重试次数。

-debug:显示查询过程中的调试信息。

-help:显示帮助信息,列出所有可用的选项和命令。

五、nslookup的安装

这里以centos中的安装为例介绍。在CentOS系统中,nslookup 命令通常作为 bind-utils 软件包的一部分提供。以下是在CentOS上安装 nslookup 的步骤:

1. 打开终端

2. 更新的系统包列表

更新的系统包列表以确保获取最新版本的软件包信息:

sudo yum update

对于CentOS 8及更高版本,可能需要使用 dnf 而不是 yum:

sudo dnf update

3. 安装 bind-utils 软件包

安装 bind-utils 软件包,它包含了 nslookup 命令:

(1)对于CentOS 7及更早版本

使用如下命令:

sudo yum install bind-utils

实际操作结果如下:

[root@ecs-52a1 /]# nslookup
bash: nslookup: command not found
[root@ecs-52a1 /]#
[root@ecs-52a1 /]#
[root@ecs-52a1 /]#
[root@ecs-52a1 /]# sudo yum install bind-utils
Loaded plugins: fastestmirror
Determining fastest mirrors
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                                                                                            | 3.6 kB  00:00:00
epel                                                                                                                            | 4.3 kB  00:00:00
extras                                                                                                                          | 2.9 kB  00:00:00
updates                                                                                                                         | 2.9 kB  00:00:00
Resolving Dependencies
--> Running transaction check
---> Package bind-utils.x86_64 32:9.11.4-26.P2.el7_9.16 will be installed
--> Processing Dependency: bind-libs-lite(x86-64) = 32:9.11.4-26.P2.el7_9.16 for package: 32:bind-utils-9.11.4-26.P2.el7_9.16.x86_64
--> Processing Dependency: bind-libs(x86-64) = 32:9.11.4-26.P2.el7_9.16 for package: 32:bind-utils-9.11.4-26.P2.el7_9.16.x86_64
--> Processing Dependency: liblwres.so.160()(64bit) for package: 32:bind-utils-9.11.4-26.P2.el7_9.16.x86_64
--> Processing Dependency: libbind9.so.160()(64bit) for package: 32:bind-utils-9.11.4-26.P2.el7_9.16.x86_64
--> Running transaction check
---> Package bind-libs.x86_64 32:9.11.4-26.P2.el7_9.16 will be installed
--> Processing Dependency: bind-license = 32:9.11.4-26.P2.el7_9.16 for package: 32:bind-libs-9.11.4-26.P2.el7_9.16.x86_64
---> Package bind-libs-lite.x86_64 32:9.11.4-26.P2.el7_9.15 will be updated
---> Package bind-libs-lite.x86_64 32:9.11.4-26.P2.el7_9.16 will be an update
--> Running transaction check
---> Package bind-license.noarch 32:9.11.4-26.P2.el7_9.15 will be updated
---> Package bind-license.noarch 32:9.11.4-26.P2.el7_9.16 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================================================================
 Package                              Arch                         Version                                         Repository                     Size
=======================================================================================================================================================
Installing:
 bind-utils                           x86_64                       32:9.11.4-26.P2.el7_9.16                        updates                       262 k
Installing for dependencies:
 bind-libs                            x86_64                       32:9.11.4-26.P2.el7_9.16                        updates                       159 k
Updating for dependencies:
 bind-libs-lite                       x86_64                       32:9.11.4-26.P2.el7_9.16                        updates                       1.1 M
 bind-license                         noarch                       32:9.11.4-26.P2.el7_9.16                        updates                        92 k

Transaction Summary
=======================================================================================================================================================
Install  1 Package  (+1 Dependent package)
Upgrade             ( 2 Dependent packages)

Total download size: 1.6 M
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/4): bind-libs-9.11.4-26.P2.el7_9.16.x86_64.rpm                                                                               | 159 kB  00:00:00
(2/4): bind-libs-lite-9.11.4-26.P2.el7_9.16.x86_64.rpm                                                                          | 1.1 MB  00:00:00
(3/4): bind-utils-9.11.4-26.P2.el7_9.16.x86_64.rpm                                                                              | 262 kB  00:00:00
(4/4): bind-license-9.11.4-26.P2.el7_9.16.noarch.rpm                                                                            |  92 kB  00:00:00
-------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                  4.2 MB/s | 1.6 MB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : 32:bind-license-9.11.4-26.P2.el7_9.16.noarch                                                                                        1/6
  Updating   : 32:bind-libs-lite-9.11.4-26.P2.el7_9.16.x86_64                                                                                      2/6
  Installing : 32:bind-libs-9.11.4-26.P2.el7_9.16.x86_64                                                                                           3/6
  Installing : 32:bind-utils-9.11.4-26.P2.el7_9.16.x86_64                                                                                          4/6
  Cleanup    : 32:bind-libs-lite-9.11.4-26.P2.el7_9.15.x86_64                                                                                      5/6
  Cleanup    : 32:bind-license-9.11.4-26.P2.el7_9.15.noarch                                                                                        6/6
  Verifying  : 32:bind-libs-9.11.4-26.P2.el7_9.16.x86_64                                                                                           1/6
  Verifying  : 32:bind-utils-9.11.4-26.P2.el7_9.16.x86_64                                                                                          2/6
  Verifying  : 32:bind-libs-lite-9.11.4-26.P2.el7_9.16.x86_64                                                                                      3/6
  Verifying  : 32:bind-license-9.11.4-26.P2.el7_9.16.noarch                                                                                        4/6
  Verifying  : 32:bind-libs-lite-9.11.4-26.P2.el7_9.15.x86_64                                                                                      5/6
  Verifying  : 32:bind-license-9.11.4-26.P2.el7_9.15.noarch                                                                                        6/6

Installed:
  bind-utils.x86_64 32:9.11.4-26.P2.el7_9.16

Dependency Installed:
  bind-libs.x86_64 32:9.11.4-26.P2.el7_9.16

Dependency Updated:
  bind-libs-lite.x86_64 32:9.11.4-26.P2.el7_9.16                              bind-license.noarch 32:9.11.4-26.P2.el7_9.16

Complete!
[root@ecs-52a1 /]#
[root@ecs-52a1 /]#
[root@ecs-52a1 /]#
[root@ecs-52a1 /]#
[root@ecs-52a1 /]# nslookup vidisit.cn
Server:         100.125.1.250
Address:        100.125.1.250#53

Non-authoritative answer:
vidisit.cn      canonical name = website202209.gotoip3.com.
website202209.gotoip3.com       canonical name = web.s1267.vhostgo.com.
Name:   web.s1267.vhostgo.com
Address: 211.149.238.18

[root@ecs-52a1 /]#
[root@ecs-52a1 /]#

可以看出,通过安装命令执行后,可以使用 nslookup了。

(2)对于CentOS 8及更高版本

使用如下命令:

sudo dnf install bind-utils

安装过程中,系统可能会提示输入密码,这是登录CentOS账户时使用的密码。

4. 安装完成的使用

安装完成后,可以在终端中使用 nslookup 命令来查询DNS记录了。例如,要查询 vidisit.cn 的DNS记录,可以输入:

nslookup vidisit.cn

实际操作如下:

[root@ecs-52a1 /]#
[root@ecs-52a1 /]# nslookup vidisit.cn
Server:         100.125.1.250
Address:        100.125.1.250#53

Non-authoritative answer:
vidisit.cn      canonical name = website202209.gotoip3.com.
website202209.gotoip3.com       canonical name = web.s1267.vhostgo.com.
Name:   web.s1267.vhostgo.com
Address: 211.149.238.18

[root@ecs-52a1 /]#
[root@ecs-52a1 /]#

通过以上步骤,应该能够在CentOS系统中成功安装和使用 nslookup 命令。如果在安装过程中遇到任何问题,确保的系统已经连接到互联网,并且的包列表是最新的。如果问题仍然存在,可能需要检查的软件源设置或联系系统管理员寻求帮助。

四、使用示例

1. 查询域名对应的IP地址

nslookup www.example.com

执行该命令后,nslookup会返回www.example.com对应的IP地址。

2. 查询MX记录

nslookup -query=MX example.com

或者

nslookup -type=mx example.com

执行该命令后,nslookup会返回example.com的邮件交换记录。

实际操作如下:

[root@ecs-52a1 /]# nslookup vidisit.cn
Server:         100.125.1.250
Address:        100.125.1.250#53

Non-authoritative answer:
vidisit.cn      canonical name = website202209.gotoip3.com.
website202209.gotoip3.com       canonical name = web.s1267.vhostgo.com.
Name:   web.s1267.vhostgo.com
Address: 211.149.238.18

[root@ecs-52a1 /]#
[root@ecs-52a1 /]#
[root@ecs-52a1 /]#    nslookup -query=MX baidu.com
bash:   : command not found
[root@ecs-52a1 /]# nslookup -query=MX baidu.com
Server:         100.125.1.250
Address:        100.125.1.250#53

Non-authoritative answer:
baidu.com       mail exchanger = 10 mx.maillb.baidu.com.
baidu.com       mail exchanger = 20 usmx01.baidu.com.
baidu.com       mail exchanger = 20 jpmx.baidu.com.
baidu.com       mail exchanger = 20 mx1.baidu.com.
baidu.com       mail exchanger = 20 mx50.baidu.com.
baidu.com       mail exchanger = 15 mx.n.shifen.com.

Authoritative answers can be found from:

[root@ecs-52a1 /]#

3. 查询反向解析

nslookup 192.168.1.1

执行该命令后,nslookup会尝试查找192.168.1.1对应的主机名。

实际操作如下:

4. 指定DNS服务器查询

使用如下命令:

nslookup www.example.com 8.8.8.8

执行该命令时,nslookup会使用Google的公共DNS服务器(8.8.8.8)来查询www.example.com的IP地址。

五、输出结果

nslookup的输出结果通常包括以下几部分:

Server:显示用于查询的DNS服务器的名称和IP地址。

Address:显示查询结果的IP地址(对于域名查询)或域名(对于反向查询)。

Name:显示查询结果的域名(对于域名查询)或IP地址对应的反向域名(对于反向查询)。

Aliases:显示域名的别名信息(如果有)。

Mail exchanger:显示邮件交换服务器的信息(如果查询的是MX记录)。

六、注意事项

1、在使用nslookup时,应确保网络连接正常,并且DNS服务器能够正常工作。

2、如果查询结果中显示"Non-authoritative answer",则表示查询结果是从本地DNS缓存中获取的,而非直接从权威DNS服务器获取。

3、可以通过修改/etc/resolv.conf文件来更改系统的默认DNS服务器地址。

nslookup是Linux系统中一个非常实用的网络工具,通过它可以方便地查询和验证DNS解析信息,帮助用户排查网络连接和域名解析问题。


文章正下方可以看到我的联系方式:鼠标"点击**" 下面的 "威迪斯特-就是video system 微信名片"**字样,就会出现我的二维码,欢迎沟通探讨。


相关推荐
幺零九零零30 分钟前
【计算机网络】TCP协议面试常考(一)
服务器·tcp/ip·计算机网络
云飞云共享云桌面2 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
Peter_chq2 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
一坨阿亮3 小时前
Linux 使用中的问题
linux·运维
dsywws4 小时前
Linux学习笔记之vim入门
linux·笔记·学习
幺零九零零5 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
wclass-zhengge5 小时前
Docker篇(Docker Compose)
运维·docker·容器
李启柱5 小时前
项目开发流程规范文档
运维·软件构建·个人开发·设计规范
free6 小时前
netstat中sendq/recvq用于排查发送端发送数据的问题
服务器
小林熬夜学编程6 小时前
【Linux系统编程】第四十一弹---线程深度解析:从地址空间到多线程实践
linux·c语言·开发语言·c++·算法