dnslookup
一个简单的命令行工具,用于进行 DNS 查询。支持所有已知的 DNS 协议:普通 DNS、普通 DNS-over-TCP、DoH、DoT、DoQ、DNSCrypt。
如何安装
- 使用 homebrew:
brew install ameshkov/tap/dnslookup
- 从源代码:
go install github.com/ameshkov/dnslookup@latest
- 你可以从发布页面获取二进制文件。
- 你可以从 Snap 商店安装
示例:
普通 DNS,使用默认系统解析器:
dnslookup example.org
普通 DNS:
dnslookup example.org 94.140.14.14
普通 DNS-over-TCP:
dnslookup example.org tcp://94.140.14.14
DNS-over-TLS:
dnslookup example.org tls://dns.adguard.com
带 IP 的 DNS-over-TLS:
dnslookup example.org tls://dns.adguard.com 94.140.14.14
使用 HTTP/2 的 DNS-over-HTTPS:
dnslookup example.org https://dns.adguard.com/dns-query
支持 HTTP/3 的 DNS-over-HTTPS(版本自动选择):
HTTP3=1 dnslookup example.org https://dns.google/dns-query
仅强制使用 HTTP/3 的 DNS-over-HTTPS:
dnslookup example.org h3://dns.google/dns-query
带 IP 的 DNS-over-HTTPS:
dnslookup example.org https://dns.adguard.com/dns-query 94.140.14.14
带基本认证的 DNS-over-HTTPS(由 AdGuard DNS 支持):
dnslookup example.org https://username:password@d.adguard-dns.com/dns-query
DNSCrypt(标记):
dnslookup example.org sdns://AQIAAAAAAAAAFDE3Ni4xMDMuMTMwLjEzMDo1NDQzINErR_JS3PLCu_iZEIbq95zkSV2LFsigxDIuUso_OQhzIjIuZG5zY3J5cHQuZGVmYXVsdC5uczEuYWRndWFyZC5jb20
DNSCrypt(参数):
dnslookup example.org 176.103.130.130:5443 2.dnscrypt.default.ns1.adguard.com D12B:47F2:52DC:F2C2:BBF8:9910:86EA:F79C:E449:5D8B:16C8:A0C4:322E:52CA:3F39:0873
DNS-over-QUIC:
dnslookup example.org quic://dns.adguard.com
发送 IPv4 地址的 PTR 查询(当未指定 RRTYPE 时,自动识别 IP 地址):
dnslookup 8.8.8.8
发送 IPv6 地址的 PTR 查询(当未指定 RRTYPE 时,自动识别 IP 地址):
dnslookup 2606:4700:4700::1111
机器可读格式:
JSON=1 dnslookup example.org 94.140.14.14
禁用证书验证:
VERIFY=0 dnslookup example.org tls://127.0.0.1
指定资源记录类型(默认为 A):
RRTYPE=AAAA dnslookup example.org tls://127.0.0.1
RRTYPE=HTTPS dnslookup example.org tls://127.0.0.1
指定查询类(默认为 IN):
CLASS=CH dnslookup example.org tls://127.0.0.1
在请求的 OPT 记录中设置 DNSSEC DO 位:
DNSSEC=1 dnslookup example.org tls://8.8.8.8
指定 EDNS 子网:
SUBNET=1.2.3.4/24 dnslookup example.org tls://8.8.8.8
添加 EDNS0 填充:
PAD=1 dnslookup example.org tls://127.0.0.1
指定代码点为 code
的 EDNS 选项,可选地带有 value
的十六进制字符串负载:EDNSOPT=code:value
。示例(相当于 dnsmasq 的 --add-cpe-id=12345678
):
EDNSOPT=65074:3132333435363738 RRTYPE=TXT dnslookup o-o.myaddr.l.google.com tls://8.8.8.8
组合多个选项:
RRTYPE=TXT SUBNET=1.1.1.1/24 PAD=1 dnslookup o-o.myaddr.l.google.com tls://8.8.8.8
详细级别日志记录:
VERBOSE=1 dnslookup example.org tls://dns.adguard.com