根據網路環境自動變更 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

量身打造、100% 客製化抗廣告的 NextDNS

​ 之前介紹過很多 DNS 層級的廣告過濾方法,今天來推薦一個優秀的公共 DNS 服務「NextDNS」 ​ 使用別人搭建出來的公共 DNS 都有個大問題,就是他們沒辦法完全為你量身定做 有的人想要寬鬆一點的規則?有人想要嚴格一點的規則?或者你有少數一、兩個網站想要走白名單? 類似 AdGuard DNS、CloudFlare Families DNS 這種公共 DNS 都沒辦法幫你實現,你唯一選擇就是臨時關掉它 而今天介紹的 NextDNS 則是可以讓你 100% 客製化的 DNS 服務,同時也有提供加密 DoT 與 DoH 服務 ​ 最重要的先來看看價格~ ​ NextDNS 每月提供 30 萬筆查詢次數的免費額度,如果你需要更多的話 價格也不貴 1.99 美金一個月吃到飽,或者是選擇年付有八折優惠 ​ 如果你是在一台行動設備上面使用(iPhone、iPad),這個額度來說是足夠使用的 而就算你突然超過 30 萬免費額度,NextDNS 也不會粗暴將你踢掉讓你斷網,只是會失去過濾功能而已 並不會影響你後續日常上網 ​ 而他們的伺服器也是相當多且廣的,在全球範圍已經有 47 個節點(還在增加中。。) ​ 東亞區域包含台灣、香港、韓國、東京跟新加坡,所以在台灣反應速度不錯 ​ 我們廢話不多說,直接就來註冊帳號 ​ 註冊過程異常簡單,只要寫你的 email 跟指定密碼即可完成註冊 之後就會登入到 NextDNS 管理網頁 ​ ​ Setup ​ 首頁就能看到 DoT 跟 DoH 的設定網址,還有支援 IPv6 的伺服器 另外如果你設備無法使用 DoT / DoH 或者安裝他們 app 的話,他們也有提供純 IP 的設定方式 ...

July 29, 2020 · 2 min · jkgtw

使用 AdGuard for iOS 便利小工具建立自定義規則阻擋網頁元素

​ 看到有人說裝了 AdGuard for iOS 以後,在使用瀏覽器上網時候還是會有廣告阿!? 🤨 其實這跟訂閱的規則比較有關,但是也有少部分網站廣告並沒有被收錄到 所以這時我們還可以利用 AdGuard 提供的便利小工具自己手動建立自定義清單來阻擋 ​ 隨便打開個有廣告的網頁~ ​ 👆 本次目標在左邊截圖中,下方出現「東京住宿比價」的廣告條 ​ 依序點 iOS 瀏覽器中的 Share Sheet(上圖 1 的 icon),然後點一下 AdGuard 呼叫出選項視窗 ​ 👆 依序點選,準備開始手動選擇你想要阻擋的網頁元素 ​ 按下開始後,接下來只要在該網頁上,點選出你想要阻擋的廣告內容 ​ ​ 如上圖左的紅框,會有五個按鈕,從左到右分別是確定、預覽、增加範圍、減少範圍、取消 綠框是 AdGuard 顯示出的阻擋範圍,你可以按下增加範圍跟減少範圍的按鈕 來隨意調整你想要阻擋的網頁元素大小 調整完畢後可以按下預覽的按鈕,看看是否已經達到你想要的效果 ​ ​ 預覽無問題後,按下勾勾(確定)的按鈕,然後會跳出是否要在 AdGuard 打開? 按下『打開』之後即可完成自定義阻擋清單的更新 下次再到同樣網站就會直接套用規則,再也看不到同樣廣告位的廣告啦! 🖖

July 14, 2020 · 1 min · jkgtw

2020 大訂閱時代多元成家、數位移民心得分享

