
之前有寫到一篇介紹 Surge 根據 WiFi 環境變化來自動選擇使用 DNS Server 的文章
每次域名查詢都要去跑一次 Script,先不論有無額外效能損耗,這樣似乎有點不太優雅
前兩天在 Surge 支援論壇裡面,看到某大神寫的一段範例,剛好可以完美解決這個自動切換 DNS 需求
Surge 只有在網路發生變化的時候才會觸發一次,並根據環境自動將 DoH 啟用或者關閉,非常不錯
所以就稍微拿來改一下,用了幾天沒出現什麼問題,就順便在此篇分享並記錄下來
先說一下我自己的需求,我在家中以及常待的辦公室都有自建 AdGuard Home 在 WiFi 局域網內
所以在認識的 WiFi SSID 下的時候,就用 DHCP Server 指定的 AdGuard Home 即可
只有外出使用行動網路或者不認識 WiFi 時候會需要自動切換啟用 NextDNS DoH 服務
清楚明白自己需求後,就可以開始實作了 😚
👆 Surge 的 DNS 設定改成預設,DoH 留空白不填
接著新建一個本機模組,可以啟用 / 關閉 NextDNS DoH 的模組
Surge App -> 模組 -> 建立本機模組,模組內容如下:
1 2 3 4 5 #!...

上一篇介紹使用 mobileconfig 在 iOS 14 和 mscOS 11.0 Big Sur 來達到自定義的 DoT / DoH 服務
但是這個一改就是全域的,不管你在家中、辦公室或者是在咖啡廳使用的 WiFi 甚至是使用行動網路
都會使用你預先設定的 DNS Server 來解析
然而事實上可能不符合進階一點的需求,例如:
在家中或者辦公室有搭自己的 AdGuard Home or Pi-hole,此時連到這些地方的 WiFi 當然使用區網的 DNS Server 來解析,有本地快取以外區網連線速度快延遲又低
出門使用行動網路或者連上其他不認識的 WiFi 就使用 NextDNS 的 DoH 服務
有上述跟我一樣需求的人,蘋果也有提供一個新的 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 <?...

蘋果在 iOS 14 / Big Sur 加入系統原生 DNS over Https / DNS over TLS(DoH / DoT)的支援
在之前介紹過的 NextDNS app 早在 iOS 14 測試版時已經率先加入支援
在 iOS 14 正式版上線後 NextDNS app 也正式推出 v2.0: https://apps.apple.com/tw/app/nextdns/id1463342498
除了 app 可以直接在 iOS 14 系統中寫入 DoH / DoT 的支援以外
蘋果還有提供給企業或者組織快速設定的 mobileconfig 使用方式
像是 AdGuard 也馬上推出自家 DNS 的 mobileconfig 檔案下載,有興趣可以去他們部落格下載安裝
https://adguard.com/en/blog/encrypted-dns-ios-14.html
不過 AdGuard DNS 在台灣的速度真的不怎麼樣,所以還是參考就好~🥺
接著最近在推特上看見台灣中華電信已經在測試自家 DoH 的服務
發現 https://t.co/YspnbjfZ6b 有 bind 443 port 跑 Nginx ,跑了一張圖寫 Hinet DNS,想說不是廢話嗎?...

最近在 iPhone 跟 iPad 上都是使用 Surge 來最佳化設備上的網路與調整線路
而因為在家中跟辦公室都有搭建自己本地的 AdGuard Home,外出時想要連到 NextDNS DoH
自己每次動手切換實在太煩了,也不可能每次都記得
Surge 目前版本還沒有內建提供自動根據網路環境切換 DNS Server 的功能
所以昨天在推特上亂入問了作者,作者回覆可以使用 Surge DNS Script 來完成這個功能
DNS 脚本可以实现
— Yachen Liu (@Blankwonder) August 14, 2020
於是就自己動手寫一段簡單 Script 來完成
下面就記錄一下設定過程,有需要的人可以照著設定即可
首先先設定一下會在外出時要連線的 DoH,推薦 NextDNS 或者 FutaDNS,也可以同時設定兩組互相備援
接下來新增一個 DNS Script 進去,請先拷貝下面的 Script
其中第一行的「SSID1」跟「SSID2」請根據你的實際的 SSID 來修改
寫在這裡的 SSID,Surge 會直接使用該網路內 DHCP Server 分發下來的 DNS Server 來解
不會連到你上面設定的 DoH Server,如此即可做到根據 SSID 來自動切換 DNS Server 的簡易功能...

之前寫到一篇可以在 iOS 上面使用 DoH、DoT 加密 DNS 的方法
發現也有人在問 macOS 應該要怎麼做?這篇就來快速教學一下
2021/02/06 update 如果你使用 macOS 11 Big Sur 以上的版本,系統已經原生支援
推薦可以直接使用 NextDNS or 中華電信的加密 DNS 服務,或者自己改 https://apple.nextdns.io 描述檔
安裝 HomeBrew HomeBrew 官方推薦一行快速安裝
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
安裝 cloudflared 用 HomeBrew 簡易快速安裝 cloudflared
brew install cloudflare/cloudflare/cloudflared
建立 cloudflared 設定檔 這裡除了上次推薦的 FutaDNS 以外,另外再推薦一個同樣使用 AdGuard Home 搭出來的公共 DNS 服務
伺服器在谷歌 GCP 台灣機房,台灣各地連線過去的速度都很快
公共 DNS 項目的簡介網頁: https://readme.avpclub.gq...