使用 Docker 部署 OpenVPN 服务

1. 生成配置文件

docker run -v {本地目录}:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://xx.xx.xx.xx

xx.xx.xx.xx 替换为你的服务器的公共 IP 地址或域名。

{本地目录} 替换为你宿主机上的一个具体本地路径,这个路径用来持久化存储 OpenVPN 生成的配置文件、证书和密钥等重要数据。(此替换规则后续将不再重复说明)

2. 初始化密钥文件

docker run -v {本地目录}:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki

3. 生成客户端证书

docker run -v {本地目录}:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full {客户端名称} nopass

4. 导出客户端证书

docker run -v {本地目录}:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient {客户端名称} > ./volumes/{客户端名称}.ovpn

导出的 {客户端名称} 需要与生成证书的 {客户端名称} 一致。

5. 创建 docker-compose 启动配置

services:
  openvpn:
    container_name: openvpn
    image: kylemanna/openvpn
    ports:
      - 1194:1194/udp
    volumes:
      - {本地目录}:/etc/openvpn
    cap_add:
      - NET_ADMIN
      - NET_RAW
    restart: always

6. 启动 OpenVPN 服务

docker compose up -d