iOS 设置 DoH DoT

iOS 设置 DoH DoT

DoH DoT 介绍

DoH 及 DNS Over HTTPS,利用 HTTPS 协议加密 DNS 查询。DoT 及 DNS Over TLS,以经过TLS加密的TCP连接提供DNS解析服务。

加密DNS 加密 协议 端口 性能 隐秘性
DoH TLS HTTPS 443 一般 查询和响应伪装在其他 HTTPS 流量中
DoT TLS TCP 853 优秀 专用端口,网络管理员可以知道是DoT 流量,但无法解密内容

为什么需要 DoH/ DoT?传统的DNS查询和应答采用UDP明文传输,存在网络监听、DNS劫持、中间设备干扰的风险,尤其是国内运营商为节约成本,导致 DNS 解析错误影响使用。

iOS 无法直接设置 DoH 或 DoT,但是可以通过配置描述文件来配置。

配置描述文件

项目地址:github.com/paulmillr/encrypted-dns

名称 区域 审查 备注 安装链接
DNSPod 公共 DNS 🇨🇳 由腾讯云计算旗下 DNSPod 运营 安装DoH, 安装DoT
阿里云公共 DNS 🇨🇳 由阿里云计算运营 安装DoH, 安装DoT
Cloudflare 1.1.1.1 🇺🇸 由 Cloudflare 运营 安装DoH, 安装DoT
谷歌公共 DNS 🇺🇸 由谷歌运营 安装DoH, 安装DoT

安装步骤

iOS / iPadOS:使用 Safari 浏览器(其他浏览器只会下载该文件,不会弹出安装提示)点击上方表格中的安装DoH或DoT链接,然后点击“允许”按钮,描述文件将完成下载。打开 系统设置 => 通用 => VPN、DNS 与设备管理,选择已下载的描述文件并点击“安装”按钮。

同样安装后可以在 系统设置 => 通用 => VPN、DNS 与设备管理 移除。

文件示例

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PayloadContent</key>
    <array>
        <dict>
            <key>DNSSettings</key>
            <dict>
                <key>DNSProtocol</key>
                <string>HTTPS</string>
                <key>ServerAddresses</key>
                <array>
                    <string>1.12.12.12</string>
                    <string>120.53.53.53</string>
                </array>
                <key>ServerURL</key>
                <string>https://doh.pub/dns-query</string>
            </dict>
            <key>PayloadDescription</key>
            <string>Configures device to use DNSPod Encrypted DNS over HTTPS</string>
            <key>PayloadDisplayName</key>
            <string>DNSPod over HTTPS</string>
            <key>PayloadIdentifier</key>
            <string>com.apple.dnsSettings.managed.C498EC0C-EF6C-44F0-BFB7-0000658B99AC</string>
            <key>PayloadType</key>
            <string>com.apple.dnsSettings.managed</string>
            <key>PayloadUUID</key>
            <string>065AB183-5E34-4794-9BEB-B5327CF61F27</string>
            <key>PayloadVersion</key>
            <integer>1</integer>
            <key>ProhibitDisablement</key>
            <false/>
        </dict>
    </array>
    <key>PayloadDescription</key>
    <string>Adds the DNSPod to Big Sur and iOS 14 based systems</string>
    <key>PayloadDisplayName</key>
    <string>DNSPod over HTTPS</string>
    <key>PayloadIdentifier</key>
    <string>com.paulmillr.apple-dns</string>
    <key>PayloadRemovalDisallowed</key>
    <false/>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadUUID</key>
    <string>030E6D6F-69A2-4515-9D77-99342CB9AE76</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
</dict>
</plist>

配置描述文件包含 DNS 域名及 IP。

Mac OS X 代理节点