​ 上次有提到一篇關於目前「訂閱」服務似乎已經是趨勢,未來我們只會看到越來越多服務轉向訂閱 不知不覺我也訂閱不少服務了,這篇來整理記錄一下目前我一部份常用的訂閱軟體遊戲或者網路服務 😙 ​ Apple iCloud 空間 我訂的是最低的入門方案,30 台幣(每月)50GB 容量 因為有台群暉 NAS 專門在存照片跟影片,這部分是最佔用容量的了,都沒放 iCloud 我 iCloud 大部分是用來備份 iPhone / iPad 的資料 還有放一些 iWork 大一點的文件檔案跟不常用的檔案,目前共使用約 35GB 左右,還算是餘刃有餘~ ​ ​ Spotify 家庭方案 大家應該都知道 Spotify、YouTube、Netflix。。等等都是因地制價,會依據消費者所在國家不同 根據當地消費力與商業競爭強度的不同,而有不同的價格 目前全世界 Spotify 最低價格是在菲律賓,菲律賓的曲庫跟美國很接近 而美國曲庫算是非常多且齊全的,要聽的中文歌大部分都會有 想要查 Spotify 全球訂價,可以到這個網站參考: https://mts.io/projects/spotify-pricing/ ​ Spotify 菲律賓訂閱需要使用菲律賓 PayPal 才行,如果你直接用非菲律賓信用卡是會被拒絕的 早期 PayPal 註冊是不需要驗證當地手機號碼的,最近幾個月開始都變成強制驗證了 所以要開這個帳號的話,你會需要一個菲律賓手機號碼收驗證簡訊 可以去搜一些線上收碼平台,或者是蝦皮、淘寶之類,有人專門在做這種收簡訊或者電話卡的服務 但真心不推薦讓第三方幫你收簡訊,尤其是使用 PayPal 這種跟金錢有關的服務 ​ Spotify 菲律賓家庭方案是 194 PHP,但 PayPal 匯率通常都很差 實際信用卡扣款可能在 120~130 台幣左右(匯率浮動的),連開團主一起計算的話,共六個人一團 每人每月分攤下來在 20~22 台幣左右,CP 值突破天際~ ​ ​ 另外最近 Spotify 台灣跟菲律賓都開通即時歌詞的功能了~👇 ​ Spotify 即時歌詞 😘 pic.twitter.com/K4KhJBrzjO — Stephen  @[email protected] (@jkgtw) June 30, 2020 ​ ...

July 3, 2020 · 2 min · jkgtw

AdGuard Pro for iOS 簡易使用教學

​ 昨天 AdGuard Pro for iOS 總算是更新了 v4.0.1,距離上次更新都已經快要一年了 ​ ​ 最主要原因是因為開發團隊之前在這款軟體裡面加入了 DNS 過濾,又內建了常見過濾規則 如此的話,使用者購買打開 app 後,就算不做太多設定也能開始有廣告過濾的基本功能 因太強大,蘋果以會影響到其他 app 的理由拒絕上架,後來開發團隊與蘋果長時間來回交涉後 「如果在軟體裡面把內建規則拿掉,讓使用者自行手動新增」這樣就可以勉強繞過審核上架 所以上架是上架了,要發揮到 AdGuard Pro 完整功能就需要麻煩使用者自己動動手設定一下喔~ ​ ​ iOS Safari 系統設定 第一次打開軟體時候,app 就會顯示讓你去系統設定啟用 Safari 過濾器 此時打開 iOS 系統的設定,往下滑一點找到「Safari」(如下圖) ​ ​ 繼續找到「內容阻擋器」,把 AdGuard Pro 所有開關都打開 ​ ​ 如此就完成 Safari 內容阻擋器的設定,接著回到 AdGuard Pro app 繼續 ​ ​ AdGuard Pro for iOS 的 Safari 過濾設定 AdGuard Pro 有分兩種過濾方式,其中一種就是蘋果 iOS 系統原生支援的 Safari 阻擋器 蘋果有開放 API,允許 app 把網頁的阻擋規則加載到 iOS Safari 內 使用者在使用 Safari 或者其他第三方 app 呼叫 Safari 瀏覽器的話都能達到瀏覽網頁過濾廣告的效果 ...

June 18, 2020 · 2 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

利用 Surge for iOS 破解台灣電信商的人工限速

