差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

下次修改
前次修改
tech:dockovpn [2023/10/30 00:16] – 建立 jonathantech:dockovpn [2024/06/25 13:48] (目前版本) – 可參考 安裝 ovpn-admin (OpenVPN + 簡易 WebUI) 方案 jonathan
行 1: 行 1:
 ====== 安裝 DockOVPN 的 OpenVPN Docker 方案 ====== ====== 安裝 DockOVPN 的 OpenVPN Docker 方案 ======
 +
 +<WRAP center round tip 40%>
 +可參考 **[[ovpn-admin]]**
 +</WRAP>
 +
   * 因為之前主要的 OpenVPN Docker 方案(Exp. [[https://hub.docker.com/r/kylemanna/openvpn/|kylemanna/openvpn]], [[https://hub.docker.com/r/linuxserver/openvpn-as|linuxserver/openvpn-as]] 似乎都已不再更新, 因此找了 [[https://github.com/dockovpn/dockovpn|DockOVPN]] 來安裝使用   * 因為之前主要的 OpenVPN Docker 方案(Exp. [[https://hub.docker.com/r/kylemanna/openvpn/|kylemanna/openvpn]], [[https://hub.docker.com/r/linuxserver/openvpn-as|linuxserver/openvpn-as]] 似乎都已不再更新, 因此找了 [[https://github.com/dockovpn/dockovpn|DockOVPN]] 來安裝使用
   * 目前 DockOVPN 版本是 v1.13.0 (Release:2023-10-28) 系統算是穩定, 但實際使用還是需要一些手動程序   * 目前 DockOVPN 版本是 v1.13.0 (Release:2023-10-28) 系統算是穩定, 但實際使用還是需要一些手動程序
行 6: 行 11:
     * OS : Alpine 3.18 + Docker Compose     * OS : Alpine 3.18 + Docker Compose
     * 參考 [[tech/alpine_docker]]     * 參考 [[tech/alpine_docker]]
 +
 +<note tip> 
 +**Alpine 3.19 需要執行以下指令** <cli>
 +modprobe ip_tables
 +echo 'ip_tables' >> /etc/modules
 +</cli>執行後需要重新開機
 +</note>
  
 ===== 安裝設定 ===== ===== 安裝設定 =====
行 26: 行 38:
         environment:         environment:
             - HOST_ADDR=vpn.ichiayi.com             - HOST_ADDR=vpn.ichiayi.com
 +            - HOST_TUN_PORT=1194
         container_name: dockovpn         container_name: dockovpn
         #volumes:         #volumes:
行 90: 行 103:
 vi ./docker-compose.yml vi ./docker-compose.yml
 </cli><file> </cli><file>
-version'3' +:
-services: +
-    dockovpn: +
-        image: alekslitvinenk/openvpn:v1.13.0 +
-        cap_add: +
-            - NET_ADMIN +
-        ports: +
-            - 80:8080/tcp +
-            - 1194:1194/udp +
-            - 5555:5555/tcp +
-        environment: +
-            - HOST_ADDR=vpn.ichiayi.com+
         container_name: dockovpn         container_name: dockovpn
         volumes:         volumes:
行 112: 行 114:
 </cli> </cli>
  
-<note tip> +==== FAQ ==== 
-**如果不想要 client 將 openvpn server 當 default gateway**<cli>+=== 1.如果不想要 client 將 openvpn server 當 default gateway === 
 +<cli>
 vi Dockovpn/config/server.conf vi Dockovpn/config/server.conf
 </cli>將 redirect-gateway 註解掉<file> </cli>將 redirect-gateway 註解掉<file>
行 120: 行 123:
 : :
 </file> </file>
-</note> 
  
 +=== 2.如果想要讓 openvpn server 服務 Listen 在 TCP/443 ===
 +  - 修改 docker-compose.yml 將 port 由 1194:1194/udp 改成 443:443/tcp<file>
 +        :
 +        ports:
 +            - 80:8080/tcp
 +            - 443:443/tcp
 +            - 5555:5555/tcp
 +        environment:
 +            - HOST_ADDR=vpn.ichiayi.com
 +            - HOST_TUN_PORT=443
 +        :
 +</file>
 +  - 修改 Dockovpn/config/server.conf 內 port 與 proto 的設定<file>
 +port 443
 +proto tcp
 +dev tun
 +:
 +</file>
 +  - 修改 Dockovpn/config/client.ovpn 內 proto 的設定<file>
 +:
 +proto tcp
 +:
 +</file>
 +  - 重新啟動 docker compose <cli>
 +docker compose up -d
 +</cli>
 +
 +=== 3. 如果想要將 openvpn server 的 VPN IP 由預設 10.8.0.0/24 改成其他的網段 Exp. 10.9.0.0/24 ===
 +  - 更新 Dockovpn/start.sh (用這檔案取代 https://github.com/tryweb/dockovpn/blob/master/scripts/start.sh)((已發出 PR https://github.com/dockovpn/dockovpn/pull/232)) <cli>
 +wget https://github.com/tryweb/dockovpn/raw/master/scripts/start.sh -O ./Dockovpn/start.sh
 +</cli>
 +  - 修改 docker-compose.yml 增加環境變數 OVPN_IP_NET=10.9.0.0/24<file>
 +        :
 +        environment:
 +            - HOST_ADDR=vpn.ichiayi.com
 +            - HOST_TUN_PORT=443
 +            - HOST_TUN_PROTO=tcp
 +            - OVPN_IP_NET=10.9.0.0/24
 +        :
 +</file>
 +  - 修改 Dockovpn/config/server.conf 內 server 的設定<file>
 +:
 +server 10.9.0.0 255.255.255.0
 +:
 +</file>
 +  - 重新啟動 docker compose <cli>
 +docker compose up -d
 +</cli>
 +
 +=== 4. 如果發現用戶端無法連線, 出現 VERIFY ERROR: depth=0, error=CRL has expired ===
 +  * 表示 CRL 自動更新異常, 需要重新產生
 +  - 進入 dockovpn 容器內<cli>
 +docker exec -it dockovpn bash
 +</cli>
 +  - 切換到憑證目錄手動更新 CRL 檔<cli>
 +cd /opt/Dockovpn_data/
 +easyrsa gen-crl
 +</cli>
 +  - 重新啟動 dockovpn 服務<cli>
 +docker compose restart
 +</cli>
 ===== 新增與刪除 VPN Client 憑證 ===== ===== 新增與刪除 VPN Client 憑證 =====
 ==== 新增 VPN Client 憑證 ==== ==== 新增 VPN Client 憑證 ====
行 143: 行 206:
   * <cli>   * <cli>
 cat ./Dockovpn/openvpn-status.log cat ./Dockovpn/openvpn-status.log
 +</cli>
 +
 +===== 安裝 openvpn-snmp-stats 強化監控 =====
 +  * 參考 - https://github.com/tryweb/-openvpn-snmp-stats/tree/alpine3
 +  * 安裝 openvpn.py <cli>
 +apk add --update --no-cache python3
 +ln -sf python3 /usr/bin/python
 +mkdir -p /opt/openvpn-snmp-stats/db
 +cd /opt/openvpn-snmp-stats
 +wget https://raw.githubusercontent.com/tryweb/-openvpn-snmp-stats/alpine3/openvpn.py
 +chmod a+x openvpn.py
 +</cli>安裝後可以先執行驗證 Exp.<cli>
 +openvpn-61:~# /opt/openvpn-snmp-stats/openvpn.py
 +{"errorString": "", "error": 0, "version": 1, "data": {"tun0": {"iv9614": {"minutes_since_last_handshake": 506, "bytes_rcvd": 106350, "bytes_sent": 78677}, "jonathan_pixel5": {"minutes_since_last_handshake": 535, "bytes_rcvd": 23584, "bytes_sent": 37931}, "jonathan": {"minutes_since_last_handshake": 536, "bytes_rcvd": 7086888, "bytes_sent": 41041820}, "UNDEF": {"minutes_since_last_handshake": 495, "bytes_rcvd": 0, "bytes_sent": 0}}}}
 +</cli>
 +  * 設定 snmpd.conf <cli>
 +vi /etc/snmp/snmpd.conf
 +</cli><file>
 +:
 +
 +extend wireguard /opt/openvpn-snmp-stats/openvpn.py
 +</file><cli>
 +service snmpd restart
 </cli> </cli>
  
 ===== 參考網址 ===== ===== 參考網址 =====
   * https://github.com/dockovpn/dockovpn   * https://github.com/dockovpn/dockovpn
 +  * https://github.com/dockovpn/dockovpn/issues/184
  
 {{tag>openvpn vpn}} {{tag>openvpn vpn}}
  • tech/dockovpn.1698596210.txt.gz
  • 上一次變更: 2023/10/30 00:16
  • jonathan