毅硕HPC | Pritunl + ECS + Frp 搭建远程办公VPN

简介: 本教程将介绍一种 “鱼与熊掌兼得” 的创新方案:核心VPN服务(Pritunl)部署在您本地的强大工作站上,通过轻量级的FRP内网穿透工具,借助阿里云ECS提供的稳定公网入口,安全地将其服务能力发布到互联网。 这样,远程员工只需连接到一个统一的云上地址,即可直接接入您办公室或实验室的本地网络,访问其中的设备,实现真正意义上的“远程局域网”体验。

一、引言

对于许多中小团队、开发者或实验室环境而言,购买昂贵的商业VPN网关并非首选。我们通常已经拥有性能强大的本地工作站或服务器,存放着核心代码、数据和测试环境。能否将这些本地资源安全、便捷地开放给远程团队成员访问呢?

传统方案可能是在路由器上配置端口转发,但这需要公网IP,并会将内网服务直接暴露在公网上,面临安全风险。而直接在云上搭建VPN,虽然管理方便,但所有访问云下本地设备的流量都需要经过云服务器中转,会产生不必要的带宽费用和延迟。

本教程将介绍一种 “鱼与熊掌兼得” 的创新方案:核心VPN服务(Pritunl)部署在您本地的强大工作站上,通过轻量级的FRP内网穿透工具,借助阿里云ECS提供的稳定公网入口,安全地将其服务能力发布到互联网。 这样,远程员工只需连接到一个统一的云上地址,即可直接接入您办公室或实验室的本地网络,访问其中的设备,实现真正意义上的“远程局域网”体验。

1. 方案架构

本方案的核心思想是:“服务在身边,入口在云端”。它巧妙地将服务主体与访问入口分离,兼顾了成本、性能和安全性。

1)核心组件与角色:

  • 本地工作站:

    • 角色:整个VPN体系的核心。
    • 运行服务:
      • Pritunl Server:提供专业的OpenVPN/WireGuard接入服务,管理用户认证和VPN IP分配。
      • FRP Client:作为内网穿透的主动发起方。
  • 阿里云ECS:

    • 角色:提供稳定、可靠的公网访问入口。
    • 运行服务:
      • FRP Server:接收FRP Client的连接,建立加密隧道,并将外部对特定端口的访问转发到本地Pritunl服务。
  • FRP(Fast Reverse Proxy):

    • 角色:连接云端与本地的“安全信使”。它避免了在本地网络进行复杂的端口转发,实现了“服务隐藏”。

2)整体数据流如下:

  • 准备阶段:本地工作站上的FRP客户端主动连接到云ECS上的FRP服务端,建立一条稳定的加密隧道。
  • 连接阶段:远程用户配置Pritunl客户端,连接至云ECS服务器的公网IP和FRP映射的端口(例如,your-ecs-ip:11940)。
  • 阶段:ECS上的FRP服务端收到VPN连接请求后,通过已建立好的隧道,将该请求无缝转发给本地工作站的Pritunl服务。
  • 接入阶段:远程用户通过Pritunl的身份验证后,成功接入本地工作站所在的物理网络,获取到一个该内网的IP地址(如 192.168.1.x)。
  • 访问阶段:此时,远程用户如同直接坐在办公室的局域网内一样,可以直接访问网络中的其他设备,如NAS(192.168.1.10)、开发服务器(192.168.1.20)或打印机等。

3) 架构优势:

  • 成本极低:云ECS仅需最基础的配置(1核1G),仅作为流量入口,消耗资源极少。
  • 性能无损:访问本地设备时,数据在远程用户和本地网络间直接路由(通过VPN隧道),不经过ECS中转,避免了云服务带宽费用和延迟。
  • 安全性高:本地网络无需配置公网IP或端口转发,所有服务都被FRP隧道保护起来,外部无法直接扫描到Pritunl服务.

2. 为何选择Pritunl?

在本架构中,Pritunl的价值不仅在于其自身强大,更在于它与FRP结合的可行性。一个命令行操作的OpenVPN服务器很难通过FRP稳定地暴露出去,而Pritunl解决了这个难题。