​ 台灣行動網路從 3G 時代以來一直都有「吃到飽」的方案 但這種「行動網路吃到飽」方案,都會遇到一部分用戶大量 濫 使用,導致電信商基地台開始不堪負荷 正常的電信商會努力蓋基地台、增加頻寬,有些就乾脆偷偷變成「限速吃到飽」了。。。 經常在網路論壇上逛手機版的人應該都看過一種現象 白天 LTE 速度非常正常,但一到晚上高峰時段看 Youtube 或者下載速度就會變超級慢 但❗️這時候你去跑個 SpeedTest 速度又正常到不行!?讓人開始懷疑人生。。。 ​ 照理說網路塞車的時候應該所有網站都會很慢,不該是只有 SpeedTest 速度快才對 合理的懷疑電信商有白名單機制:只要系統偵測到使用者要上白名單網站時候,系統就會解放你的網速一段時間 讓你順利跑個 SpeedTest 好成績出來,隨後幾分鐘內又會把你網速鎖起來 👻 ​ 用戶就如同啞巴吃黃蓮,有苦說不出,以下場景我相信經常發生(如有雷同純屬巧合) 某用戶打電話去 OO 電信客服電話投訴網速太慢 用戶:我覺得網路很慢,看 Youtube、Netflix 都會 loading 停很久 客服:X 先生您好!請您打開 SpeedTest 測試一下速度 用戶:速度很快!有 50Mbps 以上! 客服:那就對了,我們網路正常,請您檢查您的設備或者可能是您上的網站塞車了呢!😗 用戶:。。。 客服:X 先生,如果沒其他事情,請您稍後為本次服務評分,謝謝!(掛 用戶:。。。😱 ​ 破解電信商的人工限速 上禮拜一篇如何突破電信商白名單機制的文章被貼到 PTT 手機版上 主要利用 python speedtest-cli 前半段程式碼獲取距離你最近距離的伺服器清單 不會去執行後半段實際測試上、下傳測速 所以跑這個小程式對於你網路速度影響不大,可以說是微乎其微,對於執行後提升的速度來講可以直接忽略不計 ​ 作者還特別拍了一段影片: ​ ...

May 4, 2020 · 1 min · jkgtw

蘋果生態圈的網路神器 Surge 4 for iOS 簡易入門教學

​ 我最早接觸 Surge 是在 2015 年 iOS App Store 剛上架就第一批入手了~ 當時我人在中國,翻牆就跟吃飯、喝水、睡覺一樣是每天都需要的 記得當時蘋果 iOS 8 剛剛開放了 NetworkExtension framework Surge 橫空出世最早支援 NetworkExtension,多樣且自由的網路策略非常強大,也是當時最佳 iOS 翻牆工具 隨著時間也有其他開發者也漸漸投入研究蘋果這種系統等級的網路框架,App Store 上漸漸多了許多選擇~ 像是小火箭(Shadowrocket)、小氣球(Loon)或者圈叉(Quantumult X),都是同類相當不錯的競品 其中又以圈叉特別厲害,最早開始支援 Scripting 的功能 後來 2016 年時候我因為搬回台灣,台灣網路無需翻牆,所以瞬間就沒有繼續用下去的動力了。。。 ​ Surge 作者在去年的時候推出一個密碼管理工具「Elpass」 所以從去年那時候開始我又會三不五時看到作者在 Surge 開發的相關進度 最近會又開始用回 Surge 是因為發現作者加入一系列強大功能 如支援 MitM、Scripting、專屬 Snell 協議與快速設定的 Module 功能。。等等 玩法已經不僅僅是翻牆代理工具而已,已經是一個功能強大完整的「網路工具」了~ ​ 強大的 iOS 平台網路工具一下吸引許多寫 Script 的大佬們投入研究,像是有針對 Netflix 的 Script 在非越獄情況下可以在官方 Netflix App 影片介紹頁,直接顯示 imdb 與 douban 的第三方評分分數 ​ 👆 如上,左邊是原本 App 內的樣子,右邊是開啟 Script 以後的樣子,紅色框框就是 ​ 類似像這種強大 Script 都有人分享在 Github 上面,沒事去多搜尋一下,你會發現新大陸~ ...

April 20, 2020 · 3 min · jkgtw