火狐启用DoH后部分网站打不开,是因为强制走HTTPS DNS导致绕过hosts文件、本地DNS及路由器设置,无法解析内网域名和私有IP;唯一可靠解法是配置network.trr.excluded-domains例外列表实现分流。

火狐浏览器启用DoH(DNS over HTTPS)后,部分网站打不开,是因为所有域名解析请求被强制走加密HTTPS通道,完全绕过系统hosts文件、本地DNS服务器和路由器DNS设置,导致内网域名(如intranet.company、gitlab.internal)、私有IP地址(如192.168.1.100)或某些不兼容DoH的公共网站无法正确解析。
根本原因:DoH切断了本地解析路径
一旦network.trr.mode设为2(强制DoH),火狐就不再查询C:\Windows\System32\drivers\etc\hosts(Windows)或/etc/hosts(macOS/Linux),也不会向UDP 53端口发请求给你的路由器或企业DNS。所有查询都发往你配置的network.trr.uri(如https://dns.alidns.com/dns-query),而阿里、腾讯、Cloudflare等公共DoH服务根本不识别私有域名或某些特殊格式的内部记录。
现象包括:访问http://printer.lan显示“无法找到服务器”,但用curl或Chrome能通;about:networking#dns中看到该域名查询Protocol列为HTTPS但状态是failed;输入nslookup intranet.company 127.0.0.1返回NXDOMAIN或超时。
唯一可靠解法:配置excluded-domains例外列表
这是Mozilla官方认可且唯一稳定的分流机制——让指定域名跳过TRR(Trusted Recursive Resolver),改用系统默认DNS解析。
第一步:在地址栏输入about:config → 点击“接受风险并继续”
第二步:搜索network.trr.excluded-domains → 若无此条目,右键 → 新建 → 字符串 → 名称填network.trr.excluded-domains
第三步:双击该项,填入逗号分隔的纯域名,【不带http://、不加尾部点、不写路径、不支持*通配符】,例如:intranet.company,gitlab.internal,printer.lan,192.168.1.100
注意:填internal可匹配dev.internal和prod.internal,但填*.internal无效;修改后无需重启,新开标签页立即生效,已打开页面需刷新或重开。
验证是否真正生效
访问about:networking#dns → 在Recent Queries表格中查找刚访问的内网域名 → 检查Protocol列是否变为UDP或TCP(说明已绕过DoH)
对比TRR Status行:若显示active,但某次查询Protocol是UDP,说明excluded-domains已起作用
终端执行nslookup intranet.company 127.0.0.1(假设系统DNS监听本机)→ 若返回有效IP,证明本地DNS本身能解析,只是之前被DoH拦住了


















