51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

🐳 Docker 部署 OpenVPN

一、部署前准备 {#%E4%B8%80%E3%80%81%E9%83%A8%E7%BD%B2%E5%89%8D%E5%87%86%E5%A4%87}

1、部署环境:VMware ESXi 8.0 VMware官网 {#1%E3%80%81%E9%83%A8%E7%BD%B2%E7%8E%AF%E5%A2%83%EF%BC%9Avmware-esxi-8.0-vmware%E5%AE%98%E7%BD%91}

1.1、补充:如果用来测试,可以使用 VMware Workstation Pro {#1.1%E3%80%81%E8%A1%A5%E5%85%85%EF%BC%9A%E5%A6%82%E6%9E%9C%E7%94%A8%E6%9D%A5%E6%B5%8B%E8%AF%95%EF%BC%8C%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8-vmware-workstation-pro}

2、操作系统:Ubuntu 22.04.2 LTS (Jammy Jellyfish) Ubuntu官网 {#2%E3%80%81%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%EF%BC%9Aubuntu-22.04.2-lts-(jammy-jellyfish)-ubuntu%E5%AE%98%E7%BD%91}

3、系统环境:Docker+Docker compose Docker官网 {#3%E3%80%81%E7%B3%BB%E7%BB%9F%E7%8E%AF%E5%A2%83%EF%BC%9Adocker%2Bdocker-compose-docker%E5%AE%98%E7%BD%91}

3.1、补充:Ubuntu快速安装Docker和Docker-compose链接---参考:5.1 {#3.1%E3%80%81%E8%A1%A5%E5%85%85%EF%BC%9Aubuntu%E5%BF%AB%E9%80%9F%E5%AE%89%E8%A3%85docker%E5%92%8Cdocker-compose%E9%93%BE%E6%8E%A5%E2%80%94%E5%8F%82%E8%80%83%EF%BC%9A5.1}

4、GitHub项目地址:Kyle Manna {#4%E3%80%81github%E9%A1%B9%E7%9B%AE%E5%9C%B0%E5%9D%80%EF%BC%9Akyle-manna}

5、客户端软件:OpenVPN官网 {#5%E3%80%81%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%BD%AF%E4%BB%B6%EF%BC%9Aopenvpn%E5%AE%98%E7%BD%91}

6、SSH工具:MobaXterm {#6%E3%80%81ssh%E5%B7%A5%E5%85%B7%EF%BC%9Amobaxterm}

二、开始部署 {#%E4%BA%8C%E3%80%81%E5%BC%80%E5%A7%8B%E9%83%A8%E7%BD%B2}

1、拉取镜像 {#1%E3%80%81%E6%8B%89%E5%8F%96%E9%95%9C%E5%83%8F}

docker pull kylemanna/openvpn

2、配置连接IP {#2%E3%80%81%E9%85%8D%E7%BD%AE%E8%BF%9E%E6%8E%A5ip}

说明一: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、创建服务端证书 {#3%E3%80%81%E5%88%9B%E5%BB%BA%E6%9C%8D%E5%8A%A1%E7%AB%AF%E8%AF%81%E4%B9%A6}

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

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

4、创建客户端证书 {#4%E3%80%81%E5%88%9B%E5%BB%BA%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%AF%81%E4%B9%A6}

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

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

4.1、创建加密证书:pass-yydy.ovpn {#4.1%E3%80%81%E5%88%9B%E5%BB%BA%E5%8A%A0%E5%AF%86%E8%AF%81%E4%B9%A6%EF%BC%9Apass-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 {#4.2%E3%80%81%E5%88%9B%E5%BB%BA%E4%B8%8D%E5%8A%A0%E5%AF%86%E5%AE%A2%E6%88%B7%E7%AB%AF%EF%BC%9Anopass-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%E3%80%81%E5%88%9B%E5%BB%BA%E5%AE%A2%E6%88%B7%E7%AB%AF%E9%85%8D%E7%BD%AE}

5.1、需要证书密钥的OVPN {#5.1%E3%80%81%E9%9C%80%E8%A6%81%E8%AF%81%E4%B9%A6%E5%AF%86%E9%92%A5%E7%9A%84ovpn}

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 {#5.2%E3%80%81%E4%B8%8D%E9%9C%80%E8%A6%81%E8%AF%81%E4%B9%A6%E5%AF%86%E9%92%A5%E7%9A%84ovpn}

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

6、创建容器启动文件 {#6%E3%80%81%E5%88%9B%E5%BB%BA%E5%AE%B9%E5%99%A8%E5%90%AF%E5%8A%A8%E6%96%87%E4%BB%B6}

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

6.1、创建docker-compose.yaml文件 {#6.1%E3%80%81%E5%88%9B%E5%BB%BAdocker-compose.yaml%E6%96%87%E4%BB%B6}

vi docker-compose.yaml

6.2、查看network_mode {#6.2%E3%80%81%E6%9F%A5%E7%9C%8Bnetwork_mode}

docker network ls

6.3、编辑docker-compose.yaml {#6.3%E3%80%81%E7%BC%96%E8%BE%91docker-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、启动容器 {#6.4%E3%80%81%E5%90%AF%E5%8A%A8%E5%AE%B9%E5%99%A8}

docker-compose up -d

三、下载客户端配置 {#%E4%B8%89%E3%80%81%E4%B8%8B%E8%BD%BD%E5%AE%A2%E6%88%B7%E7%AB%AF%E9%85%8D%E7%BD%AE}

MobaXterm左侧可以直接下载

四、验证使用 {#%E5%9B%9B%E3%80%81%E9%AA%8C%E8%AF%81%E4%BD%BF%E7%94%A8}

1、验证不要证书密钥的客户端:nopass-yydy.ovpn {#1%E3%80%81%E9%AA%8C%E8%AF%81%E4%B8%8D%E8%A6%81%E8%AF%81%E4%B9%A6%E5%AF%86%E9%92%A5%E7%9A%84%E5%AE%A2%E6%88%B7%E7%AB%AF%EF%BC%9Anopass-yydy.ovpn}

2、验证需要证书密钥的客户端:pass-yydy.ovpn {#2%E3%80%81%E9%AA%8C%E8%AF%81%E9%9C%80%E8%A6%81%E8%AF%81%E4%B9%A6%E5%AF%86%E9%92%A5%E7%9A%84%E5%AE%A2%E6%88%B7%E7%AB%AF%EF%BC%9Apass-yydy.ovpn}

五、进阶版 {#%E4%BA%94%E3%80%81%E8%BF%9B%E9%98%B6%E7%89%88}

后续完善!敬请期待!

赞(2)
未经允许不得转载:工具盒子 » 🐳 Docker 部署 OpenVPN