利用 Surge for iOS 根據網路環境自動切換 DNS 服務

​ 關於 Surge 自動切換 DNS 的文章,這篇已經是第三篇,沒意外應該也是最後一篇關於此功能的文章 😂 因為之前寫的 DNS 腳本,我發現還有人在繼續使用 現在開發者已經把這個功能內建到 Surge app 裡面,無需另外在靠腳本來實作,所以就另外寫一篇來更新一下 ​ Surge 在幾個月前的版本更新後,新增 Subnet Settings(子網設定覆蓋)的相關設定 所以很輕鬆就能做到之前需要依靠 DNS 腳本才能做到的事情 💪 ​ 我的需求跟之前一樣 在家以及在辦公室使用熟悉 WiFi 時候切換到內網 DHCP Server 指定的 DNS Server(自建的 AdGuard Home) 其餘情況(使用行動網路以及連上不認識的 WiFi 等等)都使用 NextDNS 的加密 DNS 服務 ​ 首先我們先把預設要用的 NextDNS 加密 DNS 設定好,打開 Surge 以後找到「DNS 設定」 先把預設的 DNS 改成 NextDNS 加密服務,如下圖 ​ ​ 接著如下圖,到更多設定裡面找到子網設定覆蓋的選項 ​ ​ 最後如下圖,把你家中 WiFi SSID 設定好,以及「覆蓋 DNS 設定」跟「覆蓋加密 DNS 設定」改成下圖那樣即可 ​ ​ 如上圖那樣設定後,只要 Surge 連到你設定的 WiFi SSID,就會覆蓋掉你原本的設定 當然你要指定成 system 以外的也可以,自己依照自己需求填寫 如果你有一個以上 SSID 需要修改,那就重複上面步驟來新增設定即可 ...

February 6, 2023 · 1 min · jkgtw

使用 Surge 在網路變化時,自動切換 AdGuard Home 與 NextDNS

​ 注意 此方法已經過時,Surge 新版已經內建此功能,可以到這邊看如何使用 👌 之前有寫到一篇介紹 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 #!name=NextDNS #!desc=啟用 DoH 加密解析 [General] doh-server = https://apple.dns.nextdns.io/######## 以上第 5 行 ## 部分請自己改成自己的 NextDNS ID,如果你不是用 NextDNS 也可以改成其他 DoH 網址 ...

April 12, 2021 · 2 min · jkgtw

使用 Surge DNS Script 自動切換本地 DNS

​ 注意 此方法已經過時,Surge 新版已經內建此功能,可以到這邊看如何使用 👌 最近在 iPhone 跟 iPad 上都是使用 Surge 來最佳化設備上的網路與調整線路 而因為在家中跟辦公室都有搭建自己本地的 AdGuard Home,外出時想要連到 NextDNS DoH 自己每次動手切換實在太煩了,也不可能每次都記得 Surge 目前版本還沒有內建提供自動根據網路環境切換 DNS Server 的功能 所以昨天在推特上亂入問了作者,作者回覆可以使用 Surge DNS Script 來完成這個功能 ​ 於是就自己動手寫一段簡單 Script 來完成 下面就記錄一下設定過程,有需要的人可以照著設定即可 ​ 首先先設定一下會在外出時要連線的 DoH,推薦 NextDNS 或者 FutaDNS,也可以同時設定兩組互相備援 ​ ​ 接下來新增一個 DNS Script 進去,請先拷貝下面的 Script 其中第一行的「SSID1」跟「SSID2」請根據你的實際的 SSID 來修改 寫在這裡的 SSID,Surge 會直接使用該網路內 DHCP Server 分發下來的 DNS Server 來解 不會連到你上面設定的 DoH Server,如此即可做到根據 SSID 來自動切換 DNS Server 的簡易功能 ​ if ($network.wifi.ssid === 'SSID1' || $network.wifi.ssid === 'SSID2') { $done({servers:$network.dns}) } else { $done({}) } ​ 拷貝以上內容後,接著回到 Surge 準備新增一個本機腳本 ​ ​ 繼續如下圖步驟設定 ​ ​ 如上圖,看著數字步驟設定即可,再次提醒:步驟 4 貼上的 Script SSID 請記得修改成你自己的 ...

August 15, 2020 · 1 min · jkgtw