host命令反向dns查询直接输入ip地址即可自动触发ptr查询,无需-x参数;加-x会报错,ip格式错误则误作域名正向查询,查不到结果多因未配置ptr记录。

host 命令反查 IP(即反向 DNS 查询)直接用 host 加 IP 地址就行,不需要额外参数 —— 这是它和 nslookup 或 dig 最不一样的地方。
反向查询就是 host 192.168.1.1,别加 -x
很多人从 nslookup 迁移过来,习惯加 -x,但 host 不认这个选项。加了会报错:host: invalid option -- 'x'。它靠输入内容自动判断:只要参数看起来像 IPv4 或 IPv6 地址(比如含点号或冒号、纯数字+点),就自动走 PTR 查询。
- 正确写法:
host 8.8.8.8、host 2001:4860:4860::8888 - 错误写法:
host -x 8.8.8.8(报错)、host 8.8.8.8.(末尾点号会让解析失败) - 如果 IP 格式不标准(如少一位、多空格),
host会当成域名去正向查,返回Host example.com not found: 3(NXDOMAIN)类似提示,而不是反查失败
查不到结果时,大概率是没配 PTR 记录,不是命令问题
反向查不到,90% 是因为该 IP 没在权威 DNS 中配置 PTR 记录,尤其云服务器、家用宽带出口 IP 几乎都不设。这不是 host 的锅,也不是你网络有问题。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- 常见现象:
host 103.21.244.0返回0.244.21.103.in-addr.arpa domain name pointer mail.example.com.(成功) - 但
host 172.217.160.68可能只返回68.160.217.172.in-addr.arpa domain name pointer google.com.或直接超时 —— Google 对部分出口 IP 禁用了公开 PTR - 若超时,可加
-W 2缩短等待时间(单位秒),避免卡住:host -W 2 8.8.8.8
想确认到底查了哪台 DNS 服务器?用 -v 看实际请求路径
默认 host 读 /etc/resolv.conf 里的 nameserver,但有时你想验证是否走的是预期的 DNS(比如排查本地 DNS 缓存污染),就得开 verbose 模式。
-
host -v 8.8.8.8会输出类似:;; Querying server #1 (127.0.0.53)...,告诉你实际连的是哪个地址 - 如果想强制指定 DNS 服务器(比如绕过本地 systemd-resolved),直接把服务器地址跟在 IP 后面:
host 8.8.8.8 1.1.1.1 -
-r参数禁用递归查询,一般没必要加 —— 大多数公共 DNS 不支持非递归 PTR 查询,加了反而返回空或 SERVFAIL
真正容易被忽略的点:反向查询依赖的是 IP 所属网段的授权 DNS(通常是 ISP 或云厂商维护的 in-addr.arpa 或 ip6.arpa 域),不是目标域名自己的 DNS。你改自己域名的 NS 记录,对反查完全没影响。










