SuperAPI AI 工具集

cloudflare-tunnel

部署与运维

查看项目

更新于 10-14 10:32

技能介绍

用途

该技能用于通过 Cloudflare Tunnel 与 Cloudflare Access 建立安全连接,并访问受 Access 保护的服务端点。当请求中出现“Cloudflare tunnel”“argo tunnel”或安全连通性相关语境时适用。

主要能力

资料展示的核心能力是:使用 Cloudflare Access 服务令牌(Service Token)认证后,用 curl 访问受保护的服务。示例通过两个请求头完成认证:

  • CF-Access-Client-Id:值为 <client-id>.access
  • CF-Access-Client-Secret:值为 <secret>

基础请求示例:

curl -s
-H "CF-Access-Client-Id: $CF_ACCESS_CLIENT_ID"
-H "CF-Access-Client-Secret: $CF_ACCESS_CLIENT_SECRET"
"https://your-protected-service.example.com/api/endpoint"

可叠加服务自身认证。若目标服务除 Cloudflare Access 外还需要自己的认证,可同时传入:

curl -s
-H "CF-Access-Client-Id: $CF_ACCESS_CLIENT_ID"
-H "CF-Access-Client-Secret: $CF_ACCESS_CLIENT_SECRET"
-H "Authorization: Bearer $API_TOKEN"
"https://your-protected-service.example.com/api/endpoint"

也可与 Basic Auth 组合:

curl -s
-H "CF-Access-Client-Id: $CF_ACCESS_CLIENT_ID"
-H "CF-Access-Client-Secret: $CF_ACCESS_CLIENT_SECRET"
-u "username:password"
"https://your-protected-service.example.com/api/endpoint"

POST JSON 请求。先写入 /tmp/request.json:

{ "key": "value" }

然后执行:

curl -s -X POST
-H "CF-Access-Client-Id: $CF_ACCESS_CLIENT_ID"
-H "CF-Access-Client-Secret: $CF_ACCESS_CLIENT_SECRET"
-H "Content-Type: application/json"
-d @/tmp/request.json
"https://your-protected-service.example.com/api/endpoint"

下载文件:

curl -s -o /tmp/output.file
-H "CF-Access-Client-Id: $CF_ACCESS_CLIENT_ID"
-H "CF-Access-Client-Secret: $CF_ACCESS_CLIENT_SECRET"
"https://your-protected-service.example.com/file"

针对自签名证书跳过 SSL 校验,可添加 -k 标志:

curl -k -s
-H "CF-Access-Client-Id: $CF_ACCESS_CLIENT_ID"
-H "CF-Access-Client-Secret: $CF_ACCESS_CLIENT_SECRET"
"https://your-protected-service.example.com/api/endpoint"

所需请求头

  • CF-Access-Client-Id:<client-id>.access,服务令牌 Client ID
  • CF-Access-Client-Secret:<secret>,服务令牌 Client Secret

使用方式与提示

  • 请求头顺序无关,CF 请求头可位于请求中的任意位置。
  • 兼容任意 HTTP 方法,如 GET、POST、PUT、DELETE 等。
  • 可与其他认证方式组合,例如 CF Access + Basic Auth、Bearer Token 等。
  • 密钥轮换:建议在 Zero Trust 控制台中定期轮换密钥。

常见错误与排查

  • 403 Forbidden:请求头无效或缺失,检查 Client ID 与 Secret。
  • 403 Forbidden:令牌不在 Access 策略中,将令牌加入应用的 Access 策略。
  • 401 Unauthorized:服务自身认证失败,检查服务专属凭据。
  • Connection refused:隧道未运行,确认 cloudflared 正在运行。

适用场景

适用于需要通过 Cloudflare Access 访问受保护服务端点的命令行或脚本场景,包括调用 API、提交 JSON 数据、下载文件,以及目标服务额外要求 Bearer 或 Basic 认证的情况。

限制与缺失信息

资料未提供该技能的安装方式、支持的平台、收费或价格信息,也未说明除 curl 之外的其他客户端用法、cloudflared 的配置步骤或创建服务令牌的具体操作流程;相关事实暂未提供。

参考链接

  • Cloudflare Access 服务令牌:https://developers.cloudflare.com/cloudflare-one/identity/service-tokens/
  • Zero Trust 控制台:https://one.dash.cloudflare.com/