由于上次介绍了使用AWS的Client-VPN服务来实现该区域内网实例资源的访问。那么如果不是该区域的内网资源要如何实现白名单的访问呢,这时候我们就可以用到万能的OPENVPN来实现该场景的需求了。同样,由于用的是Docker环境,所以本次还是通过以Docker的方式来安装OPENVPN。话不多说,进入正题吧。
1.拉取镜像和创建挂载目录
大家都知道国内网络环境的原因,我们的OPENVPN不能保证创建好了后就可以一劳永逸地使用了。相反会受到各种原因的封禁,比如端口封禁,或者是直接IP封禁。如果是端口封禁的话,那么我们因为设置了挂载目录,配置文件都做了持久化处理,所以只需要重新启动新端口就可以了。当然,如果是IP封禁的话,那就不要犹豫,直接换服务器吧。
#拉取镜像(默认是最新版本)
docker pull kylemanna/openvpn:latest
#创建挂载目录
mkdir -p /home/openvpn
mkdir -p /home/openvpn/conf
2.生成配置文件(公网IP就填写自己服务器的公网IP即可)
docker run -v /home/openvpn:/etc/openvpn --rm kylemanna/openvpn:latest ovpn_genconfig -u tcp://公网IP
3.生成密钥文件
docker run -v /home/openvpn:/etc/openvpn --rm -it kylemanna/openvpn:latest ovpn_initpki
输入私钥密码(输入时是看不见的):
Enter PEM pass phrase:Rhm8602301..
再输入一遍:
Verifying - Enter PEM pass phrase:Rhm8602301..
输入一个CA名称(可直接回车选择默认)
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:
输入刚才设置的私钥密码(输入完成后会再让输入一次)
Enter pass phrase for /etc/openvpn/pki/private/ca.key:Rhm8602301..
4.生成客户端证书(这里的Webuysg-DB改成你想要的名字)
docker run -v /home/openvpn:/etc/openvpn --rm -it kylemanna/openvpn:latest easyrsa build-client-full Webuysg-DB nopass
#nopass即为无密码验证登录
#输入刚才设置的密码
Enter pass phrase for /etc/openvpn/pki/private/ca.key:Rhm8602301..
5.导出客户端配置
docker run -v /home/openvpn:/etc/openvpn --rm kylemanna/openvpn:latest ovpn_getclient Webuysg-DB > /home/openvpn/conf/Webuysg-DB.ovpn
6.启动OpenVPN服务
docker run --name openvpn -v /home/openvpn:/etc/openvpn -d -p 5687:5687/tcp --cap-add=NET_ADMIN kylemanna/openvpn:latest