使用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:

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

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

OVPN_DATA="ovpn-data-test"
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)

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用官方的OpenVPN Docker镜像来启动OpenVPN服务,并启用MFA。 首先,您需要安装Docker并从Docker Hub拉取OpenVPN镜像。 ```bash docker pull kylemanna/openvpn ``` 接下来,创建一个目录以保存OpenVPN服务器的配置文件、证书、密钥等信息。 ```bash mkdir -p /opt/docker/openvpn ``` 然后,使用以下命令来生成OpenVPN服务器配置文件和证书。 ```bash docker run -v /opt/docker/openvpn:/etc/openvpn --log-driver=none --rm kylemanna/openvpn ovpn_genconfig -u udp://VPN.SERVERNAME.COM docker run -v /opt/docker/openvpn:/etc/openvpn --log-driver=none --rm -it kylemanna/openvpn ovpn_initpki ``` 注意,将`VPN.SERVERNAME.COM`替换为您的VPN服务器的域名或IP地址。 接下来,您需要为每个VPN用户生成一个帐户。 ```bash docker run -v /opt/docker/openvpn:/etc/openvpn --log-driver=none --rm -it kylemanna/openvpn easyrsa build-client-full CLIENTNAME nopass ``` 将`CLIENTNAME`替换为每个VPN用户的名称。 接下来,生成MFA密钥和QR码。 ```bash docker run -v /opt/docker/openvpn:/etc/openvpn --log-driver=none --rm -it kylemanna/openvpn ovpn_otp_user CLIENTNAME ``` 将`CLIENTNAME`替换为您要生成MFA密钥和QR码的VPN用户的名称。 现在,您可以启动OpenVPN服务器并在其中包含MFA支持。 ```bash docker run -v /opt/docker/openvpn:/etc/openvpn -d -p 1194:1194/udp --cap-add=NET_ADMIN --device=/dev/net/tun --name=openvpn kylemanna/openvpn ``` 现在,您可以使用OpenVPN客户端连接到您的VPN服务器,并使用Google Authenticator等MFA应用程序来验证您的身份。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值