最近不小心把之前架設的 AdGuard 玩壞了,由於上次沒有留下筆記,這次把相關的架設筆記留下來,不然未來某天又玩壞了,還要再花點時間找資料。
在 Azure 上建立 Ubuntu VM 基本上沒什麼困難的,頂多就是登入用的 SSH 私鑰要留好,其他的基本上都算是簡單設定就搞定了。
遠端連線到 Linux 之後,不免俗的要先更新一下所安裝的套件,相關指令如下:
1 | # 取得遠端更新伺服器的套件檔案清單 |
安裝 Docker 相關工具
我打算使用 Docker 容器的方式來啟動 AdGuard,因此先來安裝 Docker 相關工具。
Docker 官方文件也有安裝在 Ubuntu 的詳細說明,有需要可以參考這裡。
這裡簡單節錄一下主要步驟:
- 設定 Docker 的 Apt 存放庫
1 | # Add Docker's official GPG key: |
- 安裝 Docker 相關的工具
1 | sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin |
下載 AdGuard Home 的 Docker 映像檔
AdGuard 已經將包裝好的容器放上 Docker Hub,因此我們只要簡單一個指令即可取得所需要的 Docker 映像檔
1 | sudo docker pull adguard/adguardhome |
記得使用
sudo提升權限。
關閉預設啟動的 DNS 服務
由於我會使用 AdGuard Home 所提供的 DNS 服務,因此要先把預設被開啟的 systemd-resolved 服務關閉,避免 53 Port 被占用。
1 | sudo systemctl disable systemd-resolved |
建立 Docker Compose 檔案
為了更容易管理所啟動的容器,使用 Docker Compose 來管理所啟動的容器。
這裡我會先在家目錄建立一個資料夾,例如 adguard,然後在這裡面建立 docker-compose.yml 檔案,內容如下:
1 | version: '3.7' |
在 Docker Hub 上的 AdGuard 說明中,有直接使用 Docker 啟動容器的指令,其中官方預設的啟動指令會使用很多 Port,這裡簡單說一下各個 Port 的用途:
1 | # plain DNS |
基本上沒有使用到的 Port 設定,是可以直接移除。
啟動容器
在有 docker-compose.yml 的資料夾中使用以下指令啟動
1 | sudo docker compose up -d |
設定 AdGuard Home
使用瀏覽器開啟站台,例如這台 Linux VM 對外 IP 為 180.10.10.10,則使用 http://180.10.10.10:3000 來啟動設定頁面,設定完之後,AdGuard Home Portal 則是使用 80 Port,這時候我們可以回過頭,在 docker-compose.yml 那邊將 3000 Port 關閉,之後啟動就不會對外開放 3000 Port 了。
收工
OK,打完收工。
如果之後哪天不小心又搞壞了,重裝時有更多心得或資訊,再補充到這篇文章中。
參考資料: