菜鸟科技网

Linux host命令如何安装?

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

Linux host命令如何安装?-图1
(图片来源网络,侵删)

第一步:确认系统是否已安装 host 命令

在安装之前,最好先检查一下你的系统是否已经安装了它,打开终端,输入以下命令:

host -v

或者

which host
  • 如果命令能正常运行并显示帮助信息,或者 which 命令返回了 /usr/bin/host 这样的路径,说明你的系统已经安装了,可以直接跳到【第三步:使用 host 命令】。
  • 如果提示 command not found: host,说明你需要进行安装。

第二步:安装 host 命令

host 命令通常不是系统的默认组件,需要手动安装,根据你使用的 Linux 发行版,安装命令有所不同。

基于 Debian/Ubuntu 的系统

这些系统使用 apt 包管理器。

Linux host命令如何安装?-图2
(图片来源网络,侵删)
# 更新软件包列表
sudo apt update
# 安装 bind-utils 包 (包含 host, dig, nslookup 等)
sudo apt install bind-utils

注意: 在一些较新的 Ubuntu/Debian 版本中,该包可能被命名为 dnsutilsbind-utils 找不到,可以尝试:

sudo apt install dnsutils

基于 RHEL/CentOS/Fedora 的系统

这些系统使用 dnfyum 包管理器。

  • 对于 Fedora, CentOS 8+, RHEL 8+ (使用 dnf):

    # 安装 bind-utils 包
    sudo dnf install bind-utils
  • 对于 CentOS 7, RHEL 7 及更早版本 (使用 yum):

    Linux host命令如何安装?-图3
    (图片来源网络,侵删)
    # 安装 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-utilshost 命令还是找不到?

A: 请确保安装成功后,重新打开一个新的终端窗口再尝试,新命令的路径可能没有立即被 Shell 识别。

Q: host, dig, nslookup 有什么区别?

  • nslookup: 最古老的工具,交互式和非交互式模式都有,功能强大,但语法有些过时。
  • dig (Domain Information Groper): 功能最强大、最灵活、输出信息最详细的工具,是网络管理员进行 DNS 故障排查的首选。
  • host: 简单、快捷、易于使用,对于快速的日常查询非常方便,输出清晰易读。

日常用 host,深入排查用 dig,老习惯用 nslookup

希望这份详细的指南能帮助你成功安装和使用 host 命令!

分享:
扫描分享到社交APP
上一篇
下一篇