跳到正文
发现
q:命令行 DNS 查询客户端
命令行工具开发者工具

q:命令行 DNS 查询客户端

一个支持 UDP、TCP、DoT、DoH、DoQ、ODoH 等协议的轻量命令行 DNS 客户端。

admin
发布于 2026-11-03
浏览
1
访问
0
下载
0
版本
v0.19.12
平台
Windows、macOS、Linux
该作品还没有经过官方审核。访问演示、下载或复制命令前,请自行确认来源可信。

详细介绍

项目简介

q 是一个用 Go 编写的轻量级命令行 DNS 客户端,支持 UDP、TCP、DoT、DoH、DoQ、ODoH 和 DNSCrypt v2 等多种查询协议。它适合需要在终端中调试 DNS、验证解析结果或测试加密 DNS 服务的开发者和运维人员。

主要功能

  • 传输协议:UDP/TCP DNS、DNS over TLS、DNS over HTTPS、DNS over QUIC、Oblivious DNS over HTTPS、DNSCrypt v2
  • 服务器指定方式:@9.9.9.9、@https://dns.quad9.net、DNS Stamp(@sdns://...)
  • 输出格式:pretty、column、json、yaml、raw(dig 风格)
  • 支持 DNSSEC DO 位、EDNS0 NSID、Client Subnet、Cookie、padding 与 Extended DNS Errors(RFC 8914)
  • 支持反向查询、递归 AXFR、IP Whois、为 A/AAAA 记录解析 PTR,以及查询 ASN/ASName
  • 可控制查询标志:AA、AD、CD、RD、RA、Z、TC
  • 所有长选项都可用 dig 标准的 +[no]flag 写法切换
  • TLS 参数可调:版本上下限、ALPN、密码套件、曲线偏好、客户端证书;设置 SSLKEYLOGFILE 后可输出密钥日志用于解密 TLS

安装与使用

可通过作者的 apt/yum/brew 软件源、Homebrew core、GitHub Releases、AUR、Go 和 Docker 安装,例如:

go install github.com/natesales/q@latest
docker run --rm -it ghcr.io/natesales/q

从源码安装:

git clone https://github.com/natesales/q && cd q
go install

常用查询示例:

q example.com                            # 查询默认记录
q example.com MX SOA                     # 指定记录类型列表
q example.com MX @9.9.9.9                # 指定服务器
q example.com MX @https://dns.quad9.net  # 使用 HTTPS(也支持 TCP、TLS、QUIC、ODoH)
q @sdns://AgcAAAAAAAAAAAAHOS45LjkuOQA    # 使用 DNS Stamp
q example.com MX --format=raw            # raw(dig)格式
q example.com MX --format=json           # JSON 或 YAML 格式

服务器选择顺序为:@server 参数 → Q_DEFAULT_SERVER 环境变量 → /etc/resolv.conf。

注意事项

  • 完整参数列表可在终端执行 q --help 查看。
  • 项目使用 GPL-3.0 许可证。

本作品整理自 GitHub 开源项目 natesales/q,原作者 @natesales,许可证 GPL-3.0。中文介绍由 AI 根据项目 README 整理,以原仓库为准。

更新记录

  1. v0.19.12当前版本

    v0.19.12:新增 HTTPS 作为默认记录类型,支持从 ~/.qrc 配置文件加载选项,新增 mDNS 支持,并修复 QUIC 空指针 panic、短选项与等号组合解析、IDNA 下划线等问题。

评论