====== 安裝 openvpn-ui (OpenVPN + 簡易 WebUI) 方案 ======
* 為解決
- [[tech/dockovpn|DockOVPN (OpenVPN Docker方案)]] 無 WebUI 可管理 VPN 帳號
- [[tech/ovpn-admin|OVPN-Admin (OpenVPN + 簡易 WebUI)]] 在 Alpine 升級到 3.23 後無法使用的議題
* 因此找到這 **[[https://github.com/d3vilh/openvpn-ui|openvpn-ui]]** 方案
* 安裝環境
* VM : 1 vCore, 1G RAM, 16G SSD
* OS : Alpine 3.23 + Docker Compose
* 規劃環境
* OpenVPN 內部網路 : 10.0.70.0/24
* 外部聯入 VPN : vpn.ichiayi.com TCP Port 443
===== 安裝設定 =====
- 建立目錄與下載相關檔案
mkdir openvpn-ui
cd openvpn-ui
mkdir -p ./config
wget https://raw.githubusercontent.com/d3vilh/openvpn-server/refs/heads/main/server.conf -O server.conf
wget https://raw.githubusercontent.com/d3vilh/openvpn-server/refs/heads/main/config/easy-rsa.vars -O config/easy-rsa.vars
wget https://raw.githubusercontent.com/d3vilh/openvpn-server/refs/heads/main/config/client.conf -O config/client.conf
wget https://github.com/tryweb/docker-compose/raw/refs/heads/main/openvpn-ui/fw-rules.sh -O fw-rules.sh
wget https://github.com/tryweb/docker-compose/raw/refs/heads/main/openvpn-ui/.env.example -O .env
wget https://github.com/tryweb/docker-compose/raw/refs/heads/main/openvpn-ui/docker-compose.yml -O docker-compose.yml
chmod a+x fw-rules.sh
- 編輯 .env 設定管理者帳號密碼
vi .env
{{repo>https://github.com/tryweb/docker-compose/raw/refs/heads/main/openvpn-ui/.env.example}}
- 啟動服務
docker compose up -d
===== 登入管理介面進行設定 =====
* Exp. http://192.168.1.8:8080 \\ {{:tech:螢幕擷取畫面_2026-01-13_110017.png?400|}}
* 設定 server
* 修改 Port -> 443, Proto -> TCP
* Push Route (Your Home subnet), Push Redirect-gateway (#註記掉避免所有流量都往 vpn 走), Custom Option Three (增加需要走 vpn 的網段路由)
* ++看相關畫面| \\ {{:tech:螢幕擷取畫面_2026-01-13_110059.png|}} \\ {{:tech:螢幕擷取畫面_2026-01-13_110447.png|}} \\ {{:tech:螢幕擷取畫面_2026-01-13_110539.png|}} \\ {{:tech:螢幕擷取畫面_2026-01-13_110629.png|}}++
* 設定 client
* 修改 Connection Address (改成實際對外 Domain Name 或 IP), Connection Port -> 443, Proto -> tcp
* Redirect Gateway (#註記掉避免所有流量都往 vpn 走)
* ++看相關畫面| \\ {{:tech:螢幕擷取畫面_2026-01-13_110715.png|}} \\ {{:tech:螢幕擷取畫面_2026-01-13_110919.png|}}++
* 設定憑證預設資料
* 修改 EASYRSA_REQ_COUNTRY -> TW, EASYRSA_REQ_PROVINCE -> TW, EASYRSA_REQ_CITY-> Taipei
* EASYRSA_REQ_ORG (自己的公司), EASYRSA_REQ_EMAIL (自己的Email), EASYRSA_REQ_OU (自己的部門)
* ++看相關畫面| \\ {{:tech:螢幕擷取畫面_2026-01-13_111005.png|}} \\ {{:tech:螢幕擷取畫面_2026-01-13_111137.png|}}++
* 重啟容器讓設定生效 \\ {{:tech:螢幕擷取畫面_2026-01-13_111241.png?1000|}}
==== 建立 VPN 用戶憑證 ====
* {{:tech:螢幕擷取畫面_2026-01-13_111311.png?1000|}}
* 輸入用戶相關資訊 Exp. Name -> Jonathan, Client Email -> jonathan@mail.com
* ++看相關畫面| \\ {{:tech:螢幕擷取畫面_2026-01-13_111503.png|}}++
* 下載用戶連線憑證
* ++看相關畫面| \\ {{:tech:螢幕擷取畫面_2026-01-13_111553.png|}} \\ {{:tech:螢幕擷取畫面_2026-01-13_111635.png|}}++
==== 查看用戶連線狀態 =====
* {{:tech:螢幕擷取畫面_2026-01-13_122011.png?1000|}}
===== 參考網址 =====
* https://github.com/d3vilh/openvpn-ui
{{tag>openvpn}}