RouterOS臨來大更新到 V7, 一併把使用了多年的Linux Kernel 3.3 更新到4.14, 也帶來更多的軟硬支援。 RouterOS 7.1 RC3 加入支援運行Docker container, 令ROS功能更豐富,如安裝 AdGuard Home或Pi-hole 來過濾廣告,用戶追蹤,惡意和不良網站等!

不過在7.1 RC5開始因安全問題所以暫時移除, 官方預計在未來會再次加回并新增下載Container Image的功能,到時就可免去在PC安裝DOCKER, 下載Container再上傳到router等的繁複步驟。到時本blog也會更新如何安裝。

!!!注意!!! 由於ROS 7.14rc4 和Container支援套件都是測試版, 所以請自擔風險!!!
我的hAP ac²目前運行了3個月的AdGuardHome 都還沒有出現問題

一. 為ROS增加Docker支援

  1. 安裝ROS 7.14rc4
  2. !!! 請先backup設定檔以防更新中出錯 (筆者用的是hAP ac²所以就下載ARM版)
  3. 安裝Container套件
    • 解壓縮把container-7.1rc4.npk套件上傳到router根目錄
    • 重啟Router
    • 如成功安裝可在 System > Packages 看到container套件
      img

二. 安裝AdGuardHome / Pi-hole的 Image

AdGuardHome / pi-hole 之間2者選1安裝
因ROS目前不支援下載Docker Image, 所以我使用了Manjaro Linux來下載
如果你是使用windows 可透過安裝 WSL | Microsoft Docs 運行Linux command

  1. 在PC安裝和啟動docker
  2. 1pacman -S docker
    2#arch linux 安裝docker指令
    
    1apt-get install docker
    2#ubuntu linux 安裝docker指令
    
    1systemctl start docker
    2#啟動Docker股務
    

  3. 下載 AdGuardHome 的 Image
  4. 記得把下面的SHA256碼更改為下方連結裹對應你router cpu架構的版本
    (下面以hAP ac²的armv7 為例 )
    [Adguardhome Docker Image(https://hub.docker.com/r/adguard/adguardhome/tags)

    1docker pull adguard/adguardhome@sha256:f7ead529ecf5720dcfa0aedb482b0a79bd7bc7848755b86f3dbaa23e304dd988
    2#把image 下載到電腦
    

    img

    1docker save adguard/adguardhome > ~/Downloads/adguardhome.tar
    2#封裝成tar檔,并儲到指定的目的地
    

  5. 上傳和安裝 AdGuardHome
  6. 把下載的tar檔(大約200MiB) 上傳到router或USB記憶體, 再在router執行下列指令
    !!! 注意!!! hAP ac²只有不到15.3MiB ROM空間,所以一定放到USB記憶體
    !!! 注意2!!! 如果你的router ROM夠大, 可把以下列指令的disk1/ 刪去, 直接安裝在router內部空間

    1/interface/veth/add name=veth1 address=172.17.0.2/16 gateway=172.17.0.1
    2/interface/bridge/add name=docker
    3/ip/address/add address=172.17.0.1/16 interface=docker
    4/interface/bridge/port add bridge=docker interface=veth1
    5/interface/list/member/add interface=docker list=LAN
    6/container/mounts/add name="etc" src="disk1/adguardhome/etc" dst="/opt/adguardhome/work"
    7/container/mounts/add name="opt" src="disk1/adguardhome/opt" dst="/opt/adguardhome/conf"
    8/container/add file=disk1/adguardhome.tar interface=veth1  root-dir=disk1/containers/  mounts=etc,opt hostname=AdGuardHome
    

  7. 啟動AdGuardHome Container
    • 查看container 狀態
      下圖左方數字是container的編號, 右方 status=extracting 為解壓中
    1/container/print
    

    img


    • 待解壓完成status 轉為stopped後, 輸入下列指令即可啟動AdGuardHome
      如果你的AdGuardHome container的編號不是0, 記得更改為對應數字
    1/container/start 0
    

    • 在瀏覽器輸入 172.17.0.2:3000 或 172.17.0.2 , 看到像下圖的歡迎網頁就代表安裝成功!!!
      img


我們還需要在router和AdGuardHome 進行一些設定才能為裝置過濾廣告, 記得閱讀下一篇~設定篇