一、安装
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 服务重启后,客户端证书才算真正完成撤销。