EN

🚀 免费内网穿透!Cloudflare Tunnel 实战教程,让本地AI服务触达全球

数据中心服务器机架上闪烁的网络指示灯

image

在 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 凭证文件。

  1. 创建隧道执行后会输出一个隧道 UUID,同时在 ~/.cloudflared/ 目录下生成 <UUID>.json 凭证文件,请妥善保管。

  1. 配置 DNS 记录把子域名指向隧道(无需手动去 Cloudflare 控制台添加,命令会自动帮你配置):

执行完毕后,Cloudflare 会自动为 ai.example.com 创建一条 CNAME 记录,指向 <UUID>.cfargotunnel.com

  1. 编写配置文件在 ~/.cloudflared/ 下新建 config.yml

  1. 启动隧道打开浏览器访问 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 生态,敬请关注「小吒の博客」的后续更新。

[Claude Code 实战指南:

终端里的 AI 编程代理怎么用?(2026 国内版)image](/article/claude-code-tutorial)[NextChat 部署指南:

Vercel 一键部署专属 AI 助手,支持 DeepSeek 等 16+ 大模型image](/article/nextchat-deploy-guide)[Zed 编辑器体验:

号称最快的代码编辑器,到底有多强?image](/article/zed-vs-vscode)[Windows 包管理器 winget 完全指南:

告别手动下载安装软件image](/article/winget-windows-tools)[2026 年 VS Code 必备插件推荐:

让开发效率翻倍的 20 个神器image](/article/vscode-extensions-2026)