利用 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

根據網路環境自動變更 DNS 設定的 DNS On Demand

​ 上一篇介紹使用 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 <?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> 上述內容,有幾行需要自行修改後才能使用 ...

September 27, 2020 · 2 min · jkgtw

在 iOS 14 / Big Sur 啟用中華電信 DoH 服務

​ 蘋果在 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,想說不是廢話嗎? 轉念想說該不會是中華電信在測試 DNS over https 吧 把 Firefox 的 DOH 設到 https://t.co/K4ADIsJ3du 還真的可以用 XD pic.twitter.com/8HLIaRJJtX ...

September 26, 2020 · 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

如何在 macOS 使用 DNS over Https(DoH)

​ 之前寫到一篇可以在 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 來源: https://www.pcdvd.com.tw/showthread.php?t=1157681 ​ # 新建資料夾跟設定檔 mkdir -p /usr/local/etc/cloudflared nano /usr/local/etc/cloudflared/config.yaml ​ 拷貝以下內容貼上 proxy-dns: true proxy-dns-upstream: - https://adh.avpclub.gq/dns-query - https://dns.futa.gg/dns-query 記得保存退出 ...

June 16, 2020 · 1 min · jkgtw

FutaDNS 公共服務之 iOS 設定方法

​ 最近低吸大大建立了 FutaDNS 的 DNS 公共服務,背後跑的是 AdGuard Home 支援 DoT、DoH 加密查詢 ​ 該服務使用了以下廣告黑名單: 毫無反應 解決部分網站異常使用。 FutaFilter (首頁) 本專案負責維護的過濾清單,跟第一個一樣是處理一些網站的異常情況。 NSABlocklist (首頁) 過濾已知 NSA / GCHQ / C.I.A. / F.B.I. 的釣魚伺服器(所以我都叫這清單 USASpy)。 AdGuardSDNS AdGuard 官方的 DNS 過濾清單。 280blocker (首頁) 日本人維護的過濾清單。目標是處理 mobile 的廣告,大部分的過濾域名是 .jp 結尾。 SomeoneWhoCares (首頁) 主要是用來過濾間諜、木馬網站,兼有過濾廣告功能。 NeoDev (首頁) 整合清單型 (包含白名單)。 AdAway (首頁) 應用程式 AdAway 使用的過濾清單。 AdAway (Japan Enhanced) (首頁) 基於 AdAway 並增加一些日本網站的過濾清單。 Malware Domain List (首頁) 故名思義,這個過濾清單是針對惡意域名的。 Malware Domain Blocklist by RiskAnalytics (首頁) 同上。 Phishing Army 基本 延伸 (首頁) 針對釣魚網站的過濾清單。 CoinBlockerLists by ZeroDot1 (首頁) 針對網頁挖礦的過濾清單。 ​ FutaDNS 官網: https://site.futa.gg ​ 因為 iOS 在 DoT、DoH 設定上比較麻煩,所以特別寫一篇教學幫助大家快速用上這個絕佳的擋廣告神器 ...

May 9, 2020 · 2 min · jkgtw

在 GCP 安裝 AdGuard Home 並開啟 DoH 全攻略

前面寫過可以透過免費一年的 GCP 安裝 MTProxy 讓 Telegram 瞬間順滑起來 如果是單人使用的話 CPU 佔用極低,其實還蠻浪費的 所以為了不要浪費這虛擬機,今天就繼續來給 GCP 虛擬機加一點工作 🤣 其實 AdGuard Home 還蠻適合安裝一套到 GCP 虛擬機裡面的,主要給手機或者平板外出時使用 在家或者辦公室的話,已經有實體機的伺服器安裝 AdGuard Home 了,在家就用自家內網的伺服器即可~ 以下是我們這篇文章想要達成的目標: 在 GCP 的 Debian 10 虛擬機中安裝 AdGuard Home 使用 Let’s Encrypt 自簽證書並自動續期 AdGuard Home 設定開啟 DNS over Https(DoH)功能 在 iOS 上使用 DNSCloak 設定 On demand 自動切換 使用 gcloud 批次建立白名單防火牆規則 ​ 在 GCP 的 Debian 10 虛擬機中安裝 AdGuard Home 如果你還沒有 GCP 的話,請先參考之前文章申請 GCP 到安裝 Debian 系統 ...

December 9, 2019 · 3 min · jkgtw

更多關於 AdGuard Home 的設定

之前發過幾篇關於防廣告 AdGuard Home 的文章,大家好像蠻有需要的,還蠻多人關注的 有很多人來問更詳細的設定選項,這邊就稍微寫一下幾個比較多人問的設定 ​ 推薦的廣告阻擋清單 以下幾個阻擋清單是我目前正在使用的,效果還不錯 上圖最上面四個是 AdGuard Home 內建的,我自己根據自己需求加上幾個好用的 NeoHost-Basic:如果有在用中國網站的話(淘寶、騰訊、百度。。等等),推薦可以訂閱 我自己是使用「Basic」的等級,如果是潔癖可以試試看他們官網上的「Full」 https://hosts.nfz.moe/basic/hosts CoinBlocker:可以擋掉一些拿你機器來挖礦的主機域名 https://zerodot1.gitlab.io/CoinBlockerLists/hosts StevenBlack:知名的擋廣告清單,PiHole 有內建 https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts CHEF-KOCH NASBlocklist:可以擋掉一些 BIG BROTHER 政府機關 https://raw.githubusercontent.com/CHEF-KOCH/NSABlocklist/master/HOSTS/HOSTS CHEF-KOCH ADs:這個作者很厲害,之前在 GitHub 上面抓出超多矽谷公司的域名,並提供清單阻擋,後來被微軟大律師搞死了 所以暫時在 GitLab 上面繼續維護,作者未來可能打算自己搭伺服器,想去了解事件始末可以到這個帖子去看看 https://gitlab.com/CHEF-KOCH/cks-filterlist/raw/master/hosts/Ads-tracker.txt ​ 上游 DNS 設定 如果你使用蘋果設備的話,我並不推薦 Google DNS,先不說 Google 隱私問題,使用蘋果服務有時反而會很慢 在台灣速度比較快且又能兼具隱私跟安全性的,推薦 1111 與 101 如上圖,1111 與 1001 是 AdGuard Home 內建的,使用 DoH 加密連線 而台灣中華電信 DNS 目前都還沒有支援 DoT or DoH 的加密連線,所以採用另外一家台灣 TWNIC 的 DNS 服務 ...

September 9, 2019 · 1 min · jkgtw