当前位置:   article > 正文

使用openvpn docker及frp docker工具构建虚拟专业网络(V-P-N)

使用openvpn docker及frp docker工具构建虚拟专业网络(V-P-N)

图片

借助Docker和OpenVPN技术,您可以在短时间内设置并运行VPN服务器,并保证您的服务器安全。

运行环境

Ubuntu 16.04 TLS Docker version 19.03.8, build afacb8b7f0 OpenVPN Android Client 0.7.43

图片

创建OpenVPN Docker容器

  1. 1. 安装Docker:如果您的系统上没有安装Docker,请先按照适用于您的操作系统的指南安装Docker。在Ubuntu上,可以使用以下命令安装Docker:

  1. sudo apt update
  2. sudo apt install docker.io
  1. 1. 获取OpenVPN Docker镜像:使用以下命令从Docker Hub上获取OpenVPN镜像:

sudo docker pull kylemanna/openvpn
  1. 1. 创建OpenVPN配置目录:创建一个目录用于保存OpenVPN配置文件和证书:

  1. OVPN_DATA="ovpn-data-test"
  2. docker volume create --name $OVPN_DATA

图片

执行上述命令后,会在docker默认数据及配置保存目录/var/lib/docker/volumes下创建openvpn的配置目录ovpn-data-test

  1. 1. 初始化OpenVPN配置:使用以下命令初始化OpenVPN配置和证书。替换YourPublicIP.com为您希望访问OpenVPN服务器的公共IP地址或域名。

sudo docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm kylemanna/openvpn ovpn_genconfig -u udp://YourPublicIP.com

如果你是本地创建VPN server,那么这里YourPublicIP.com 应该填写你本地IP地址。

图片

生成安全证书并运行OpenVPN server

  1. 1. 生成OpenVPN服务器证书:使用以下命令生成OpenVPN服务器的证书和密钥。

sudo docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki

输入"yes",然后按Enter键,如下所示,以启动OpenVPN PKI系统。

图片

输入CA证书密码,或者输入Enter

图片

为CA证书输入一个名称,或者输入Enter

图片

输入在第2步设置的CA密码,以检查请求是否匹配签名。

图片

再次输入密码生成ca私钥

图片

2.使用以下命令启动OpenVPN服务器:

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

图片

--cap-add=NET_ADMIN参数通过修改Docker默认不授予的网络接口来应用额外的Linux能力。

生成OpenVPN client证书

  1. 1. 生成客户端配置文件:使用以下命令生成OpenVPN客户端配置文件。将CLIENTAPP替换为您希望的客户端名称。

sudo docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full CLIENTAPP nopass

图片

sudo docker run -v $OVPN_DATA:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient CLIENTAPP > CLIENTAPP.ovpn

将生成的CLIENTAPP.ovpn客户端证书拷贝到你的Android Client。

现在,您已经成功安装了OpenVPN服务器,并生成了一个客户端配置文件。将CLIENTAPP.ovpn文件发送给您的客户端,并使用OpenVPN客户端连接到您的OpenVPN服务器即可。

图片

VPN server内网穿透

如果openvpn server是在局域网内部署,则还需要使用frp工具进行穿透,关于frp内网穿透内容参考如下:

https://blog.csdn.net/u011897062/article/details/131764782

具体到本文中的openvpn frp配置及命令如下: 服务端:frps frps.init文件不需要修改,需要在启动命令中增加7002端口的映射

图片

客户端: frpc /opt/frpc.init增加vpn配置

图片

 

docker运行命令增加1194映射

docker run --restart=always -d   --network host   -v /opt/frpc.ini:/etc/frp/frpc.ini   -p 80:80/tcp  -p 1194:1194/udp  --name frpc   snowdreamtech/frpc

CLIENTAPP.ovpnremote 0.0.0.0 7002 udp 需要修改为remote PublicIP.com 7002 udp

图片

OpenVPN 使用Web UI管理

为了方便OpenVPN server的管理,官方提供了Web UI管理页面

  • • 下载openvpn-as docker 我们仍然使用docker来安装,命令如下:

docker pull linuxserver/openvpn-as

图片

  • • 创建docker容器

docker create --name=openvpn-as --restart=always -v /home/docker/openvpn-as/config:/config -e INTERFACE=eth0 -e PGID=1001 -e PUID=1001 -e TZ=Africa/Nairobi --net=host --privileged linuxserver/openvpn-as

图片

  • • 启动openvpn-as容器

docker start openvpn-as
  • • 登录Web UI 使用https://YourIP:943/admin登录admin管理页面

    注意: 默认账号密码为 adminpassword

    图片

    登录 openvpn-as后效果如下:

    图片

     

     

 

配置DNS以获得更快和更安全的连接

目前,您的OpenVPN Access Server已经正确工作。但为了提高VPN服务器的性能,您需要配置DNS。

要配置DNS,您需要访问OpenVPN服务器的Web界面,并使用Google或您喜欢的DNS地址更新DNS设置。Google提供了最快速的DNS服务器,您将在您的OpenVPN Access Server中使用它们。

  1. 1. 在OpenVPN Access Server仪表板的CONFIGURATION选项卡下,点击左侧面板中的VPN设置。

滚动到DNS设置部分,启用“Have clients use Specific DNS servers”选项,如下所示。

图片

  1. 1. 接下来,更新主DNS服务器(8.8.8.8)和次DNS服务器(8.8.8.4)为Google DNS地址,然后点击“Save Settings”保存更改。

图片

  1. 1. 保存更改后,点击“Update Running Server”重新启动服务器,以使更改生效。

图片

  1. 1. 现在,在您的Linux机器上导航到OpenVPN Access Server(例如https://YourIP:943/admin)。将YourIP替换为您服务器的IP地址。如果配置正确,您将看到如下所示的相同页面。

使用默认凭据(用户名:admin,密码:password)登录。

图片

1. 点击任何平台图标下载客户端应用程序,然后点击“Yourself (user-locked profile)”下载客户端.ovpn文件。

图片

  1. 2. 最后,启动您下载的OpenVPN客户端,并像在“使用证书保护OpenVPN客户端”教程的最后一步中那样导入.ovpn文件。

图片

结论

托管您的VPN服务器绝不应该是一个复杂的任务,更不用说保护服务器连接了。幸运的是,OpenVPN Docker就在眼前,拯救了一切。在本教程中,您已经学会了在Ubuntu上使用Docker安装、设置和配置OpenVPN。您还了解了如何通过OpenVPN CA和客户端证书保护Docker容器中的OpenVPN访问。

除了通过命令行界面访问OpenVPN服务器外,您现在还可以通过OpenVPN Access Server的Web界面进行可视化操作。通过为OpenVPN客户端应用程序生成客户端配置文件,您已经实现了快速部署VPN。

Github

https://github.com/kylemanna/docker-openvpn

图片

 

 

参考

(Fundamentals of Running OpenVPN in Docker on Ubuntu) https://adamtheautomator.com/openvpn-in-docker/

(frp+openvpn+docker实现内网穿透) https://www.jianshu.com/p/8bffa1046008

https://medium.com/@gurayy/set-up-a-vpn-server-with-docker-in-5-minutes-a66184882c45

转自:使用openvpn docker及frp docker工具构建虚拟专业网络(V-P-N)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/205606
推荐阅读
相关标签
  

闽ICP备14008679号