cloudflare-tunnel by vm0-ai/vm0-skills
npx skills add https://github.com/vm0-ai/vm0-skills --skill cloudflare-tunnel使用服务令牌头信息对受 Cloudflare Access 保护的服务的 HTTP 请求进行认证。
export CF_ACCESS_CLIENT_ID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx.access
export CF_ACCESS_CLIENT_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
确保您的 Access 应用程序允许服务令牌认证:
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
添加两个请求头以通过 Cloudflare Access 认证:
curl -s \
-H "CF-Access-Client-Id: $(printenv CF_ACCESS_CLIENT_ID)" \
-H "CF-Access-Client-Secret: $(printenv CF_ACCESS_CLIENT_SECRET)" \
"https://your-protected-service.example.com/api/endpoint"
许多服务同时需要 Cloudflare Access 认证和其自身的认证:
curl -s \
-H "CF-Access-Client-Id: $(printenv CF_ACCESS_CLIENT_ID)" \
-H "CF-Access-Client-Secret: $(printenv CF_ACCESS_CLIENT_SECRET)" \
-H "Authorization: Bearer $(printenv API_TOKEN)" \
"https://your-protected-service.example.com/api/endpoint"
curl -s \
-H "CF-Access-Client-Id: $(printenv CF_ACCESS_CLIENT_ID)" \
-H "CF-Access-Client-Secret: $(printenv CF_ACCESS_CLIENT_SECRET)" \
-u "username:password" \
"https://your-protected-service.example.com/api/endpoint"
写入 /tmp/request.json:
{
"key": "value"
}
然后运行:
curl -s -X POST \
-H "CF-Access-Client-Id: $(printenv CF_ACCESS_CLIENT_ID)" \
-H "CF-Access-Client-Secret: $(printenv 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: $(printenv CF_ACCESS_CLIENT_ID)" \
-H "CF-Access-Client-Secret: $(printenv CF_ACCESS_CLIENT_SECRET)" \
"https://your-protected-service.example.com/file"
对于使用自签名证书的服务,添加 -k 标志:
curl -k -s \
-H "CF-Access-Client-Id: $(printenv CF_ACCESS_CLIENT_ID)" \
-H "CF-Access-Client-Secret: $(printenv CF_ACCESS_CLIENT_SECRET)" \
"https://your-protected-service.example.com/api/endpoint"
| 请求头 | 值 | 描述 |
|---|---|---|
CF-Access-Client-Id | <client-id>.access | 服务令牌客户端 ID |
CF-Access-Client-Secret | <secret> | 服务令牌客户端密钥 |
| 错误 | 原因 | 解决方案 |
|---|---|---|
| 403 Forbidden | 请求头无效或缺失 | 检查客户端 ID 和密钥 |
| 403 Forbidden | 令牌不在访问策略中 | 将令牌添加到应用程序的访问策略中 |
| 401 Unauthorized | 服务自身的认证失败 | 检查特定于服务的凭据 |
| Connection refused | Tunnel 未运行 | 验证 cloudflared 是否正在运行 |
每周安装数
91
代码仓库
GitHub 星标数
51
首次出现
2026年1月24日
安全审计
安装于
gemini-cli80
opencode79
codex78
cursor74
github-copilot73
amp68
Authenticate HTTP requests to services protected by Cloudflare Access using Service Token headers.
export CF_ACCESS_CLIENT_ID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx.access
export CF_ACCESS_CLIENT_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Ensure your Access Application allows service token authentication:
Add two headers to authenticate through Cloudflare Access:
curl -s \
-H "CF-Access-Client-Id: $(printenv CF_ACCESS_CLIENT_ID)" \
-H "CF-Access-Client-Secret: $(printenv CF_ACCESS_CLIENT_SECRET)" \
"https://your-protected-service.example.com/api/endpoint"
Many services require both Cloudflare Access AND their own authentication:
curl -s \
-H "CF-Access-Client-Id: $(printenv CF_ACCESS_CLIENT_ID)" \
-H "CF-Access-Client-Secret: $(printenv CF_ACCESS_CLIENT_SECRET)" \
-H "Authorization: Bearer $(printenv API_TOKEN)" \
"https://your-protected-service.example.com/api/endpoint"
curl -s \
-H "CF-Access-Client-Id: $(printenv CF_ACCESS_CLIENT_ID)" \
-H "CF-Access-Client-Secret: $(printenv CF_ACCESS_CLIENT_SECRET)" \
-u "username:password" \
"https://your-protected-service.example.com/api/endpoint"
Write to /tmp/request.json:
{
"key": "value"
}
Then run:
curl -s -X POST \
-H "CF-Access-Client-Id: $(printenv CF_ACCESS_CLIENT_ID)" \
-H "CF-Access-Client-Secret: $(printenv 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: $(printenv CF_ACCESS_CLIENT_ID)" \
-H "CF-Access-Client-Secret: $(printenv CF_ACCESS_CLIENT_SECRET)" \
"https://your-protected-service.example.com/file"
Add -k flag for services with self-signed certificates:
curl -k -s \
-H "CF-Access-Client-Id: $(printenv CF_ACCESS_CLIENT_ID)" \
-H "CF-Access-Client-Secret: $(printenv CF_ACCESS_CLIENT_SECRET)" \
"https://your-protected-service.example.com/api/endpoint"
| Header | Value | Description |
|---|---|---|
CF-Access-Client-Id | <client-id>.access | Service Token Client ID |
CF-Access-Client-Secret | <secret> | Service Token Client Secret |
| Error | Cause | Solution |
|---|---|---|
| 403 Forbidden | Invalid or missing headers | Check Client ID and Secret |
| 403 Forbidden | Token not in Access policy | Add token to application's Access policy |
| 401 Unauthorized | Service's own auth failed | Check service-specific credentials |
| Connection refused | Tunnel not running | Verify cloudflared is running |
Weekly Installs
91
Repository
GitHub Stars
51
First Seen
Jan 24, 2026
Security Audits
Gen Agent Trust HubWarnSocketPassSnykPass
Installed on
gemini-cli80
opencode79
codex78
cursor74
github-copilot73
amp68
Azure 升级评估与自动化工具 - 轻松迁移 Functions 计划、托管层级和 SKU
104,900 周安装
前端设计最佳实践:从排版、色彩到动效与空间构成的专业指南
71 周安装
AI创意写作助手 - 生成小说、诗歌、剧本、微小说,支持多种体裁风格
71 周安装
市场调研技能:全面指南与框架,助您分析竞争对手、识别市场机会
71 周安装
Python数据分析技能 - 掌握Pandas、NumPy数据操作与Jupyter工作流
71 周安装
Docker专家技能:NestJS/Next.js容器化、Docker Compose配置与微服务编排最佳实践
71 周安装
yfinance MCP 服务器 - 获取 Yahoo Finance 实时和历史金融数据 | 股票价格、期权、财报、新闻
71 周安装