哪些问题适合用 doggo
域名在一台设备上打不开,或两种解析器返回不同地址时,可以先用 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、AAAA 并指定解析器
用文档示例域名查询 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=5sA 是 IPv4 地址记录,AAAA 是 IPv6 地址记录。@1.1.1.1 指定接收查询的解析器;--timeout=5s 限制查询等待时间。公共解析器在你的网络中可能不可达,可换成你有权使用且确认支持对应协议的解析器。
查询 AAAA 并不要求一定通过 IPv6 连接解析器。记录类型与传输网络不同;-4、-6 控制解析器连接所用地址族,A、AAAA 控制要查询哪类记录。对照时要保持查询域名和记录类型一致。
UDP、TCP 与加密查询示例
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=5shttps:// 需要完整 DoH 端点,不能只填服务首页;tls:// 选择 DoT,上例显式给出证书校验主机名;quic:// 选择 DoQ。不同协议的解析器可能由不同服务运营,回答差异不一定来自协议。
DoH、DoT、DoQ 保护客户端到解析器这一段传输,解析器仍能处理你查询的域名。它们不会把后续网站访问自动变成匿名或代理连接。遇到证书问题先检查时间、主机名与服务配置,保留校验,不用关闭证书检查来掩盖错误。
读取记录、TTL 和回答状态
| 字段或现象 | 含义与判断 |
|---|---|
| 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 结果文件可能包含内部域名,分享前检查内容与个人路径。
超时、证书和结果差异
- 命令不能启动:检查 PATH、架构与执行权限,先让
--help正常显示。 - 查询超时:确认解析器地址、协议、端口与网络访问条件;用短时普通 DNS 对照,区分服务不可达与域名问题。
- DoH 失败:确认是 DNS 查询端点而非网页地址,查看具体 HTTP 或连接错误。
- DoT/DoQ 失败:核对解析器支持、证书主机名与系统时间,不把 TLS 失败当作 NXDOMAIN。
- 查询有答案但网站不通:继续验证实际连接、IPv4/IPv6 路由和应用代理。
浏览器可能使用自己的加密 DNS,代理客户端也可能有独立解析规则;命令行查询不一定复现应用选择。反馈时注明你测的是哪个解析器,不要把一次指定查询当作所有应用的 DNS 状态。可继续参考 分层排查入口。
更新后保留同样的查询条件
沿原安装渠道更新,再运行原来的查询命令,检查参数和 JSON 输出是否有变化。回答内容还受缓存与解析器策略影响,连同时间一起保存。
常见问题
查询 AAAA 必须使用 IPv6 网络吗?
不必。AAAA 是要查询的记录类型,而 -4/-6 决定连接解析器的地址族。可以经 IPv4 查询 AAAA,也可以经 IPv6 查询 A。
doggo 会修改电脑的系统 DNS 吗?
本文示例只为单次命令指定解析器,不修改系统 DNS。浏览器或代理客户端仍可能采用自己的解析设置。
DoQ 和 DoH 的命令可以互换前缀吗?
不能随意替换。解析器必须支持对应协议,DoH 还需要完整查询路径。使用官方公布的端点,核对 @https:// 与 @quic:// 的协议差别。
参考资料
下载、系统要求和配置字段以对应版本的官方说明为准。文中的流程图由 AFQKit 绘制。