Cloudflare Turnstile 与 Tunnel 基础使用指南
wxk1991 Lv5

Cloudflare Turnstile 与 Tunnel 基础使用指南

Cloudflare Turnstile 和 Tunnel 不是同一类产品,但都很实用。

Turnstile 用来保护表单,减少机器人提交。Tunnel 用来把本地或内网服务安全暴露出去,不需要公网 IP,也不需要开放入站端口。

说明:本文按 2026-06-07 官方文档整理,后续功能和计费可能变化。


一、Turnstile 适合什么场景

Turnstile 是 Cloudflare 的人机验证方案,可以替代传统验证码。

适合用在:

  • 登录
  • 注册
  • 评论
  • 联系表单
  • 找回密码
  • 公开 API 前置验证

它的目标不是让用户识别图片,而是尽量在后台完成风险判断,减少正常用户的打扰。


二、Turnstile 基础接入

先在 Cloudflare Dashboard 创建 Turnstile site,拿到 site key 和 secret key。

前端页面加入脚本:

1
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>

表单里加入组件:

1
<div class="cf-turnstile" data-sitekey="YOUR_SITE_KEY"></div>

提交表单时,Turnstile 会生成 token。后端需要验证 token,不能只在前端判断。


三、后端验证 token

后端调用 Cloudflare 验证接口:

1
2
3
4
5
6
7
8
9
10
const formData = new FormData();
formData.append("secret", env.TURNSTILE_SECRET);
formData.append("response", token);

const result = await fetch("https://challenges.cloudflare.com/turnstile/v0/siteverify", {
method: "POST",
body: formData,
});

const data = await result.json();

如果 data.success 为 true,再继续处理业务逻辑。

不要把 secret key 放到前端。


四、Turnstile 免费与收费

Turnstile 目前对普通网站可以免费使用。它常见于登录、注册、评论、表单等场景。

如果是大型企业、安全策略、风控联动或更复杂的 Bot Management 需求,需要结合 Cloudflare 对应安全产品和账号计划来看。

对个人站点和中小型 Web 应用,先用 Turnstile 免费能力通常就够。


五、Tunnel 适合什么场景

Cloudflare Tunnel 通过 cloudflared 建立从本地到 Cloudflare 的出站连接。外部访问域名时,流量会通过这个隧道转发到本地服务。

适合:

  • 本地开发预览
  • 临时演示
  • 内网服务远程访问
  • 没有公网 IP 的服务器
  • 不想开放入站端口的服务

它比直接暴露公网端口安全很多,也更容易管理。


六、Tunnel 基础使用

安装 cloudflared 后登录:

1
cloudflared tunnel login

创建 tunnel:

1
cloudflared tunnel create my-tunnel

绑定域名:

1
cloudflared tunnel route dns my-tunnel app.example.com

配置服务:

1
2
3
4
5
6
7
tunnel: my-tunnel
credentials-file: /path/to/credentials.json

ingress:
- hostname: app.example.com
service: http://localhost:3000
- service: http_status:404

启动:

1
cloudflared tunnel run my-tunnel

七、Tunnel 免费与收费

Cloudflare Tunnel 本身是 Cloudflare Zero Trust 体系的一部分。很多基础隧道使用场景可以免费开始。

如果要做团队级访问控制、身份认证、设备策略、审计和更完整的 Zero Trust 管理,就要看 Cloudflare Zero Trust 的计划和席位价格。

简单说:个人开发和小型服务暴露,可以先用免费能力;企业内网访问管理,要按 Zero Trust 方案评估。


八、实践建议

Turnstile 适合保护入口,Tunnel 适合安全暴露服务。

公开表单要做 Turnstile,但后端仍然要限流、校验参数、记录异常。Tunnel 可以让你少开端口,但内网服务本身也要做好鉴权。

这两个产品都很容易上手,但不要把它们当成唯一安全措施。它们应该是整体安全设计的一部分。


参考资料