在 AI 工具百花齐放的 2026 年,越来越多开发者会在本地部署大模型、AI 编程助手、NextChat 这类服务。但问题随之而来:如何让外网访问家里的本地服务? 传统方案要么买公网 IP,要么用付费的 frp/ngrok,成本和维护都不小。今天就分享一个完全免费的解决方案——Cloudflare Tunnel。
一、为什么选择 Cloudflare Tunnel?
Cloudflare Tunnel(前身为 Argo Tunnel)是 Cloudflare 提供的免费内网穿透服务。它的核心思路很巧妙:你不需要公网 IP,也不需要在路由器上开端口,只要在本机跑一个
cloudflared 客户端,它会主动向 Cloudflare 建立一条长连接,把外部请求反向代理到你本地的服务。相比传统内网穿透方案,它有几个压倒性优势:
- 完全免费:不限流量、不限带宽,个人使用 0 成本
- 无需公网 IP:家里宽带、移动网络、办公室都能用
- 自带 HTTPS:Cloudflare 自动签发证书,告别自己配 Let's Encrypt
- 安全可靠:不暴露真实 IP,所有流量经过 Cloudflare 的 WAF 和 DDoS 防护
- 全球加速:依托 Cloudflare 300+ 边缘节点,访问速度极快
- 自定义域名:可绑定自己的域名,专业又美观
二、准备工作
开始之前,你需要准备:
- 一个 Cloudflare 账号(免费注册即可)
- 一个托管在 Cloudflare 的域名(免费域名也可以,参考本博客之前的 Gname eu.cc 教程)
- 本地一个正在运行的服务(比如
localhost:3000的 NextChat)
三、安装 cloudflared 客户端
Windows 系统
推荐使用 winget 直接安装:
或者去 GitHub Releases 下载
.msi 安装包,双击安装即可。macOS 系统
Linux 系统
安装完成后验证:
四、快速体验:Quick Tunnel(临时隧道)
如果你只是临时给同事演示一下本地项目,不想配置域名,可以用 Quick Tunnel 一行命令搞定:
执行后终端会输出一个形如
https://random-words-xxx.trycloudflare.com 的临时网址,把这个网址发给别人就能访问你的本地服务了。⚠️ **注意**:Quick Tunnel 是临时的,客户端关闭后网址立即失效,域名也是随机分配的。长期使用请按下面的方式配置命名隧道。
五、正式配置:命名隧道(长期稳定)
1. 登录 Cloudflare
浏览器会自动打开授权页面,选择你要使用的域名(比如
example.com),点击授权。系统会在 ~/.cloudflared/ 下生成 cert.pem 凭证文件。2. 创建隧道
执行后会输出一个隧道 UUID,同时在
~/.cloudflared/ 目录下生成 <UUID>.json 凭证文件,请妥善保管。3. 配置 DNS 记录
把子域名指向隧道(无需手动去 Cloudflare 控制台添加,命令会自动帮你配置):
执行完毕后,Cloudflare 会自动为
ai.example.com 创建一条 CNAME 记录,指向 <UUID>.cfargotunnel.com。4. 编写配置文件
在
~/.cloudflared/ 下新建 config.yml:5. 启动隧道
打开浏览器访问
https://ai.example.com,是不是已经能访问你的本地服务了?而且自动带 HTTPS!六、设置开机自启
生产环境当然不能一直开着终端,配置成系统服务更省心。
Linux(systemd)
Windows
以管理员身份打开 PowerShell:
服务会注册为
Cloudflared,可在 services.msc 中管理启动类型。七、实战场景:暴露本地 Ollama 大模型 API
下面演示一个真实场景——把本地的 Ollama 大模型 API 暴露到公网,方便在外面用手机调用。
Step 1:本地启动 Ollama(默认监听 127.0.0.1:11434)
为了让局域网外能访问,先设置环境变量让 Ollama 监听所有网卡:
Step 2:在
config.yml 中新增一条 ingress 规则:Step 3:重启 cloudflared,然后用 curl 测试:
搞定!现在你在任何地方都能调用家里的本地大模型了。
八、安全加固建议
把服务暴露到公网后,安全一定要跟上:
- 开启 Cloudflare Access:在 Zero Trust 控制台为隧道配置身份验证(邮箱 OTP、GitHub 登录等),只有授权用户才能访问
- 限制访问路径:用
originRequest配置仅暴露必要的 API 路径
- 开启速率限制:在 Cloudflare Dashboard 设置 WAF 规则,防止恶意刷接口
- 定期检查日志:通过
cloudflared tunnel list和 Cloudflare 控制台查看访问记录
九、常见问题排查
Q1:访问显示 502 Bad Gateway?
检查本地服务是否正常运行,
config.yml 中的端口是否正确。cloudflared 必须能从本机访问到 service 地址。Q2:DNS 解析不生效?
Cloudflare DNS 通常 1 分钟内生效。可以用
nslookup ai.example.com 验证是否解析到了 cfargotunnel.com。Q3:如何同时运行多个隧道?
在
config.yml 中通过不同的 hostname 区分即可,一个隧道可以代理多个服务,无需创建多个隧道实例。十、总结
Cloudflare Tunnel 是目前最适合个人开发者的内网穿透方案:免费、安全、稳定、配置简单。无论是暴露本地 AI 服务、远程访问 NAS、还是给客户演示本地项目,它都能轻松胜任。配合本博客之前介绍的 Cloudflare Workers 建站、Cloudflare 域名邮箱,你已经可以用 Cloudflare 全家桶搭建一套完整的个人云基础设施了。
下一篇文章我们将继续探索 Cloudflare 生态,敬请关注「小吒の博客」的后续更新。
- 作者:小吒博客
- 链接:https://xiaozha.org/article/cloudflare-tunnel-tutorial
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