特性 传统方案(纯CLI OpenVPN) 本方案(Pritunl + FRP) 本方案的优势
内网穿透适配性 配置复杂,需要通过脚本处理IP转发和路由,与FRP结合难度高 Web界面统一配置路由,与FRP无缝集成,只需转发VPN端口即可 极大地简化了穿透部署,使“本地VPN上云”成为可能
运维管理 需SSH到本地工作站,通过命令行管理证书和用户,非常不便 无论身处何地,都能通过Web界面管理本地VPN。用户配置可通过链接分发,体验堪比商业VPN 实现了本地服务的远程化管理,运维效率飞跃式提升
用户体验 需要为每个用户手动分发证书文件,体验差且不安全 管理员在Web界面创建用户后,可直接生成预配置链接或二维码,用户一键导入 提供了现代化、友好的用户接入流程,降低培训成本
状态可视性 需要登录服务器查看日志,无法实时了解谁在连接 提供清晰的实时连接监控面板,在线用户、流量、连接时长一目了然 让运维状态透明化,快速响应问题
安全与灵活性 证书管理繁琐,吊销需要维护CRL列表 支持数据库后端、OAuth2集成,可以方便地启用双因素认证(2FA),轻松管理用户生命周期 为企业级安全要求提供了便捷的实现路径

二、部署详解

1. ECS部署Frps服务

  • Github克隆或下载frp:
    https://github.com/fatedier/frp
    
  • 编辑配置文件:
# nano frp_0.65.0_linux_amd64/frps.toml

# 服务绑定的IP与端口
bindAddr = "0.0.0.0"
bindPort = 8888

# web dashboard配置
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "admin@123"
# token权限验证,需与客户端配置一致,随机的、足够长的字符串
auth.method = "token"
auth.token = "Q5-CzF2v-GkVXylfpTBqpjoJdB71wyYWSGV4yzyM7Gw"
# 日志配置
log.to = "/root/frp_0.65.0_linux_amd64/logs/frps.log"
log.level = "info"
log.maxDays = 3
  • 编辑service文件,实现开机自启动:
# nano /etc/systemd/system/frps.service

[Unit]
# 服务名称
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令 您的frps的安装路径
ExecStart = /root/frp_0.65.0_linux_amd64/frps -c /root/frp_0.65.0_linux_amd64/frps.toml

[Install]
WantedBy = multi-user.target
  • 启动frps service:
systemctl daemon-reload
systemctl start frps
systemctl enable frps

注意: ECS防火墙需开放8888端口,安全组开放8888端口

2. 本地安装MongoDB和Pritunl

# 添加 MongoDB 源
sudo tee /etc/apt/sources.list.d/mongodb-org.list << EOF
deb [ signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse
EOF

# 添加 Pritunl 源
sudo tee /etc/apt/sources.list.d/pritunl.list << EOF
deb [ signed-by=/usr/share/keyrings/pritunl.gpg ] https://repo.pritunl.com/stable/apt noble main
EOF

# 添加 OpenVPN 源
sudo tee /etc/apt/sources.list.d/openvpn.list << EOF
deb [ signed-by=/usr/share/keyrings/openvpn-repo.gpg ] https://build.openvpn.net/debian/openvpn/stable noble main
EOF

# 安装并启动服务
sudo apt --assume-yes install gnupg
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmor --yes
curl -fsSL https://swupdate.openvpn.net/repos/repo-public.gpg | sudo gpg -o /usr/share/keyrings/openvpn-repo.gpg --dearmor --yes
curl -fsSL https://raw.githubusercontent.com/pritunl/pgp/master/pritunl_repo_pub.asc | sudo gpg -o /usr/share/keyrings/pritunl.gpg --dearmor --yes
sudo apt update
sudo apt --assume-yes install pritunl openvpn mongodb-org 
sudo systemctl start pritunl mongod
sudo systemctl enable pritunl mongod

3. Web登录并初始化

  • 访问

    https://192.168.1.88/setup
    
  • 获取初始化密钥:

    sudo pritunl setup-key
    # 填入setup key完成数据库初始化
    
  • 获取默认用户名和密码登录:

    sudo pritunl default-password
    # 根据username和password登录web,然后填入ECS的公网IP和新密码完成初始化
    

  • 添加组织:
    Users->Add Organization

  • 添加用户
    Users->Add User

4. Server配置

  • 添加server
    Servers->Add Server ,其中port为你的frpc客户端转发的端口。

  • 添加route
    Servers->Add Route,其中network为你内网设备的IP段

5. 本地Frpc配置

  • 编辑frpc.toml配置文件:
# nano frp_0.65.0_linux_amd64/frpc.toml

#配置公网服务器上frp服务的IP与端口
serverAddr = "xxx.xxx.xxx.xxx"
serverPort = 8888

#日志配置
log.to = "/root/frp_0.65.0_linux_amd64/logs/frpc.log"
log.level = "info"
log.maxDays = 3
#token权限验证,需与服务端配置一致
auth.method = "token"
auth.token = "Q5-CzF2v-GkVXylfpTBqpjoJdB71wyYWSGV4yzyM7Gw"
#面板相关配置
webServer.port = 7200
webServer.user = "admin"
webServer.password = "admin"


#代理配置
[[proxies]]
name = "gz_vpn_admin"                   #名称
type = "tcp"                            #代理类型
localIP = "127.0.0.1"                   #本地IP
localPort = 13204                       #内网服务监听的端口
remotePort = 13204                      #需要在公网服务器上监听的端口

注意: ECS防火墙开放13204端口,安全组开放13204端口

  • 启动frpc服务:
# cat /etc/systemd/system/frpc.service

[Unit]
# 服务名称
Description = frp client
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frpc的命令 您的frpc的安装路径
ExecStart = /home/snpbio/frp_0.65.0_linux_amd64/frpc -c /home/snpbio/frp_0.65.0_linux_amd64/frpc.toml

[Install]
WantedBy = multi-user.target

# frpc开机自启
systemctl daemon-reload
systemctl start frpc
systemctl enable frpc

6. 远程测试

1)安装OpenVPN客户端:

