若依 (RuoYi-Vue) 框架结合 Cloudflare Tunnel 实现公网访问
·
使用cftunnel(cloudflared)做内网穿透,无需公网 IP、无需路由器端口映射、无需备案域名,一键生成 HTTPS 公网地址; 架构链路: 公网浏览器 → Cloudflare全球节点 → cftunnel客户端(本机出站连接) → 本机8080若依后端 前端打包后直接对接隧道 HTTPS 域名,无 Nginx 也可运行。
环境说明
- 后端:RuoYi-Vue 3.9.2 SpringBoot 单体后端,端口 8080
- 前端:Vue2 若依管理前端
- 穿透工具:cloudflared (cftunnel)
- 系统:Windows 10/11
第一步:后端 SpringBoot 配置开放全网访问
1. 修改 application.yml 核心配置
默认 Tomcat 仅监听127.0.0.1,仅本机可访问,必须绑定0.0.0.0接收所有 IP 请求:
# 开发环境配置
server:
# 后端服务端口
port: 8080
# 关键配置:监听所有网卡地址,允许局域网/穿透流量接入
address: 0.0.0.0
servlet:
# 项目访问根路径
context-path: /
tomcat:
uri-encoding: UTF-8
accept-count: 1000
threads:
max: 800
min-spare: 100
2.防盗链白名单添加隧道域名
若依自带 referer 防盗链拦截,必须把穿透生成的域名加入白名单,否则静态资源、接口会被拦截:
# 防盗链配置
referer:
enabled: false
# 追加你的trycloudflare公网域名
allowed-domains: localhost,127.0.0.1,ruoyi.vip,www.ruoyi.vip,covering-knows-formation-ssl.trycloudflare.com
3.重启后端并验证监听状态
- 完全关闭旧 Java 进程(任务管理器结束
java.exe,热部署不会重载 server.address 配置) - 重新启动 jar 包
- CMD 执行命令校验监听地址:
cmd
netstat -ano | findstr ":8080"
✅ 正常输出:TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING
❌ 异常:出现127.0.0.1:8080代表配置未生效,需要彻底重启程序
第二步:前端 Vue 生产环境适配公网穿透地址
1. 修改生产环境配置文件.env.production
若依前端默认使用/prod-api本地代理前缀,生产环境代理失效,直接替换为穿透 HTTPS 域名:
env
# 页面标题
VUE_APP_TITLE = 校园图书管理系统
# 生产环境标记
ENV = 'production'
# 注释掉本地代理前缀
# VUE_APP_BASE_API = '/prod-api'
# 填写cftunnel生成的完整HTTPS公网域名
VUE_APP_BASE_API = 'https://covering-knows-formation-ssl.trycloudflare.com'
重点说明:
vue.config.js中的devServer.proxy仅本地开发生效,打包生产环境完全不会执行这段代理逻辑,无需修改此文件。
第三步:安装并启动 Cloudflare Tunnel 内网穿透
官网地址: cftunnel — 全协议内网穿透工具 | Cloud + Relay 双模式
1. 工具安装
- 官网下载
cloudflaredWindows 程序:https://github.com/cloudflare/cloudflared/releases - 将
cloudflared.exe重命名为cftunnel.exe,放到系统环境变量目录(如C:\Windows\System32),或直接在 exe 所在目录打开 CMD。
2. 启动穿透(管理员 CMD 运行)
直接转发本机 8080 后端服务,命令:
cmd
cftunnel tunnel --url http://127.0.0.1:8080
常用命令
cftunnel quick 80
3. 启动成功标识
终端会输出一段随机 HTTPS 域名,示例:
https://covering-knows-formation-ssl.trycloudflare.com
出现Connection established代表隧道长连接建立成功,不要关闭 CMD 窗口(关闭即隧道断开)。
更多推荐

所有评论(0)