一、部署前准备

1、部署环境:VMware ESXi 8.0 VMware官网

1.1、补充:如果用来测试,可以使用 VMware Workstation Pro

2、操作系统:Ubuntu 22.04.2 LTS (Jammy Jellyfish) Ubuntu官网

3、系统环境:Docker+Docker compose Docker官网

3.1、补充:Ubuntu快速安装Docker和Docker-compose链接—参考:5.1

4、GitHub项目地址:Kyle Manna

5、客户端软件:OpenVPN官网

6、SSH工具:MobaXterm

二、开始部署

1、拉取镜像

docker pull kylemanna/openvpn

2、配置连接IP

说明一:10.225.97.5,这个IP地址是Ubuntu上网的地址,如果你是VPS,那这里就是你的公网IP,我这是写的是我家里的内网IP。

说明二:GitHub项目里面第一步是:【OVPN_DATA=“ovpn-data-example”】,我们不用这么写,采用我下面的方式写,也就是:【/root/docker_data/openvpn/data】,因为我所有的docker项目文件存放的位置都是在/root/docker_data下,所以我新建了openvpn目录,我们可以把openvpn这个目录路径下的data卷映射到openvpn容器内部,方便后期我们维护管理,如果按照GitHub项目方式配置,不方便管理和备份docker数据。

常用服务器:

docker run -v /root/docker_data/openvpn/data:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://10.225.97.5

临时服务器【–log-driver=none】:如果你不想在服务器上产生关于此容器的日志请用下面的命令。
命令说明:【–log-driver=none】:禁用Docker日志记录功能

docker run -v /root/docker_data/openvpn/data:/etc/openvpn --log-driver=none --rm kylemanna/openvpn ovpn_genconfig -u udp://10.225.97.5

3、创建服务端证书

crl/pem加密密钥:openvpn@789,这个密钥可以自定义

docker run -v /root/docker_data/openvpn/data:/etc/openvpn --log-driver=none --rm -it kylemanna/openvpn ovpn_initpki

4、创建客户端证书

说明一:如果结尾不加nopass表示需要给证书加密,加上则表示不需要加密,最终效果可以在客户端查看。

说明二:结尾的:pass-yydy和nopass-yydy都可以自定义。

4.1、创建加密证书:pass-yydy.ovpn

证书加密密钥:yydy-ovpn-key,这个密钥可以自定义

docker run -v /root/docker_data/openvpn/data:/etc/openvpn --log-driver=none --rm -it kylemanna/openvpn easyrsa build-client-full pass-yydy

4.2、创建不加密客户端:nopass-yydy.ovpn

docker run -v /root/docker_data/openvpn/data:/etc/openvpn --log-driver=none --rm -it kylemanna/openvpn easyrsa build-client-full nopass-yydy nopass

5、创建客户端配置

5.1、需要证书密钥的OVPN

docker run -v /root/docker_data/openvpn/data:/etc/openvpn --log-driver=none --rm kylemanna/openvpn ovpn_getclient pass-yydy > pass-yydy.ovpn

5.2、不需要证书密钥的OVPN

docker run -v /root/docker_data/openvpn/data:/etc/openvpn --log-driver=none --rm kylemanna/openvpn ovpn_getclient nopass-yydy > nopass-yydy.ovpn

6、创建容器启动文件

说明:GitHub项目给的启动容器的方法是docker run模式,但是这个模式看过我之前博客的小伙伴都知道,不方便记录和管理,所以我们改成docker-compose模式,但是这次如果继续使用docker run命令转docker-compose命令的网站就不好用了,建议直接用我下面修改好的。

6.1、创建docker-compose.yaml文件

vi docker-compose.yaml

6.2、查看network_mode

docker network ls

6.3、编辑docker-compose.yaml

说明:你的需要修改network_mode参数,这里每个人都不一样,不能直接复制我的使用。

version: '3.3'
services:
    openvpn:
        container_name: openvpn
        network_mode: cf336c0ca2de
        restart: unless-stopped
        volumes:
            - './data:/etc/openvpn'
        ports:
            - '1194:1194/udp'
        cap_add:
            - NET_ADMIN
        image: kylemanna/openvpn

6.4、启动容器

docker-compose up -d

三、下载客户端配置

MobaXterm左侧可以直接下载

四、验证使用

1、验证不要证书密钥的客户端:nopass-yydy.ovpn

2、验证需要证书密钥的客户端:pass-yydy.ovpn

五、进阶版

后续完善!敬请期待!