iT邦幫忙

2021 iThome 鐵人賽

DAY 28
0
Arm Platforms

OpenWRT開源路由兩三事系列 第 28

Day_28 Ad blocking

相信有許多人很討厭網頁廣告,會在網頁上安裝廣告攔截器如AdBlock、AdGuard等。但有很多裝置或軟體沒有這樣的擴充可以安裝,那我們何不直接在路由器上直接攔截呢?在openwrt上有數個套件可以安裝與執行,多數都是透過解析DNS時直接擋下廣告網站的內容,相比網頁瀏覽器上的阻擋,廣告紀錄檔也得不斷更新才能有較好的效果。來試試吧~

adblock

也可以選simple-adblock,功能較簡單易用,而adblock功能設定較多。

  • 安裝

    opkg ipdate
    opkg install adblock 
    opkg install luci-app-adblock
    
  • 設定

    • 其實安裝完就自動會開啟功能,如果沒有就在介面中開啟
    • 自行可以設定黑/白名單,如果有誤擋或想要自行增加防堵的網址都可以加上。記得儲存後需要重啟才會生效(指令:/etc/init.d/adblock restart)
    • 把wiki加入黑名單,網頁就開不起來了
  • 測試。

    • 上下圖是功能開啟的對比
    • 不是所有廣告都能擋得住,youtybe還是有前置短片與廣告欄

AdGuard

安裝與設定會相對更複雜一些,套件庫中雖然有AdGuardhome,不過版本不會是最新,路徑也不太相同。我還是依照教學由github上的進行安裝與執行。

  • 安裝

    • 先確認所使用硬體,可到openwrt查詢cpu硬體資訊,或以指令uname -a查詢
    • AdGuardHome下載連結中找適合自己硬體的連結。openwrt/pi 4b可以選Linux ARM:64-bit版本,並複製連結
    • 安裝指令
    # 新增資料夾及移動位置
    mkdir /opt/ && cd /opt
    # 下載壓縮包,連結需要匹配硬體的版本
    wget -c https://static.adguard.com/adguardhome/beta/AdGuardHome_linux_arm64.tar.gz
    # 解壓縮,名稱也是看下載的名字替換
    tar xfvz AdGuardHome_linux_arm64.tar.gz
    # 移除壓縮包節省空間
    rm AdGuardHome_linux_arm64.tar.gz
    
    • 直接啟動
    /opt/AdGuardHome/AdGuardHome
    
  • AdGuard 設定

    • 以openwrt的IP:3000,進入設定頁面
    • 調整IP與服務的port,若有衝突port也會提示
    • 輸入帳號與密碼
    • 完成所有設定後,要以新port進入頁面
    • 開啟設定AdGuard瀏覽安全服務
    • 設定阻擋表。
    • 還有許多熱門社群或網站可以直接阻擋,網管必備
  • openwrt 設定

    • 網路->DHCP與DNS 設定。加入AdGuard DNS
    • 防火牆設定。強制所有連接的設備使用新的DNS端口
  • 用戶端與測試

    • 因為我將AdGuard架設在架在區網內的pi,所以電腦端得將gateway指向這台設備
    • 測試
    • 可以回到控制頁面看看阻擋狀況

Troubleshooting

adblock 更新失敗

安裝教學有提到需要安裝libustream-mbedtls後才提供https更新廣告列表,但我安裝失敗。除套件包名稱已經不同之外,核心套件已存在於其他套件包中。若久不維護阻擋效果就會不好,再找方式解決。

wget版本

原先使用opkg install wget安裝wget指令,從網路上下載網頁、檔案或目錄等功能。目前替換成wget-nosslwget-ssl或是也可用uclient-fetch套件的功能。

AdGuard

前面使用的方式是直接啟動,重啟openwrt或關閉ssh登入會失效。

所以若要長期使用需要進行安裝與設定背景運作等操作。

or install it directly with:
/opt/AdGuardHome/AdGuardHome -s install

It is also possible to run it in the background (manually started):
opkg update && opkg install coreutils-nohup
nohup /mnt/usb/AdGuardHome/AdGuardHome > /dev/null 2>&1&

DNS轉換需要維護,目前粗淺測試還是有些還無法阻擋,得再多加些AD的規則,預設上面已經有很多可以選擇,或參考加入下兩個網址,也可以餵狗會有許多列表

https://firebog.net/
https://dbl.oisd.nl/

另如果是自家廣告,網域相同就不會有效果。

Ref.


上一篇
Day_27 Airplay
下一篇
Day_29 Docker
系列文
OpenWRT開源路由兩三事30

尚未有邦友留言

立即登入留言