由于上次介绍了使用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

openvpnconf

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..

vpninitpki

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..

vpnnopass

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

runopenvpn

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议