使用Docker搭建 openvpn服务

简介

OpenVPN是一个用于创建虚拟专用网络加密通道的软件包

实践的主要过程

  • 在服务器上生成好证书密钥及配置文件,启动服务
  • 拷贝配置文件到客户端 ,启动客户端

安装openvpn服务

参考 https://github.com/kylemanna/docker-openvpn#quick-start

安装docker

sudo apt-get install docker.io

创建一个存放证书、密钥、配置文件的目录

假设目录为/home/ff/ovpn-data-example

1
mkdir /home/ff/ovpn-data-example

生成配置文件

要把<VPN.SERVERNAME.COM>换成服务器ip或域名

1
docker run -v /home/ff/ovpn-data-example:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://<VPN.SERVERNAME.COM>

生成密钥文件

在这里会要求输入密码来保护私钥
生成密钥要一定时间

1
docker run -v /home/ff/ovpn-data-example:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki

启动OpenVPN服务

1
docker run -v /home/ff/ovpn-data-example:/etc/openvpn -d -p 1194:1194/udp --cap-add=NET_ADMIN kylemanna/openvpn

生成客户端证书

CLIENTNAME 可以为你想要的名字

1
docker run -v /home/ff/ovpn-data-example:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full CLIENTNAME nopass

导出客户端配置

1
docker run -v /home/ff/ovpn-data-example:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient CLIENTNAME > CLIENTNAME.ovpn

CLIENTNAME.ovpn 拷贝到客户机上

安装客户端

以 windows为例,去https://openvpn.net/index.php/open-source/downloads.html 下载 windows的版本
自己下的是openvpn-install-2.4.2-I601.exe
安装运行后
选import file ,选上面的CLIENTNAME.ovpn,然后就可以进行连接

一键脚本

https://gist.github.com/finghine/911e133169d8eb56f8bc108c5c98f88a

执行需要一点时间
需要输几次密码

参考

https://zh.wikipedia.org/wiki/OpenVPN
https://github.com/kylemanna/docker-openvpn
https://openvpn.net/index.php/open-source/downloads.html