必须启用系统级 DNS-over-HTTPS(DoH)才能让 Safari 通过加密通道发送 DNS 查询,该设置仅影响 Safari、Mail、Finder 等系统应用,不作用于终端命令;需在「系统设置→网络→DNS」中添加支持 DoH 的服务器并手动启用,验证可通过 https://1.1.1.1/help 页面或 scutil --dns 命令确认。
想让 Safari 浏览器通过加密通道发送 DNS 查询,防止网络中间人窃听或篡改域名解析结果,就必须启用 DNS-over-HTTPS(DoH),但 Safari 本身不提供独立开关,它完全依赖 macOS 系统级 DNS 配置生效,且仅对 Safari、Mail、Finder 等系统框架应用有效,不影响终端命令如 dig 或 curl。
第一步:打开「系统设置」→ 点击左侧「网络」→ 右侧选择当前活跃的连接(如 Wi-Fi 或以太网)→ 点击右下角「详细信息…」。
第二步:切换到「DNS」标签页 → 点击左下角「+」号 → 输入一个支持 DoH 的公共 DNS 服务器 IP 地址,例如 【1.1.1.1】(Cloudflare)或 【8.8.8.8】(Google)。
第三步:选中刚添加的 DNS 条目 → 点击下方「配置 DNS over HTTPS」链接 → 在弹出窗口中勾选「启用 DNS over HTTPS」→ 从下拉菜单选择服务商(如 Cloudflare 或 Google),或手动输入完整 DoH URI(如 https://dns.google/dns-query)→ 点击「好」。
注意:若输入的 URI 格式错误(比如漏掉 /dns-query 后缀、用 HTTP 协议、证书不可信),系统会静默失败,不会报错也不会显示提示——此时 DNS 列表中该条目旁不会出现小锁图标。
打开 Safari,访问 https://1.1.1.1/help 页面。
等待页面加载完成,查看「DNS over HTTPS」一栏状态。
若显示「Enabled」且右侧有绿色对勾,则说明 Safari 正在通过加密 HTTPS 通道发起 DNS 查询。
方法一:回到「系统设置 > 网络 > DNS」列表,确认对应 DNS 条目右侧已出现小锁图标。
方法二:在终端执行 scutil --dns,查找输出中是否包含 dnssec: enabled 和 doh: enabled 字样(macOS 13+ 支持此字段)。
方法三:用 Safari 打开 https://cloudflare-dns.com/help,观察「DoH Status」是否为绿色「Secure」。