https://openvpn.net/client/

2)从本地的Pritunl Web下载用户的配置文件:

3)解压下载的tar文件,打开OpenVPN客户端导入.ovpn:

输入创建用户时设置的PIN登录

提示连接成功!


三、ENJOY

教程到这,我们已经成功地将本地的强大工作站,通过FRP这把“神奇的钥匙”,变成了一个拥有云上公网入口的专业级VPN网关。这个方案架构最大限度地利用了现有资源:本地工作站的算力和云服务器的网络可达性。

本方案的核心价值:

  • 资源最大化:无需购买专用VPN硬件,将已有的高性能本地工作站物尽其用。
  • 成本最优化:云服务器仅作为入口,配置要求低,有效控制云端开支。
  • 访问直接化:远程用户直接接入目标局域网,访问延迟低,体验流畅。
  • 管理现代化:通过Pritunl的Web界面,像管理云服务一样管理您部署在本地的VPN。
目录
相关文章
|
3天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
|
12天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
7天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
502 203
|
5天前
|
人工智能 移动开发 自然语言处理
2025最新HTML静态网页制作工具推荐:10款免费在线生成器小白也能5分钟上手
晓猛团队精选2025年10款真正免费、无需编程的在线HTML建站工具,涵盖AI生成、拖拽编辑、设计稿转代码等多种类型,均支持浏览器直接使用、快速出图与文件导出,特别适合零基础用户快速搭建个人网站、落地页或企业官网。
661 157
|
11天前
|
人工智能 自然语言处理 安全
国内主流Agent工具功能全维度对比:从技术内核到场景落地,一篇读懂所有选择
2024年全球AI Agent市场规模达52.9亿美元,预计2030年将增长至471亿美元,亚太地区增速领先。国内Agent工具呈现“百花齐放”格局,涵盖政务、金融、电商等多场景。本文深入解析实在智能实在Agent等主流产品,在技术架构、任务规划、多模态交互、工具集成等方面进行全维度对比,结合市场反馈与行业趋势,为企业及个人用户提供科学选型指南,助力高效落地AI智能体应用。
|
5天前
|
数据采集 消息中间件 人工智能
跨系统数据搬运的全方位解析,包括定义、痛点、技术、方法及智能体解决方案
跨系统数据搬运打通企业数据孤岛,实现CRM、ERP等系统高效互通。伴随数字化转型,全球市场规模超150亿美元,中国年增速达30%。本文详解其定义、痛点、技术原理、主流方法及智能体新范式,结合实在Agent等案例,揭示从数据割裂到智能流通的实践路径,助力企业降本增效,释放数据价值。
|
存储 人工智能 监控
从代码生成到自主决策:打造一个Coding驱动的“自我编程”Agent
本文介绍了一种基于LLM的“自我编程”Agent系统,通过代码驱动实现复杂逻辑。该Agent以Python为执行引擎,结合Py4j实现Java与Python交互,支持多工具调用、记忆分层与上下文工程,具备感知、认知、表达、自我评估等能力模块,目标是打造可进化的“1.5线”智能助手。
667 46