前言
本篇教大家如何架設 VPN 連回內網並阻檔廣告。使用 Docker WG-easy 更容易建立 WireGuard VPN,並只要設定相同網段,就可以連上 VPN 擋廣告。
請先安裝 Docker 和 Docker Compose。
1. 設定 Docker
以下是 WireGuard 和 AdGuard 的 docker-compose.yml
。
version: '3.8'
services:
wg-easy:
image: ghcr.io/wg-easy/wg-easy
container_name: wg-easy
environment:
- LANG=cht
- WG_HOST=公網IP
#- PASSWORD=密碼 新版 Wireguard 已停用 PASSWORD,使用哈希值取代。
- PASSWORD_HASH=哈希值密碼,設定參閱下方部落格文章教學
- PORT=51821
- WG_PORT=51820
- WG_DEFAULT_DNS=172.20.0.3
volumes:
- ./wg-easy:/etc/wireguard
ports:
- 51820:51820/udp
- 51821:51821/tcp
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
- net.ipv4.ip_forward=1
restart: unless-stopped
networks:
default:
ipv4_address: 172.20.0.2
adguardhome:
image: adguard/adguardhome
container_name: adguardhome
volumes:
- ./adguardhome/config:/opt/adguardhome/conf
- ./adguardhome/data:/opt/adguardhome/work
ports:
- 內網IP:53:53
- 內網IP:53:53/udp
- 8050:80/tcp
- 853:853/tcp
- 784:784/udp
- 5443:5443/tcp
- 5443:5443/udp
- 3000:3000/tcp
restart: unless-stopped
networks:
default:
ipv4_address: 172.20.0.3
networks:
default:
ipam:
driver: default
config:
- subnet: 172.20.0.0/16
其中 WG_DEFAULT_DNS = 172.20.0.3
、wg-easy
、adguardhome
要設成同一個網段,可以直接使用上面的值。
新版 WireGuard 已不使用
PASSWORD
,因此如果 Docker 部屬失敗請使用PASSWORD_HASH
哈希值。詳細參閱部落格文章:解決 WireGuard 無法登入、哈希值生成。
2. 開啟 Port 端口
-
UDP Port
51820
,這是 WireGuard 連線的 VPN 埠 -
TCP Port
51821
,這是透過登入 WireGuard 後來的網頁,未來已連上的話可以把它關閉提高安全性。
3. 設定 WireGuard
一切就緒之後,連線 伺服器IP:51281
,登入設定的密碼,新建 VPN 通道。
若是手機的話可以下載 WireGuard APP,然後掃描二維碼,可以建立 VPN 連線。
而 PC 的話可以去 官網 下載電腦版軟體
下載設定檔就可以匯入 WireGuard 進行 VPN 連線。
4. 設定 AdGuard Home
網址輸入 伺服器IP:3000
,進行 AdGuard 初始設定,基本上沒特別設定下一步就可以。
設定完成後就可以進入 伺服器IP:8050
,進入 AdGuard 管理介面後台。
此時當你連上 WireGuard VPN 時,擋廣告的功能也會啟用。
可以新增黑名單來阻擋廣告,以下是我正在用的
結語
我的手機使用這個方式已有一段時間,最有感的部分是它可以幫你節省電量、減少載入網頁時間。並且我可以透過 VPN 直接使用內網的服務,即使出門在外也可以安全連回來使用。強烈推薦自架伺服器使用 VPN 來保護伺服器安全。