网络诊断 · doggo

doggo 下载与 DNS 查询指南:UDP、DoH、DoT、DoQ 用法与解析排查

先了解这款工具

doggo 用来向指定 DNS 解析器查询域名记录,适合核查 A/AAAA 回答、对照解析器和排查 DNS 超时。查询成功只证明该次 DNS 交换成功,不代表目标网站、代理链路或全部应用都能连接。

官方下载 ↗官方资料代理验证工具
WindowsmacOSLinux

doggo 是什么,什么时候使用

当域名在某台设备上打不开、IPv4 与 IPv6 表现不同,或你想确认不同解析器返回什么地址,可以用 doggo 单独检查 DNS。它提供易读表格与 JSON 输出,适合交互查询和保留诊断记录。

DNS 决定域名如何得到地址,但后续还有 TCP/UDP、TLS 和应用响应。先将 DNS 与连接问题分开:解析有回答后,如果网页仍失败,可用 NextTrace观察路线或用 Wireshark检查握手。

从官方安装与确认命令可用

从 doggo 官方 Releases下载对应系统与架构的压缩包,或按 官方安装说明使用已有软件包管理器。支持平台包含 Windows、macOS 与 Linux,具体资产以当前发行页为准。

brew install doggo

上面适用于已安装 Homebrew 的 macOS/Linux。Windows 已有 Scoop 时可以执行 scoop install doggo。直接解压二进制的用户,应把程序所在目录加入 PATH,或在该目录使用 ./doggo、.\doggo.exe。

安装后执行 doggo --help,确认命令与参数存在。报“找不到命令”通常是路径或安装步骤问题,不是 DNS 故障。记录所装版本,避免用旧程序直接套用新文档中的选项。

先比较系统解析器与指定解析器

用文档示例域名查询 A 记录,再显式指定一个解析器。普通地址未写协议前缀时使用 UDP:

doggo example.com A
doggo example.com A @1.1.1.1 --timeout=5s
doggo example.com AAAA @1.1.1.1 --timeout=5s

A 是 IPv4 地址记录,AAAA 是 IPv6 地址记录。@1.1.1.1 指定接收查询的解析器;--timeout=5s 限制查询等待时间。公共解析器在你的网络中可能不可达,可换成你有权使用且确认支持对应协议的解析器。

查询 AAAA 并不要求一定通过 IPv6 连接解析器。记录类型与传输网络不同;-4、-6 控制解析器连接所用地址族,A、AAAA 控制要查询哪类记录。对照时要保持查询域名和记录类型一致。

UDP、TCP、DoH、DoT、DoQ 的确切写法

doggo 根据解析器地址前缀选择协议。下面每条独立运行,不需要同时执行,也不需要更改系统 DNS:

doggo example.com A @udp://1.1.1.1 --timeout=5s
doggo example.com A @tcp://1.1.1.1 --timeout=5s
doggo example.com A @https://cloudflare-dns.com/dns-query --timeout=5s
doggo example.com A @tls://1.1.1.1 --tls-hostname=cloudflare-dns.com --timeout=5s
doggo example.com A @quic://dns.adguard.com --timeout=5s

https:// 需要完整 DoH 端点,不能只填服务首页;tls:// 选择 DoT,上例显式给出证书校验主机名;quic:// 选择 DoQ。不同协议的解析器可能由不同服务运营,回答差异不一定来自协议。

DoH、DoT、DoQ 保护客户端到解析器这一段传输,解析器仍能处理你查询的域名。它们不会把后续网站访问自动变成匿名或代理连接。遇到证书问题先检查时间、主机名与服务配置,保留校验,不用关闭证书检查来掩盖错误。

如何看记录、TTL 与返回结果

doggo 查询结果的关键字段
字段或现象含义与判断
NAME / TYPE确认回答是否对应查询域名与记录类型,留意别名链。
ADDRESS 或记录数据查看实际返回地址或记录内容;不预设 example.com 的固定 IP。
TTL记录可缓存的剩余时间线索,不是连接延迟,也不说明网站速度。
NAMESERVER确认回答来自哪个解析器,避免比较时把不同服务混在一起。

多个地址可能来自正常的 CDN 或负载均衡;不同解析器也可能因缓存、位置或策略给出不同回答。没有某类记录不一定是域名不存在:例如有 A 而没有 AAAA,仍可通过 IPv4 访问。

出现 NXDOMAIN 表示所查询名称被报告不存在;没有该类型答案、SERVFAIL 和等待超时属于不同情况。应记录状态与错误文本,而不是把所有空结果都归为“DNS 污染”。

保存 JSON 并做公平对照

需要留档或后续分析时使用 JSON 输出。普通终端支持将结果写入自己指定的新文件:

doggo example.com A @1.1.1.1 --json --timeout=5s
doggo example.com A @1.1.1.1 --json --timeout=5s > dns-example.json

第一条先查看结构,第二条保存结果。--short 适合快速看回答,但可能省略排查所需上下文。记录运行时间、网络、解析器、协议、记录类型与实际结果,JSON 字段按本机版本输出为准。

要比较协议影响,尽量选择同一服务的不同协议端点;要比较服务差异,则固定协议。缓存和连接建立成本也会影响耗时,单次查询快慢不能当作长期排名。DNS 结果文件可能包含内部域名,分享前检查内容与个人路径。

按连接、证书和回答状态排查

  1. 命令不能启动:检查 PATH、架构与执行权限,先让 --help 正常显示。
  2. 查询超时:确认解析器地址、协议、端口与网络访问条件;用短时普通 DNS 对照,区分服务不可达与域名问题。
  3. DoH 失败:确认是 DNS 查询端点而非网页地址,查看具体 HTTP 或连接错误。
  4. DoT/DoQ 失败:核对解析器支持、证书主机名与系统时间,不把 TLS 失败当作 NXDOMAIN。
  5. 查询有答案但网站不通:继续验证实际连接、IPv4/IPv6 路由和应用代理。

浏览器可能使用自己的加密 DNS,代理客户端也可能有独立解析规则;命令行查询不一定复现应用选择。反馈时注明你测的是哪个解析器,不要把一次指定查询当作所有应用的 DNS 状态。可继续参考 分层排查入口。

保存常用查询命令、解析器、记录类型、协议与诊断时间,并保留一份 JSON 结果供升级后对照。通过 doggo 官方发行页或原软件包渠道更新。升级后重跑 doggo example.com A @1.1.1.1 --json --timeout=5s,检查参数、回答或错误状态与 JSON 输出是否正常;记录差异时也要考虑缓存和解析器策略。

常见问题

查询 AAAA 必须使用 IPv6 网络吗?

不必。AAAA 是要查询的记录类型,而 -4/-6 决定连接解析器的地址族。可以经 IPv4 查询 AAAA,也可以经 IPv6 查询 A。

doggo 会修改电脑的系统 DNS 吗?

本文示例只为单次命令指定解析器,不修改系统 DNS。浏览器或代理客户端仍可能采用自己的解析设置。

为什么同一域名在不同解析器上 IP 不同?

缓存、CDN 调度、解析器位置与策略都可能造成差异。先确认域名、记录类型、协议和查询时间,再结合实际连接判断是否异常。

DoQ 和 DoH 的命令可以互换前缀吗?

不能随意替换。解析器必须支持对应协议,DoH 还需要完整查询路径。使用官方公布的端点,核对 @https:// 与 @quic:// 的协议差别。

DNS 查询成功为什么网页仍然打不开?

成功只说明这次解析交换得到回答。后续路由、连接、TLS、代理配置或应用服务仍可能失败,需要继续验证具体网页请求。

官方来源与核对

本文依据以下官方项目与文档整理,资料核对日期为 2026.10.02。安装包、界面和配置字段会随版本变化,可通过原始资料确认当前要求。

NextTrace →路由追踪与路径诊断Wireshark →抓包与网络协议分析sing-box →可自定义的代理核心

先弄清这些概念

返回工具目录 · 按症状排查问题