剪藏#剪藏#运维小弟

零成本私有云方案:基于Docker的NAS远程访问系统构建

2025 年 5 月 3 日1 分钟
分享Twitter / XTelegram微博

✈️ OpenVPN-AS 介绍

Notion image

OpenVPN Access Server 是一个基于 OpenVPN 技术构建的企业级虚拟私人网络(VPN)解决方案。它提供安全的远程访问功能,使员工或用户能够通过互联网安全地连接到公司内部网络,确保数据传输的安全性和隐私;默认免费支持2个客户端同时连接,个人使用完全够了。

🚢 项目地址

🚀OpenVPN-AS 主要功能

  • 🚀 安全的远程访问:通过加密隧道技术,保证远程用户与公司网络之间的数据传输安全。

  • 跨平台支持:支持 Windows、Mac、Linux、iOS 和 Android 等多个操作系统,确保各类设备都能顺畅连接。

  • 🔌 易于管理:通过一个直观的 Web 界面来配置和管理 VPN 连接,无需复杂的命令行操作。

  • 👤 用户管理:支持多用户、组管理,管理员可以控制访问权限和连接策略。

  • 🌐 高可扩展性:可以通过配置集群和负载均衡来满足大规模企业的需求。

  • 🔑集成认证:支持与 LDAP、Active Directory 等目录服务集成,简化用户管理和认证流程。

🛠️ 部署 OpenVPN-AS

👻 先决条件/要求

  • 最低 512MB RAM(推荐 1GB+)

  • 具备docker,docker-compose 环境

🐳方法一:使用Docker 命令部署

-cap-add=NET_ADMIN:对容器赋予NET_ADMIN权限,容器可以配置和管理的控制网络配置权限;

JAVASCRIPT
docker run -d \
  --name=openvpn-as --device /dev/net/tun \
  --cap-add=MKNOD --cap-add=NET_ADMIN \
  -p 943:943 -p 1194:1194/udp \
  -v /home/application/openvp:/openvpn \
  --restart=unless-stopped \
  docker.cnb.cool/srebro/pidin/openvpn-as:latest

🐳方法二:使用Docker Compose部署 (推荐)

JAVASCRIPT
version'3'
services:
  openvpn-as:
    #image: openvpn/openvpn-as
    image: docker.cnb.cool/srebro/pidin/openvpn-as:latest  ##CNB镜像加速地址
    container_name: openvpn-as
    restart: always
    cap_add:
      - NET_ADMIN  #对容器赋予NET_ADMIN权限,容器可以配置和管理的控制网络配置权限
    ports:
      - "943:943"   #web控制台
      - "1194:1194/udp"   #openvpn端口,1194 udp
    volumes:
      - /home/application/openvpn:/openvpn   #数据卷持久化挂载

🛫 修改OpenVPN-AS,web控制台管理员密码

进入容器,修改web管理员的账号和密码(默认只有openvpn用户有管理员权限)

JAVASCRIPT
docker exec -it openvpn-as bash

sacli --user "openvpn" --new_pass "新密码" SetLocalPassword

🚁配置动态DDNS域名&配置映射端口

之前有分享过如何 使用 DNSpod来 实现动态域名解析、本文不再细说;具体参考见: https://srebro.cn/archives/1721891072677

  • 端口映射 【只需要映射 udp 1194 端口】

Notion image

🛫 可视化配置OpenVPN-AS服务端

有了域名之后,我们就可以去配置openvpn 的配置,把他监听在域名上,这里演示的域名是 vpn.xx.cn

  • 登录OpenVPN-AS 后台管理端

https://192.168.31.27:943/admin Username: openvpn Password: xxxxx

Notion image

  • 配置openvpn监听在域名上

Notion image

  • 配置openvpn内网IP

根具自己的配置自定义openvpn 的内网IP段,我这里演示的是 192.168.66.0/24 子网段

Notion image

  • 设置允许访问VPN内网的地址 | 禁止客户端互联网流量通过VPN路由出去上网| 允许客户端访问VPN网关IP地址上的网络服务

我家中网络都是192.168.31.0 网段,这里需要填写需要下发的子网地址 (一行写一个网段)

Notion image

  • 设置推送指定的DNS地址给客户端

指定DNS 地址为 114.114.114.114

Notion image

  • 保存配置重启服务

Notion image

Notion image

  • 下载客户端和配置文件

https://192.168.31.27:943/admin Username: openvpn Password: xxxxx

  • 下载对应的客户端,下载客户端配置文件

Notion image

  • 导入配置文件

Notion image

👨‍✈️ 客户端访问&测试

  • 登录客户端

Notion image

  • 访问openvpn 后端资源

Notion image

Notion image

  • 在线观看内网NAS 资源

Notion image

常见问题

  • 连上openvpn后,本地内网ip却ping不通了

禁止客户端互联网流量通过VPN路由出去上网,即可解决。

  • 连上openvpn后,无法上网,但可以ping外网IP

设置推送指定的DNS地址给客户端。

  • 连上openvpn后,无法访问服务器资源

没有设置允许访问VPN内网的地址。

🎁 获取OpenVPN-AS

原文地址: https://mp.weixin.qq.com/s?__biz=MzI3MzQxNTU1Mg==&mid=2247485672&idx=1&sn=c91bd17a410b71a881e074c24be63cc8&chksm=eaebdac64e0870c5200f27b306fe1568f1ae7b26d60783aef98774b014842c6c420613ef668c&mpshare=1&scene=1&srcid=0503hdmJv1AEEj5b37kZTn0V&sharer_shareinfo=f9e794f5a0f525bbb3c9479fd5d9c6dc&sharer_shareinfo_first=f9e794f5a0f525bbb3c9479fd5d9c6dc#rd

相关文章