使用 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