基于docker搭建openvpn

一、安装
1.1拉取镜像
docker pull kylemanna/openvpn:2.4

1.2查询镜像
没有报错就查询镜像:docker images

二、执行
2.1创建目录
通过df -H查询自己系统的存储最大目录在哪里,然后再哪里创建数据目录,以防后续存储不够导致系统无法运行

这里看到是在/下面都行,那么直接在/data下面创建目录就行。

mkdir -p /data/openvpn

2.2 生成配置
1)创建配置文件:
docker run -v /data/openvpn:/etc/openvpn --rm kylemanna/openvpn:2.4 ovpn_genconfig -u udp://本机的公网ip

这里的公网ip,可以没法通过ifconfig查询

生成密钥文件:

生成证书的公钥和私钥,密钥自己确认。


docker run -v /data/openvpn:/etc/openvpn --rm -it kylemanna/openvpn:2.4 ovpn_initpki
# 输入私钥密码(输入时是看不见的):
Enter PEM pass phrase:12345678
# 再输入一遍
Verifying - Enter PEM pass phrase:12345678
# 输入一个CA名称(我这里直接回车)
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:
# 输入刚才设置的私钥密码(输入完成后会再让输入一次)
Enter pass phrase for /etc/openvpn/pki/private/ca.key:12345678

 2)生成客户端证书          
docker run -v /data/openvpn:/etc/openvpn --rm -it kylemanna/openvpn:2.4 easyrsa build-client-full 客户端名称 nopass

如:

3)导出客户端配置
docker run -v /data/openvpn:/etc/openvpn --rm kylemanna/openvpn:2.4 ovpn_getclient test01 > /data/openvpn/test01.ovpn

导出test01的内容

2.3 启动vpn服务
docker run --restart=always --name vpn -v /data/openvpn:/etc/openvpn -d -p 1194:1194/udp --cap-add=NET_ADMIN kylemanna/openvpn:2.4

启动之后查询:docker ps

进入到vpn容器

docker exec -it vpn bash

三、配置
3.1添加用户配置脚本
vim /data/openvpn/add_user.sh

#!/bin/bashread -p "please your username: " NAME

docker run -v /data/openvpn:/etc/openvpn --rm -it kylemanna/openvpn:2.4 easyrsa build-client-full $NAME nopass

docker run -v /data/openvpn:/etc/openvpn --rm kylemanna/openvpn:2.4 ovpn_getclient $NAME > /data/openvpn/conf/"$NAME".ovpn

docker restart openvpn

chmod +x /data/openvpn/add_user.sh

3.2 删除用户脚本
vim /data/openvpn/del_user.sh

#!/bin/bashread -p "Delete username: " DNAME

docker run -v /data/openvpn:/etc/openvpn --rm -it kylemanna/openvpn:2.4 easyrsa revoke $DNAME

docker run -v /data/openvpn:/etc/openvpn --rm -it kylemanna/openvpn:2.4 easyrsa gen-crl

docker run -v /data/openvpn:/etc/openvpn --rm -it kylemanna/openvpn:2.4 rm -f /etc/openvpn/pki/reqs/"DNAME".req

docker run -v /data/openvpn:/etc/openvpn --rm -it kylemanna/openvpn:2.4 rm -f /etc/openvpn/pki/private/"DNAME".key

docker run -v /data/openvpn:/etc/openvpn --rm -it kylemanna/openvpn:2.4 rm -f /etc/openvpn/pki/issued/"DNAME".crt

docker restart openvpn

chmod +x /data/openvpn/del_user.sh

3.3  防火墙添加端口
服务器防火墙,记得tcp和udp的1194都需要在防火墙上面打开

1)添加端口

firewall-cmd --zone=public --add-port=1194/tcp --permanent

firewall-cmd --zone=public --add-port=1194/udp --permanent

重新加载配置
firewall-cmd --reload

查询端口
 firewall-cmd --permanent --list-port

3.4 安全组配置
如果是云虚拟机,可能还是配置不了,那么需要配置安全组。

登录腾讯云或者阿里云配置安全组开放端口

3.5 查询端口是否打开
netstat -anto|grep 1194

四、客户端运行
4.1 导出客户端配置
 把/data/openvpn/conf下面的客户端配置文件拷贝出去,然后用openvpn客户端打开就可以正常连接了。

4.2 客户端下载
1)、Window客户端:

Downloading OpenVPN 2.4.7 (Windows 10) from FileHorse.com

2)、Android客户端:

http://www.softether.cn/d/file/2014-11-27/openvpn.apk

3)、Ios客户端:

https://apps.apple.com/us/app/openvpn-connect-openvpn-app/id590379981

4)、Linux客户端:

Now downloading: OpenVPN 2.6.8 | TechSpot

5)、各种客户端地址:

OpenVPN Download Free - 2.6.8 | TechSpot

打包下载:

https://download.csdn.net/download/p731heminyang/88618952

撤销客户端证书
# 撤销客户端证书
docker-compose run --rm openvpn easyrsa revoke client1
 


并且 ./openvpn/pki/private 目录下的 client1.key 文件也已被删除


# 生成证书撤销列表(CRL),并且额外指示 EasyRSA 更新相关数据库或索引
docker-compose run --rm openvpn easyrsa gen-crl update-db
1
2


# 重启 openvpn 服务
docker-compose up -d openvpn
1
2
注意: 完成 openvpn 服务重启后,客户端证书才算真正完成撤销。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值