host 是一个非常实用的 DNS 查询工具,它通常包含在 bind-utils(或类似的)软件包中,这个工具比 dig 和 nslookup 更简单,非常适合快速进行域名解析查询。

第一步:确认系统是否已安装 host 命令
在安装之前,最好先检查一下你的系统是否已经安装了它,打开终端,输入以下命令:
host -v
或者
which host
- 如果命令能正常运行并显示帮助信息,或者
which命令返回了/usr/bin/host这样的路径,说明你的系统已经安装了,可以直接跳到【第三步:使用host命令】。 - 如果提示
command not found: host,说明你需要进行安装。
第二步:安装 host 命令
host 命令通常不是系统的默认组件,需要手动安装,根据你使用的 Linux 发行版,安装命令有所不同。
基于 Debian/Ubuntu 的系统
这些系统使用 apt 包管理器。

# 更新软件包列表 sudo apt update # 安装 bind-utils 包 (包含 host, dig, nslookup 等) sudo apt install bind-utils
注意: 在一些较新的 Ubuntu/Debian 版本中,该包可能被命名为
dnsutils。bind-utils找不到,可以尝试:sudo apt install dnsutils
基于 RHEL/CentOS/Fedora 的系统
这些系统使用 dnf 或 yum 包管理器。
-
对于 Fedora, CentOS 8+, RHEL 8+ (使用
dnf):# 安装 bind-utils 包 sudo dnf install bind-utils
-
对于 CentOS 7, RHEL 7 及更早版本 (使用
yum):
(图片来源网络,侵删)# 安装 bind-utils 包 sudo yum install bind-utils
基于 Arch Linux 的系统
Arch 使用 pacman 包管理器。
# 安装 bind 包 sudo pacman -S bind
基于 openSUSE 的系统
openSUSE 使用 zypper 包管理器。
# 安装 bind-utils 包 sudo zypper install bind-utils
第三步:使用 host 命令
安装完成后,你就可以开始使用 host 命令了,这里是一些常用的例子。
基本用法:查询域名对应的 IP 地址
这是最常见的用法,它会查询 A 记录。
# 查询 www.google.com 的 IP 地址 host www.google.com
输出示例:
Using domain server:
Name: 8.8.8.8
Address: 8.8.8.8#53
Aliases:
www.google.com has address 142.250.185.78
www.google.com has address 142.250.185.101
www.google.com has address 142.250.185.139
...
这里 host 命令默认使用了系统配置的 DNS 服务器(通常是 /etc/resolv.conf 里的地址),你也可以手动指定。
查询 IP 地址对应的域名(反向解析)
使用 -a 选项(或 --all)进行反向 PTR 记录查询。
# 查询 IP 地址 8.8.8.8 对应的域名 host 8.8.8.8
输出示例:
8.8.8.in-addr.arpa domain name pointer dns.google.
指定 DNS 服务器进行查询
如果你想使用特定的 DNS 服务器(Google DNS 8.8.8 或 Cloudflare DNS 1.1.1)来查询,可以使用 符号。
# 使用 Google DNS 查询 www.github.com host www.github.com @8.8.8.8 # 使用 Cloudflare DNS 查询 www.github.com host www.github.com @1.1.1.1
查询特定类型的 DNS 记录
host 命令可以查询各种类型的 DNS 记录,如 MX(邮件交换记录)、NS(域名服务器记录)、TXT(文本记录)、CNAME(别名记录)等。
-
查询 MX 邮件记录:
host -t MX gmail.com
输出示例:
gmail.com mail is handled by 10 alt1.gmail-smtp-in.l.google.com. gmail.com mail is handled by 5 gmail-smtp-in.l.google.com. ... -
查询 NS 域名服务器记录:
host -t NS github.com
输出示例:
github.com name server ns-1409.awsdns-48.org. github.com name server ns-436.awsdns-54.com. ... -
查询 CNAME 别名记录:
host -t CNAME www.github.com
输出示例:
www.github.com is an alias for github.com.
显示更多调试信息
使用 -v(verbose)选项可以显示更详细的查询过程,包括查询的类、类型、以及返回的完整记录。
host -v www.google.com
查询域名的所有记录
使用 -a 选项(--all)会尝试查询该域名下的所有记录。
host -a google.com
注意: 这个查询可能会返回大量的信息,因为它会尝试查询 A, AAAA, MX, TXT, SRV 等所有可能的记录。
常见问题
Q: 为什么我安装了 bind-utils 后 host 命令还是找不到?
A: 请确保安装成功后,重新打开一个新的终端窗口再尝试,新命令的路径可能没有立即被 Shell 识别。
Q: host, dig, nslookup 有什么区别?
nslookup: 最古老的工具,交互式和非交互式模式都有,功能强大,但语法有些过时。dig(Domain Information Groper): 功能最强大、最灵活、输出信息最详细的工具,是网络管理员进行 DNS 故障排查的首选。host: 简单、快捷、易于使用,对于快速的日常查询非常方便,输出清晰易读。
日常用 host,深入排查用 dig,老习惯用 nslookup。
希望这份详细的指南能帮助你成功安装和使用 host 命令!
