host 是什么
host 是 BIND 工具集里的极简 DNS 查询命令,输出只有最终答案,不带 TTL、权威段等细节。它适合「快速拿到一条记录」的场合:脚本里取 A 记录判断连通性、查 MX 与 TXT 核对邮件配置、做反向解析都很顺手。需要看 TTL、递归过程与完整报文时改用 dig。
基本信息
| 所属 | BIND 工具集(RHEL 系 bind-utils、Debian 系 bind9-host) |
|---|---|
| 语法 | host [-t 类型] 名称 [服务器] |
| 常用类型 | A / AAAA / MX / TXT / NS / CNAME / PTR |
| 输出特点 | 简洁,仅返回最终结果,无 TTL 与权威段 |
典型使用场景
- 脚本里快速取域名解析结果做连通性判断
- 校验邮件域配置:查 MX 记录与 SPF 所在的 TXT 记录
- 核对域名 NS 是否已切换到新服务商
- 反向解析:由 IP 查 PTR,追查访问来源
- 指定 DNS 服务器直查,绕过本地缓存对比结果
- 解析异常时先看有没有结果,再决定是否上 dig 深挖
常用示例
常用示例
host example.com # 默认查 A 与 AAAA
host -t MX qiqicto.com # 查邮件交换记录
host -t TXT example.com # 查 TXT,例如 SPF 与验证值
host -t NS example.com # 查权威域名服务器
host 8.8.8.8 # 反向解析成域名
host example.com 223.5.5.5 # 指定 DNS 服务器查询
host -t CNAME www.example.com # 看别名指向哪个目标
host -W 3 example.com # 设置超时,避免脚本长时间挂起输出逐段读法
| 输出片段 | 含义 | 正常/异常 |
|---|---|---|
| has address | A 记录,IPv4 地址 | 为空说明无 A 记录或解析失败 |
| has IPv6 address | AAAA 记录 | 只有 A 记录时属正常 |
| mail is handled by | MX 记录,前面的数字是优先级 | 数字越小优先级越高 |
| name server | NS 记录 | 数量应与注册商处配置一致 |
| NXDOMAIN | 域名不存在 | 多为拼写错误或解析链路问题 |
host 只给最终答案,看不到 TTL 与权威段。怀疑缓存污染、需要看解析链路时,用 dig 或 dig +trace 更合适;host 更适合「先看一眼」。
多条记录的返回顺序不保证稳定,依赖顺序写判断逻辑的脚本会时对时错。需要固定顺序时自行 sort,或改用带排序逻辑的判断方式。
查询走的是 /etc/resolv.conf 里的递归服务器。怀疑本地 DNS 有问题时,在命令末尾直接加一个公共 DNS 地址对比结果,能快速区分是本地解析的问题还是权威侧的问题。
host 的 -t any 在不少递归服务器上已被限制,返回内容与预期不符属正常现象;要完整查看各类记录,逐类型查询或改用 dig 更可靠。