Cloudflare Tunnel 内网穿透教程(Windows)
Cloudflare Tunnel 可以在不开放服务器入站端口、不需要公网 IP 的情况下,把本地运行的 Web 服务、远程桌面等安全地暴露到互联网上。所有流量经由 Cloudflare 边缘网络转发,自带 CDN、DDoS 防护和访问控制能力。
本教程使用 云端管理(Token 模式),全程在 Cloudflare Dashboard 完成隧道创建和路由配置,适合 Windows 环境快速上手。
前提条件
- 一个托管在 Cloudflare 的域名(NS 已指向 Cloudflare)。
- Windows 10 / 11 或 Windows Server 2016 及以上版本。
- 管理员权限的命令提示符(CMD)或 PowerShell。
为什么需要域名
Cloudflare Tunnel 通过一个公有主机名(如 app.yourdomain.com)来对外暴露本地服务。这个主机名必须是你的 Cloudflare 域名下的子域名,Cloudflare 会自动创建对应的 DNS 记录指向隧道。
第一步:创建隧道并获取 Token
- 登录 Cloudflare Zero Trust Dashboard。
- 在左侧导航栏进入 网络 → Tunnels,点击 创建隧道。
- 选择 Cloudflared 连接器,输入隧道名称(例如
xzyapp),点击保存。 - 在“安装并运行”页面,操作系统选择 Windows,架构选择 64-bit。
- 页面会显示一条类似下面的命令,这就是你的 Token:

cloudflared.exe service install eyJhIjoi**************bSJ9安全提示
这条 Token 授予了对 Cloudflare 账户下该隧道的访问权限。不要公开分享,截图时务必打码。一旦泄露,可以在隧道详情页点击 刷新令牌 使旧 Token 立即失效。
复制这串完整的 Token 后,点击取消或关闭页面,进入下一步。
第二步:在 Windows 上安装并启动服务
2.1 下载 cloudflared
从 Cloudflare 官方下载最新的 Windows 可执行文件:
下载后直接运行 .msi 安装程序,按默认选项完成安装即可。
2.2 以管理员身份安装服务
安装完成后,以管理员身份打开命令提示符(在开始菜单搜索“CMD”,右键选择“以管理员身份运行”),执行:
cloudflared.exe service install 你的TOKEN将 你的TOKEN 替换为上一步复制的完整字符串。
执行成功后,cloudflared 会注册为 Windows 系统服务,并随系统启动自动运行。
2.3 验证连接状态
回到 Cloudflare Dashboard 的 Tunnels 列表页面。等待片刻,你刚创建的隧道(如 xzyapp)状态应该会从“非活动/离线”变为健康/已连接。

你也可以在 Windows 服务列表(services.msc)中看到名为 Cloudflared agent 的服务,确认其状态为“正在运行”。
后续管理服务
如需手动启动、停止或重启 cloudflared 服务,可在管理员 CMD 中执行:
# 停止
sc stop cloudflared
# 启动
sc start cloudflared
# 重启
sc stop cloudflared && sc start cloudflared第三步:添加路由,发布应用程序
隧道连接成功后,需要告诉 Cloudflare 哪个公网域名对应本地的哪个服务。这就是“已发布应用程序”路由。
- 在 Tunnels 列表中点击你刚创建的隧道名称(如
xzyapp),进入详情页。 - 切换到 路由 标签页。

- 点击 添加路由。
- 在路由类型选择弹窗中,选择 已发布应用程序。这一选项对应“公有主机名”路由,用于将本地 HTTP/HTTPS 服务暴露到互联网。

- 填写路由信息:
| 字段 | 填写内容 | 示例 |
|---|---|---|
| 子域 | 你希望使用的二级域名前缀 | app |
| 域 | 下拉选择你的 Cloudflare 域名 | yourdomain.com |
| 路径 | 留空即可(除非需要按路径分流) | — |
| 服务 → 类型 | 本地服务协议 | HTTP |
| 服务 → URL | 本地服务的地址和端口 | http://localhost:8080 |
- 点击 添加路由 保存。
添加完成后,Cloudflare 会自动在 DNS 中创建一条 CNAME 记录,将 app.yourdomain.com 指向该隧道的 cfargotunnel.com 子域,无需手动配置 DNS。
现在,在浏览器中访问 https://app.yourdomain.com,请求就会经由 Cloudflare 网络,通过隧道转发到你本机的 localhost:8080。
进阶:同时发布多个本地服务
一个隧道可以承载多个独立的应用程序。重复第三步,为每个本地服务添加一条“已发布应用程序”路由即可:
| 公网主机名 | 本地服务 |
|---|---|
app.yourdomain.com | http://localhost:8080 |
nas.yourdomain.com | http://localhost:5000 |
api.yourdomain.com | http://localhost:3000 |
每条路由都会生成独立的 DNS 记录,互不干扰。在 Tunnel 列表页的 路由 列中,可以直观地看到每个隧道关联的应用数量。
常见问题排查
访问域名返回 502 / 1033 错误 通常表示 cloudflared 没有正确连接到 Cloudflare,或者本地服务未启动。先确认 Windows 服务 Cloudflared agent 正在运行,再检查本地服务是否监听在配置的端口上。
修改配置后不生效 通过 Dashboard 修改路由后,cloudflared 通常会自动拉取新配置。如果长时间未同步,在管理员 CMD 中重启服务即可:sc stop cloudflared && sc start cloudflared。
如何更换 Token 如果 Token 泄露或需要轮换,进入隧道详情页,在右侧点击 刷新令牌,旧 Token 会立即失效。随后用新 Token 重新执行 cloudflared.exe service install 新TOKEN,并重启服务。
小结
本教程的完整流程可以概括为:
Dashboard 创建隧道 → 复制 Token → Windows 管理员 CMD 安装服务 → 添加“已发布应用程序”路由 → 通过公网域名访问
整个过程中,本地不需要开放任何入站端口,也不需要公网 IP。所有对外暴露的服务都经过 Cloudflare 的安全层,后续还可以在此基础上叠加 Access 访问策略、WAF 规则等进一步收紧权限。
