一、部署前准备
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
五、进阶版
后续完善!敬请期待!