Windows 11
新版本已原生支持 DoH,无需装软件。图形界面路径:
设置 → 网络和 Internet → 以太网(或 Wi-Fi)
→ 硬件属性 → DNS 服务器分配 → 编辑
→ 手动 → 打开 IPv4 → 首选 DNS 填解析器 IP
→ 「通过 HTTPS 的 DNS」选「开(自动模板)」
命令行查看当前状态(确认是否真的启用了加密):
netsh dns show encryption
注意:Windows 10 早期版本没有这个界面,需要靠第三方客户端(如 dnscrypt-proxy)或升级系统。
macOS
命令行改 DNS 服务器(这一步只改地址,不启用加密):
sudo networksetup -setdnsservers Wi-Fi 1.1.1.1
启用 DoH/DoT 需要安装配置描述文件(.mobileconfig),由解析器提供方发布。系统级加密没有对应的命令行开关,这一点常被误解。
校验:scutil --dns 可以看到当前生效的解析器。
Linux(systemd-resolved)
现代发行版多由 systemd-resolved 管理解析。编辑 /etc/systemd/resolved.conf:
[Resolve]
# 严格模式:地址后跟 #主机名,用于校验 TLS 证书
DNS=1.1.1.1#cloudflare-dns.com
DNSOverTLS=yes
DNSSEC=allow-downgrade
sudo systemctl restart systemd-resolved
resolvectl status | grep -A3 "DNS Servers"
若把 DNSOverTLS 设为 yes 但 DNS= 只填 IP,证书校验会失败 —— 必须写成 IP#主机名 的形式。opportunistic 则不做校验,安全性弱一些。
浏览器(Chrome / Edge / Firefox)
Chrome:设置 → 隐私和安全 → 安全 → 使用安全 DNS,可填自定义解析器地址。
Firefox:设置 → 隐私与安全 → 启用基于 HTTPS 的 DNS,支持「最大保护 / 默认保护」两档。
务必记住覆盖面:只影响该浏览器。同机的 curl、系统更新、其它应用仍然走系统解析器。
Chrome 的「最大保护」模式会在解析器不可用时直接失败(不回退明文);Firefox 的对应选项叫「最大保护」。这两档的区别在排障时很关键。
Android
Android 9 起支持「私人 DNS」(即 DoT):
设置 → 网络和互联网 → 私人 DNS
→ 填主机名(不是 IP),例如 dns.example.com
注意这里要求主机名,因为它靠 TLS 证书校验身份。填 IP 会提示无效。DoH 在 Android 上需要 App 或最新版本的支持。
iOS / iPadOS
系统本身不提供图形界面的 DoH/DoT 开关,需要通过描述文件(由解析器提供方或 MDM 发布)安装。
安装后可在 设置 → 通用 → VPN 与设备管理 里看到该配置描述文件。
这是移动端最常见的能力限制:加密 DNS 在 iOS 上基本等同于「装一个描述文件」,无法像桌面端那样随手切换。