OpenVPN server in a Docker container complete with an EasyRSA PKI CA.

Docker 容器,搭建 OpenVPN 服务,使用 EasyRSA PKI CA 证书加密的 VPN(虚拟专用网络)。

安装 docker

拉取 OpenVPN 镜像

docker pull kylemanna/openvpn

配置文件

mkdir -p /home/e.c./openvpn
OVPN_DATA="/home/e.c./openvpn"
[root@d0o0bz ~]# echo $OVPN_DATA
/home/e.c./openvpn
生成配置文件

配置文件,vpn.d0o0bz.cn修改为公网 IP / 域名

docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm kylemanna/openvpn ovpn_genconfig -u udp://vpn.d0o0bz.cn
生成密钥文件
docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm -it kylemanna/openvpn ovpn_initpki

需要设置密码,按提示操作即可。

客户端证书

生成没有密码的客户端证书,ClientEC可自行修改

docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm -it kylemanna/openvpn easyrsa build-client-full ClientEC nopass

导出客户端配置,带有嵌入式证书的客户机配置

docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm kylemanna/openvpn ovpn_getclient ClientEC > $OVPN_DATA/ClientEC.ovpn

下载证书到本地,可使用scp命令,或者 Xftp

启动 OpenVPN 服务

docker run -v $OVPN_DATA:/etc/openvpn -d -p 1194:1194/udp --cap-add=NET_ADMIN kylemanna/openvpn

防火墙 / 安全规则

客户端配置

源码:
https://github.com/OpenVPN/openvpn-gui/releases

在 OpenVPN 安装目录下,有个config目录,将服务器上的下载的 ClientEC.ovpn,放在该目录下,运行 OpenVPN GUI,右键 ClientEC 连接connect。

下载地址:


[为隐藏内容,请登录(login)以显示!]

Tips

Options error

Options error: Unrecognized option or missing or extra parameter(s) in [PUSH-OPTIONS]:1: block-outside-dns (2.4.7)

解决方法:


[为隐藏内容,请登录(login)以显示!]

证书口令


[为隐藏内容,请登录(login)以显示!]