详解Linux dig命令:查询 DNS 服务器

  • Post category:Linux

当我们在进行网络连接时,需要一定的域名或者IP地址才能正确打开需要的网页或服务器。dig命令是一种Linux中非常有用的网络工具,用于查询DNS(域名系统)服务器,以获取特定主机名的IP地址或反之亦然。在本文中,我们将介绍dig命令及其基本用法。

命令格式

dig命令的语法如下:

dig [主机名] [选项]

其中,主机名为我们需要查询的域名或IP地址,选项则是一些附加信息,可以指定查询的记录类型、查询的DNS服务器等信息。

常用选项

以下是常用选项的列表:

  • +short:仅返回IP地址而不返回其他信息;
  • +trace:跟踪DNS解析过程,显示过程中所有查询的服务器和它们返回的信息;
  • +nostat:禁用详细的统计信息(默认情况下,dig命令返回本地DNS服务器查询的详细统计信息);
  • +noall:禁用所有输出(只返回错误信息);
  • +time=X:指定最长查询时间为X秒。

示例说明

查询域名IP地址

在终端中输入以下命令:

dig www.baidu.com

输出结果如下:

;; QUESTION SECTION:
;www.baidu.com.                 IN      A

;; ANSWER SECTION:
www.baidu.com.          3600    IN      CNAME   www.a.shifen.com.
www.a.shifen.com.       3600    IN      A       39.156.69.79
www.a.shifen.com.       3600    IN      A       39.156.69.80

;; Query time: 30 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Fri Sep 04 16:18:50 CST 2020
;; MSG SIZE  rcvd: 87

从输出中,我们可以看到查询结果包含3个IP地址,这表示www.baidu.com可能被部署在3台服务器上。默认情况下,dig会将所有查询结果返回,包括CNAME记录和A记录。如果只想获取IP地址,则可以使用+short选项。例如:

dig www.baidu.com +short

输出结果为:

39.156.69.79
39.156.69.80

指定DNS服务器查询

默认情况下,dig命令使用本地DNS服务器来查询。如果想要使用特定的DNS服务器,可以使用@符号加上DNS服务器的IP地址。例如,我们可以查询以8.8.8.8作为DNS服务器的www.baidu.com的IP地址:

dig @8.8.8.8 www.baidu.com +short

输出结果为:

180.101.49.11
180.101.49.12

这表示以8.8.8.8作为DNS服务器的www.baidu.com在两台服务器上被部署。