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

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

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

July 14, 2020 · 1 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

如何在 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