内网穿透系列十五:Docker 部署 OpenVPN 攻略,集成 Web UI,实现一键式异地组网

内网穿透系列十五:Docker 部署 OpenVPN 攻略,集成 Web UI,实现一键式异地组网

奥黛丽·逐爱者
2026-07-02 / 0 评论 / 9 阅读 / 正在检测是否收录...

 

图片

一、简介

  • • 本文介绍如何利用基于 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

评论 (0)

取消