固然可以做到,但刚需本地软件运行。它还需要你手上有一个可访问的无污染DoH。
为了降低检测门槛,我们推出了一个功能全面且走完整逻辑的网页工具ECH Probe。它还能帮助检测某些DNS是否存在对HTTPS记录的污染。
目前存在的网页ECH探测要么是只检测浏览器是否在与该网站连接启用ECH,要么是简单地对目标网站报一个支持。同时,HRR探测没有被集成。我们的工具给了较完整的检测和解析功能,同时提供了api用于批量检测。
ECH Probe有两种工作模式:
方式一:DNS 查询(常规模式)
大多数网站通过 DNS 的 HTTPS 记录发布 ECH 配置:
$ dig HTTPS example.com
;; ANSWER SECTION:
example.com. 300 IN HTTPS 1 . alpn="h3,h2" ech="AEj+DQB..."
ECH Probe 会同时查询多个 DNS 解析器(Cloudflare、Google、AliDNS 以及DNSPod),对比结果是否一致,帮助发现 潜在的DNS 污染问题。
方式二:Hello Retry Request(HRR 模式)
某些网站部署了ECH支持而未公开(如 Meta 的服务)。它们的 ECH 配置不会出现在 DNS 记录中。它们只在 TLS 握手过程中通过 Hello Retry Request 机制下发。
工作原理:
客户端发送无效的 ECH 公钥给服务器
服务器返回
ECHRejectionError,附带正确的 ECH 配置客户端从响应中提取真实的公钥
可简单理解为故意说错密码,让服务器告诉你正确的密码格式。
ECH Probe支持可视化解析echconfig,它会展示:
版本 (Version)
标识 ECH 协议版本号
配置 ID (Config ID)
1 字节整数,范围 0-255 最大域名长度 (Maximum Name Length)
表示该 ECH 配置支持加密的最大域名长度
KEM (Key Encapsulation Mechanism)
密钥封装机制,决定如何安全地交换密钥
HPKE 套件组合
Public Name
ECH 配置对应的域名,客户端在握手时使用此域名进行外层 SNI
Base64 编码的原始 ECHConfig
技术实现
前端: Next.js + TypeScript + Tailwind CSS
DNS 查询: 基于Node.js的后端 DoH 代理,避免前端直连被阻断
HRR 模式: Go 1.25+ 的
crypto/tlsECH 支持,部署在 Vercel Serverless Functions通过运行在Vercel Serverless Functions的后端,可避免DNS连不上,ip被阻断,sni阻断等一堆问题,快速地展示目标网站支持情况。
我们无任何日志记录。欢迎自行部署上Vercel。api调用方法请阅读README.md。
立即体验
🔗 在线工具: https://future.softx.eu.org
📦 开源代码: https://github.com/coolapijust/Ech-probe
ECH 是互联网隐私的重要进步。目前而言,它还没有被大规模阻断,因此可以利用它的特性做很多事。