
一、简介
• 本文介绍如何利用基于 Docker 封装的 openvpn 镜像快速实现异地组网 • 集成了 Web UI,可实现在线授权访问,在线调整openvpn客户端、服务端配置,在线管理客户端连接证书配置 • 基于企业级的 openvpn 工具生态,可靠、稳定、安全,各种操作系统的连接客户端一键接入虚拟网络 • 开源项目参考:https://github.com/d3vilh/openvpn-server • OpenVPN 异地组网拓扑图参考 
二、安装与使用
1. 快速搭建 openvpn-server、可视化Web UI服务
• 克隆仓库,该仓库已经配置好各种启动配置
git clone https://github.com/d3vilh/openvpn-server.git• 进入openvpn-server目录,查看编辑目录下的docker-compose.yml配置文件
version: "3.5"
services:
openvpn:
container_name: openvpn
# If you want to build your own image with docker-compose, uncomment the next line, comment the "image:" line and run "docker-compose build" following by "docker-compose up -d"
# build: .
image: d3vilh/openvpn-server:latest
privileged: true
ports:
- "1194:1194/udp" # openvpn UDP port
- "1194:1194/tcp" # openvpn TCP port
# - "2080:2080/tcp" # management port. uncomment if you would like to share it with the host
environment:
TRUST_SUB: "10.0.70.0/24"
GUEST_SUB: "10.0.71.0/24"
HOME_SUB: "192.168.88.0/24"
volumes:
- ./pki:/etc/openvpn/pki
- ./clients:/etc/openvpn/clients
- ./config:/etc/openvpn/config
- ./staticclients:/etc/openvpn/staticclients
- ./log:/var/log/openvpn
- ./fw-rules.sh:/opt/app/fw-rules.sh
- ./checkpsw.sh:/opt/app/checkpsw.sh
- ./server.conf:/etc/openvpn/server.conf
cap_add:
- NET_ADMIN
restart: always
depends_on:
- "openvpn-ui"
openvpn-ui:
container_name: openvpn-ui
image: d3vilh/openvpn-ui:latest
environment:
- OPENVPN_ADMIN_USERNAME=admin #web ui登录账号,必须调整成复杂的
- OPENVPN_ADMIN_PASSWORD=gagaZush #web ui登录密码,必须调整成复杂的
privileged: true
ports:
- "18080:8080/tcp" #web ui的端口,根据需要调整外部端口
volumes:
- ./:/etc/openvpn
- ./db:/opt/openvpn-ui/db
- ./pki:/usr/share/easy-rsa/pki
- /var/run/docker.sock:/var/run/docker.sock:ro
restart: always• 配置完成,执行下面命令一键启动
docker-compose up -d成功启动截图
2. 登录管理界面,进行初始化配置,新建客户端连接配置
• 输入docker-compose.yml中配置的OPENVPN_ADMIN_USERNAME、OPENVPN_ADMIN_PASSWORD,即可登录 
登录之后,进入首页,可以实时查看服务器运行信息
• (可选)调整 openvpn-server 服务端配置,可以在线调整服务端口、协议等等,调整后保存并重启 
• (必须)调整客户端配置,需要调整IP、端口、协议等,这个只是调整模板,后面在Certificates菜单中新建客户端就是基于这个模板 
限制只有虚拟局域网的IP才走虚拟专用局域网

• 新建客户端连接配置 
创建新的客户端连接证书,设置一下英文名称、静态IP
下载xx.ovpn连接配置文件,也支持重建、取消、删除等各种操作
3. 客户端节点接入虚拟局域网
• 各种操作系统的客户端下载地址参考:https://openvpn.net/client/ 
• 也可以通过Docker容器作为客户端连接(不支持Windows)
新建客户端docker-compose.yml配置文件,内容如下:
version: '3'
services:
openvpn-client:
image: dperson/openvpn-client
restart: always
cap_add:
- NET_ADMIN # 需要此权限来修改网络设置
volumes:
- ./vpn:/vpn # 将配置文件挂载到容器内
network_mode: host把新增的客户端配置文件复制到./vpn目录内,然后一键启动
docker-compose up -d• 客户端启动之后,就能连接进入虚拟局域网,可以通过访问虚拟局域网中的IP来访问远程或异地的机器
ping一下局域网中的其他IP
访问组网中的其他机器的服务,如http服务、MySQL服务等
三、总结
• 使用该工具可以快速搭建虚拟专用网络,实现多机器异地组网 • openvpn 是成熟的企业级的VPN方案,安全稳定可靠 • 集成了 Web UI 在线管理,便于在线监控与管理,实现可观测的管控
评论 (0)