Wg-Easy:視覺化 WireGuard VPN 伺服器
- GitHub 儲存庫:wg-easy/wg-easy
Wg-Easy 是一款將高效能 WireGuard VPN 與極簡 Web 管理面板整合的開源工具。它解決了傳統 WireGuard 需在終端機手動生成金鑰與設定檔的痛點,讓你在網頁端一鍵建立連線用戶端,並透過手機掃描 QR Code 即可安全連線回家中 Homelab 內網。
主要特色
- 一鍵建立與 QR Code 掃描:在 Web 介面輸入裝置名稱即可生成設定檔,手機 App 直接掃碼連線。
- 極速與低延遲:基於 Linux 核心級的 WireGuard 協定,加密效能與傳輸速度顯著優於傳統 OpenVPN。
- 即時連線與流量監控:網頁端清楚列出所有連線裝置、最後上線時間與上下行傳輸量。
- 自動化網路轉發:容器自動處理 iptables 路由與 NAT 偽裝,不需手動編寫複雜網路規則。
部署步驟 (Docker Compose)
在 Ubuntu Server 終端機中執行:
1. 建立目錄
sudo mkdir -p /opt/stacks/wgeasy/data
cd /opt/stacks/wgeasy
2. 建立 compose.yaml
services:
wg-easy:
image: ghcr.io/wg-easy/wg-easy:latest
container_name: wg-easy
restart: unless-stopped
environment:
# 伺服器對外連線的 Public IP 或 DDNS 網域名稱 (例如 myhomelab.duckdns.org)
- WG_HOST=your_domain_or_public_ip
# Web 管理介面登入密碼 (明文或使用 bcrypt 加密字串)
- PASSWORD=your_secure_web_password
- WG_PORT=51820
- WG_DEFAULT_ADDRESS=10.8.0.x
- WG_DEFAULT_DNS=1.1.1.1
- TZ=Asia/Taipei
volumes:
- ./data:/etc/wireguard
ports:
- "51820:51820/udp" # WireGuard 協議傳輸埠號
- "51821:51821/tcp" # Web 管理介面埠號
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
- net.ipv4.ip_forward=1
注意:
- 路由器需將 UDP
51820埠號轉發至此台 VM,外網才能成功建立 VPN 連線。 WG_HOST必須填入對外可連線的實體公網 IP 或 DuckDNS 網域名稱。
3. 啟動服務
sudo docker compose up -d
使用步驟
1. 登入管理介面
在瀏覽器打開:http://<VM_IP>:51821,輸入你在環境變數中設定的 PASSWORD。
2. 新增連線裝置 (Client)
- 點擊 New Client,輸入裝置名稱(如
iPhone或MacBook)。 - 點擊 Create,系統會立即生成專屬的公私鑰與設定檔。
3. 裝置連線
- 手機端:下載 WireGuard 官方 App,點擊 + -> 掃描 QR Code,對準網頁上的 QR Code 掃描即可完成設定並一鍵連線。
- 電腦端:點擊下載
.conf設定檔,匯入 WireGuard 電腦客戶端即可連線。