Linux dig 命令 (DNS 查询)17 Mar 2025 | 6 分钟阅读 Linux dig 命令是 Domain Information Groper (域名信息探测器) 的缩写。该命令用于执行与 DNS 查询相关的任务,可以查询 DNS 名称服务器。它主要用于排除 DNS 相关的问题。它是一个灵活的实用工具,用于检查 DNS(域名服务器)。它用于执行 DNS 查询,并返回从名称服务器查询到的答案。通常,大多数 DNS 管理员都会使用它来排查 DNS 问题。它是一个简单易用的工具,并提供清晰的输出。它的功能比其他查询工具更强大。 dig 命令支持大量的命令行选项。此外,它还支持批处理模式,可用于从文件中访问查询请求。如果未指定 dig 命令查询特定的名称服务器,它将访问 "/etc/resolv.conf" 中的所有服务器。不带任何命令行选项的 dig 命令将对 "."(根域)执行 NS 查询。 语法dig 命令的一般语法如下: 在上面的语法中, server: 这是我们要查询的名称服务器的名称或 IP 地址。它可以是 Ipv4 或 Ipv6 地址。如果提供的服务器是一个主机名,它会在查询给定的名称服务器之前解析该名称。 如果我们不指定服务器,它将从 "/etc/resolv.conf" 中查找。如果在这里找到了名称服务器,它将查询该名称服务器。如果没有找到有效地址,它将把查询转发给本地主机。 name: 这确定了资源记录的名称。 Type: 指定所需的查询类型,例如 ANY、A、MX、SIG 等。类型参数必须有效。如果未指定类型参数,则默认值为 'A'。 选项以下是 dig 命令的一些常用命令行选项: -4: 仅用于 IPv4。 -6: 仅用于 IPv6。 -b address[#port]: 用于设置查询的源 IP 地址。 -c class: 用于设置查询类别。 -f file: 用于批处理模式。dig 命令访问指定文件中的查询请求进行处理。dig 会按文件中的组织顺序系统地处理每一行。 -i: '-i' 选项对于“反向 IPv6 查询”很有用。 -k keyfile: 用于使用指定文件生成的密钥标记 TSIG 查询。我们可以使用 "tsig-keygen" 来生成密钥文件。 -m: 用于启用内存使用情况调试。 -p port: 用于将查询转发到服务器上的非标准端口,而不是默认端口(即 53)。这是测试名称服务器的便捷工具。 -q name: 用于要查询的域名。这是一个区分名称和其他参数的便捷工具。 -t type: 用于指定要查询的资源记录类型。通常,这些记录是任何有效的查询类型。类型参数的默认值是 'A'。 -u: 用于显示查询时间(以微秒为单位)。 -v: 用于显示版本信息。 -x addr: 用于简化反向查询,将地址映射到名称。 -y [hmac:]keyname:secret: 用于使用给定的认证密钥标记 TSIG 查询。"keyname" 定义了密钥名称,"secret" 指的是 "base64 编码的共享密钥"。"hmac" 指定了密钥算法的名称。有效选项可以是 "hmac-md5, hmac-sha1, hmac-sha224, hmac-sha256, hmac-sha384, 或 hmac-sha512"。 安装 dig 命令dig 命令是 dnsutils 包的一部分,该包与 BIND 名称服务器一起安装。要安装 dig 工具,请执行以下命令: 对于 Debian 和 Ubuntu 系统,请执行以下命令: 对于 CentOS 7,请执行以下命令: 上面的命令将安装 dig 命令所需的包文件。要验证安装,请执行以下命令: dig 命令示例让我们看 dig 命令的以下示例:
查询域名我们可以使用 dig 命令对域名进行 DNS 查询。dig 命令的默认行为将显示 A 记录类型。要查询域名,请按以下方式执行命令: 考虑以下命令: 上面的命令将查询给定的域名。考虑以下输出: ![]() 从输出中,我们可以看到 dig 版本信息、关于查询的统计信息、其他技术细节,以及一个问题部分以及其他一些部分。 显示简短输出上面 dig 命令的使用显示了关于指定域名的许多信息。但是,有时您可能只想要简短的信息。'+short' 选项用于显示较少的输出。它只会显示给定域名的 IP 地址。考虑以下命令: 上面的命令将显示 javatpoint.com 的 IP 地址。考虑以下输出: ![]() 显示详细输出如果您想了解关于任何域名的附加信息,请使用 '+answer' 选项执行 dig 命令。为防止命令显示所有部分,请在命令中指定 '+noall' 选项。考虑以下命令: 上面的命令将显示一些附加信息,如国家名称、IP 地址等。考虑以下输出: ![]() 查询特定名称服务器dig 命令的默认行为是对给定的域名执行 DNS 查询。我们可以通过在名称服务器的 IP 地址或主机名前加上 @ 符号来更改此行为。考虑以下命令: 上面的命令将使用给定的选项对名称服务器 (120.120.40.80) 执行 DNS 查询。考虑以下输出: ![]() 追踪 DNS 路径我们可以使用 dig 命令来追踪 DNS 路径。'+trace' 选项用于追踪 DNS 路径。它将从根开始查询名称服务器,并向下遍历后续的命名空间。要追踪 DNS 路径,请按以下方式执行命令: 考虑下面的输出 ![]() 反向 DNS 查询反向 DNS 查询显示指定 IP 地址的域名和主机名。要执行反向 DNS 查询,请使用 '-x' 选项和一个 IP 地址执行命令。考虑以下命令: 上面的命令将对给定的 IP 地址执行反向 DNS 查询。考虑以下输出: ![]() 查询多个域名dig 命令允许我们执行批量查询。我们可以执行多个域名的 DNS 查询。为此,我们必须创建一个文件,其中包含新行中的多个域名。例如,执行 'javatpoint.com', 'google.com,' 和 'github.com' 的 DNS 查询。创建名为 'lookups.txt' 的文件,如下所示: 现在,通过执行以下命令来查询指定的域名: 上面的命令将显示 'lookups.txt' 中指定域名的 IP 地址。考虑以下输出: ![]() 下一主题Linux nslookup |
我们请求您订阅我们的新闻通讯以获取最新更新。