firefox 119起默认启用ech,但需同时启用doh(network.trr.mode设为2或3)并确保network.dns.echconfig.enabled和network.dns.use_https_rr_as_altsvc为true才能生效。

Firefox 119 及以后版本默认启用 ECH,无需手动开启;但若检测失败或使用旧版(如 ESR 或 Nightly 早期构建),才需检查并调整 about:config 中的几个关键开关。
确认 Firefox 版本是否支持 ECH
ECH 在 Firefox 119(2023年10月发布)起默认启用,且不再依赖 network.security.esni.enabled(ESNI 已被弃用)。如果你用的是 Firefox ESR、自定义编译版或长期未更新的 Nightly,可能仍处于关闭状态。
操作方式:
- 在地址栏输入
about:support,查看“版本”字段是否 ≥ 119 - 若低于 119,升级到最新稳定版是最直接有效的解决方式
- ESR 用户注意:Firefox ESR 115 不含 ECH,必须升级至 ESR 128(2024年7月起)才获得支持
检查并启用 ECH 相关配置项(仅限需要手动干预时)
即使版本达标,ECH 的实际生效还依赖 DNS 解析路径是否携带 ECH 配置。Firefox 通过 HTTPS RR(_https DNS 记录)获取服务端 ECH 参数,这要求 DoH(DNS over HTTPS)已启用且能正常查询。
必须确保以下三项为 true:
-
network.dns.echconfig.enabled—— 控制是否尝试从 HTTPS RR 获取 ECH 配置 -
network.dns.use_https_rr_as_altsvc—— 允许将 HTTPS RR 视为 ALTSVC 替代服务记录,用于传递 ECH 密钥 -
network.trr.mode设置为2(推荐)或3—— 启用 TRR(可信递归解析器),即强制走 DoH,否则无法拿到 HTTPS RR
注意:network.security.esni.enabled 已废弃,设为 true 无效果;network.dns.http3_echconfig.enabled 在 128+ 版本中也已移除,不必设置。
验证 ECH 是否真正生效
访问 Cloudflare ECH 测试页,点击“检查我的浏览器”。它会发起真实 TLS 握手并分析 ClientHello 是否加密。
常见误判情况:
- 显示“DNSSEC OK”但“安全 SNI:未启用” → 多数是 DoH 未生效或
network.trr.mode仍为 0(系统 DNS 回退模式) - 测试页本身不支持 ECH(如某些镜像站或国内 CDN 缓存页)→ 换用
https://echtest.mozilla.org或抓包验证更可靠 - 本地网络拦截了 DoH 查询(如企业防火墙、路由器 DNS 劫持)→ 尝试改用
https://dns.dnsoverhttps.net/dns-query等更开放的 DoH 地址
DoH 配置与 ECH 的强耦合关系
ECH 不是独立开关,它严重依赖 DoH 的可用性。Firefox 只有在启用 TRR(network.trr.mode ≠ 0)且成功解析到目标域名的 HTTPS RR 记录后,才会在 ClientHello 中填入加密参数。
典型配置组合:
-
network.trr.mode = 2(首选 DoH,失败回退系统 DNS) -
network.trr.uri = https://mozilla.cloudflare-dns.com/dns-query(官方推荐 DoH 地址) -
network.trr.bootstrapAddress = 1.1.1.1(避免 DoH 域名解析死锁)
如果跳过 DoH 配置,只打开 echconfig.enabled,ECH 实际不会触发——这是最常被忽略的依赖链断裂点。











