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 | const formData = new FormData(); |
如果 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 | tunnel: my-tunnel |
启动:
1 | cloudflared tunnel run my-tunnel |
七、Tunnel 免费与收费
Cloudflare Tunnel 本身是 Cloudflare Zero Trust 体系的一部分。很多基础隧道使用场景可以免费开始。
如果要做团队级访问控制、身份认证、设备策略、审计和更完整的 Zero Trust 管理,就要看 Cloudflare Zero Trust 的计划和席位价格。
简单说:个人开发和小型服务暴露,可以先用免费能力;企业内网访问管理,要按 Zero Trust 方案评估。
八、实践建议
Turnstile 适合保护入口,Tunnel 适合安全暴露服务。
公开表单要做 Turnstile,但后端仍然要限流、校验参数、记录异常。Tunnel 可以让你少开端口,但内网服务本身也要做好鉴权。
这两个产品都很容易上手,但不要把它们当成唯一安全措施。它们应该是整体安全设计的一部分。
参考资料
- Turnstile Docs: https://developers.cloudflare.com/turnstile/
- Turnstile Server-side Validation: https://developers.cloudflare.com/turnstile/get-started/server-side-validation/
- Cloudflare Tunnel Docs: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/
- Cloudflare Zero Trust Pricing: https://www.cloudflare.com/zero-trust/products/access/