Asuswrt Merlin Diversion (分享器擋廣告)
文章目錄
系統刷機有一定的風險, 可能導致手機無法開機和失去保固, 資料還會被清空, 執行前請先三思!!!
Asuswrt-Merlin 是甚麼
Asuswrt-Merlin 是個 Asus router 的 3rd party fireware, 提供了不少增強的功能, 也有很多 plugin 可以使用. 刷機的方法可參考官方文件: https://github.com/RMerl/asuswrt-merlin.ng/wiki/Installation (不過寫的滿簡單的, 建議 google 一下其他人寫的介紹)
Diversion 是甚麼
Diversion 是個可安裝在 Asuswrt Merlin 上的 AD block 軟體, 他的原理是直接在 Hub 上面裝一個 DNS server, 然後當你的 client 要查某一個 domain 的時候, 他如果發現這個 domain 在他的黑名單裡面, 就把他擋掉.
要注意的是, Diversion 為了要檔 https, 有安裝 pixelserv-tls, 可參考這個 FAQ 看一下這是甚麼東西還有他能做的事情.
安裝步驟
Asuswrt Merlin Web GUI 設定
- Asuswrt Merlin 的 Web GUI 只要把 JFFS 打開就好, 其他都得使用 command line.
Diversion 安裝
-
在上面的 JFFS 安裝好後, JFFS 一開始會掛在 /dev/sda1, 而且格式是 NTFS (可用 fdisk 看)
1admin@RT-AC66U\_B1-B898:/tmp/home/root# df 2Filesystem 1K-blocks Used Available Use% Mounted on 3/dev/root 33408 33408 0 100% / 4devtmpfs 127732 0 127732 0% /dev 5tmpfs 127836 1532 126304 1% /tmp 6/dev/mtdblock4 64256 2868 61388 4% /jffs 7/dev/sda1 60058960 11712 60047248 0% /tmp/mnt/sda1
-
安裝 amtm, 指令如下 (Asuswrt-Merlin 384.15 已內建 amtm, 不須另外安裝):
1curl -Os https://diversion.ch/amtm/amtm sh amtm
-
把 USB 格式化成 ext, 步驟如下
- 執行
/jffs/scripts/amtm
- 執行
fd
- 然後照著說明格式化, 格式化完後會重開機
- 完成後 df 如下
1admin@RT-AC66U\_B1-B898:/tmp/home/root# df 2Filesystem 1K-blocks Used Available Use% Mounted on 3/dev/root 33408 33408 0 100% / 4devtmpfs 127732 0 127732 0% /dev 5tmpfs 127836 1528 126308 1% /tmp 6/dev/mtdblock4 64256 2860 61396 4% /jffs 7/dev/sda1 59144340 184232 55955696 0% /tmp/mnt/usb
- 執行
-
一樣在 amtm 裡面執行 dc, 進行 disk check, 結果如下
-
安裝 Diversion, 在 amtm 裡面執行 '1' (可先用 'i' 指令確認一下是用 1 來安裝 Diversion). 注意, 這裡本來應該先安裝 Entware, 但如果你嘗試安裝, amtm 會建議你直接裝 Diversion, 然後他在安裝過程中會自動安裝 Entware
-
Diversion 安裝結果如下, 注意, 他移除了 LAN 的 DNS 8.8.8.8/8.8.4.4. 不過他沒有動到 WAN 的 DNS.
-
安裝 Diversion Standard
-
這邊注意, 要回到 Asuswrt-Merlin Web 設定
-
上面是寫要跳過 192.168.1.2, 但因為 pixelserv-tls 也需要 IP, 所以 192.168.1.3 也要跳過. 我後來是把 192.168.1.1~10 當成特殊用途, 所以我把 DHCP 設成從 192.168.1.11 開始分配.
-
接下來要輸入 pixelserv-tls 的 IP, 這裡就避開 DHCP 網段就好
-
選擇 log 方式, 如果你要把 log 寫下來, 就選 1
-
最後他會安裝到這個目錄 /tmp/mnt/usb/entware
特別注意
-
因為 Diversion 是使用 DNS 來 block AD, 因此 WAN 的地方可以指定 DNS
-
但 LAN 的地方必須清空, client 的 DNS 必須是 192.168.1.1. 因為所有連到這台 router 的電腦或手機, 他們的 DNS server 都必須是 192.168.1.1, 這樣 Diversion 才會有作用.
-
在 Windows 可用 ipconfig /all 檢查 DNS 是否有設定正確
Diversion 使用方法
-
使用 putty 連進去後, 執行 diversion, 看到如下畫面就是安裝成功了
-
選擇 f (follow dnsmasq.log) 可以看 log, 有以下幾種模式可以選 (實際 log 在
/tmp/mnt/sda1/entware/var/log/dnsmasq.log
, 紅色的部分要看一開始設定的名字) -
選擇 1, 可看到如下就是有成功了
-
瀏覽器會看到如下
iOS Shortcut 安裝/使用
- 要先打開安全性: 設定 -> 捷徑 -> 允許不受信任的捷徑
- 打開 https://diversion.ch/ios-shortcut.html, 選擇最新的版本
參考
Posts in this Series
- Asuswrt Merlin AdGuard Home - 針對 IP 擋某些服務
- Asuswrt Merlin AdGuard Home (分享器擋廣告)
- 在 Asuswrt-Merlin 使用 OpenVPN server
- Asuswrt Merlin Diversion + YouTube (分享器擋 YouTube 廣告)
- Asuswrt Merlin FreshJR Adaptive QoS (流量管理)
- Asuswrt Merlin Diversion (分享器擋廣告)