目錄表

安裝 DockOVPN 的 OpenVPN Docker 方案

Alpine 3.19 需要執行以下指令

modprobe ip_tables
echo 'ip_tables' >> /etc/modules

執行後需要重新開機

安裝設定

FAQ

1.如果不想要 client 將 openvpn server 當 default gateway

vi Dockovpn/config/server.conf

將 redirect-gateway 註解掉

:
#push "redirect-gateway def1 bypass-dhcp"
:

2.如果想要讓 openvpn server 服務 Listen 在 TCP/443

  1. 修改 docker-compose.yml 將 port 由 1194:1194/udp 改成 443:443/tcp
            :
            ports:
                - 80:8080/tcp
                - 443:443/tcp
                - 5555:5555/tcp
            environment:
                - HOST_ADDR=vpn.ichiayi.com
                - HOST_TUN_PORT=443
            :
  2. 修改 Dockovpn/config/server.conf 內 port 與 proto 的設定
    port 443
    proto tcp
    dev tun
    :
  3. 修改 Dockovpn/config/client.ovpn 內 proto 的設定
    :
    proto tcp
    :
  4. 重新啟動 docker compose

    docker compose up -d

3. 如果想要將 openvpn server 的 VPN IP 由預設 10.8.0.0/24 改成其他的網段 Exp. 10.9.0.0/24

  1. 更新 Dockovpn/start.sh (用這檔案取代 https://github.com/tryweb/dockovpn/blob/master/scripts/start.sh)1)

    wget https://github.com/tryweb/dockovpn/raw/master/scripts/start.sh -O ./Dockovpn/start.sh

  2. 修改 docker-compose.yml 增加環境變數 OVPN_IP_NET=10.9.0.0/24
            :
            environment:
                - HOST_ADDR=vpn.ichiayi.com
                - HOST_TUN_PORT=443
                - HOST_TUN_PROTO=tcp
                - OVPN_IP_NET=10.9.0.0/24
            :
  3. 修改 Dockovpn/config/server.conf 內 server 的設定
    :
    server 10.9.0.0 255.255.255.0
    :
  4. 重新啟動 docker compose

    docker compose up -d

4. 如果發現用戶端無法連線, 出現 VERIFY ERROR: depth=0, error=CRL has expired

  1. 進入 dockovpn 容器內

    docker exec -it dockovpn bash

  2. 切換到憑證目錄手動更新 CRL 檔

    cd /opt/Dockovpn_data/
    easyrsa gen-crl

  3. 重新啟動 dockovpn 服務

    docker compose restart

新增與刪除 VPN Client 憑證

新增 VPN Client 憑證

刪除 VPN Client 憑證

查看目前線上的 VPN Client

安裝 openvpn-snmp-stats 強化監控

參考網址