上一篇介紹使用 mobileconfig 在 iOS 14 和 mscOS 11.0 Big Sur 來達到自定義的 DoT / DoH 服務
但是這個一改就是全域的,不管你在家中、辦公室或者是在咖啡廳使用的 WiFi 甚至是使用行動網路
都會使用你預先設定的 DNS Server 來解析
然而事實上可能不符合進階一點的需求,例如:
有上述跟我一樣需求的人,蘋果也有提供一個新的 DNS On Demand(DNS 按需連線)的功能
這功能一樣需要 iOS / iPadOS 14+ 以及 Big Sur 以上才有辦法使用
下面就說說這個特殊的 mobileconfig 描述檔怎麼寫
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
| <?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>ServerURL</key>
<string>https://dns.nextdns.io/xxxxx</string>
</dict>
<key>OnDemandRules</key>
<array>
<dict>
<key>Action</key>
<string>Disconnect</string>
<key>SSIDMatch</key>
<array>
<string>MySSID1</string>
<string>MySSID2</string>
<string>MySSID3</string>
</array>
</dict>
<dict>
<key>Action</key>
<string>Connect</string>
</dict>
</array>
<key>Name</key>
<string>DoH OnDemand</string>
<key>PayloadDescription</key>
<string>Configures device to use DoH OnDemand.</string>
<key>PayloadDisplayName</key>
<string>DoH OnDemand</string>
<key>PayloadIdentifier</key>
<string>com.apple.dnsSettings.managed.8F2760B2-23C1-4735-B5BE-D64A0ADBEC09</string>
<key>PayloadType</key>
<string>com.apple.dnsSettings.managed</string>
<key>PayloadUUID</key>
<string>8F2760B2-23C1-4735-B5BE-D64A0ADBEC09</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</array>
<key>PayloadDescription</key>
<string>Adds DoH OnDemand to Big Sur and iOS 14 or newer systems</string>
<key>PayloadDisplayName</key>
<string>DoH OnDemand</string>
<key>PayloadIdentifier</key>
<string>14737786-645C-42BF-9B13-6B339B2D81C1</string>
<key>PayloadRemovalDisallowed</key>
<false/>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>51851357-7736-4A33-90E6-45FB8C3BEC59</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>
|
上述內容,有幾行需要自行修改後才能使用
第 14 行:請修改為自己出門在外要使用的加密 DoH,如果是 NextDNS 的話,請上他們官網後台
👆 如上圖的「DNS-over-HTTPS」數值拷貝起來填進去
第 23~25 行:這裡請修改為你不想要
使用 NextDNS 的 WiFi SSID,也就是只要系統連上這些 SSID,就會使用區網 DHCP Server 推送的 DNS 設定
以上兩個資料修改完畢後就可以保存、AirDrop or eMail 到 iPhone / iPad 上面安裝了~
最後蘋果除了 SSID 判斷以外,還有提供 Domain、DNS Server 甚至是 Interface Type 多種判斷來達到更進階需求
有興趣可以到下面蘋果官方說明書了解更多 🖖
https://developer.apple.com/documentation/devicemanagement/dnssettings/ondemandruleselement
2020/09/28 update
有人問到怎麼都在講 DoH,沒有 DoT 呢?
其實要改 DoT 很簡單,上面描述檔的第 11 行把「HTTPS」改為「TLS」
第 13 行的「ServerURL」改成「ServerName」即可
另外別忘記第 14 行也要換上 DoT 的網址 😘