核心用法
cfshare 是 Cloudflare Quick Tunnel 的封装层,提供结构化 JSON 输出与完整生命周期管理。核心工作流为:
1. 环境检查:cfshare env_check 验证 cloudflared 与 cfshare 安装状态
2. 创建暴露:expose_port 反向代理本地服务(支持 1-65535 端口),expose_files 打包文件/目录为临时网盘
3. 获取公网链接:返回带自动附加 Token 的 public_url 与过期时间
4. 生命周期管理:exposure_list/get/stop/logs 管理活跃会话,maintenance 设置策略与垃圾回收
关键特性:
- 多种访问控制:
token(URL 带参)、basic(HTTP Basic Auth)、none(公开可读) - 文件服务灵活:支持
normal(单文件直链/目录浏览)与zip打包模式,preview内联渲染图片/PDF/视频/Markdown - 审计追踪:
audit_query/export记录暴露事件到本地 JSONL - 安全策略:可配置
maxTtlSeconds、blockedPorts、ignore_patterns等
显著优点
- 零配置公网访问:无需域名、服务器或防火墙配置,秒级生成 HTTPS URL
- 企业级基础设施:底层 Cloudflare Tunnel 具备 DDoS 防护与全球边缘加速
- 精细权限控制:Token 模式适合分享敏感内容,Basic 模式兼容标准 HTTP 客户端
- 自动化友好:结构化 JSON 输出、明确的 CLI 契约,适合 CI/CD 与 Agent 工作流
- 本地审计留存:操作日志与策略文件存储于
~/.cfshare,满足合规追溯需求
潜在缺点与局限性
- 临时性设计:Quick Tunnel 非持久化,URL 会过期(默认 TTL 较短),不适合长期服务托管
- 内存态会话:CLI 模式下会话注册表非持久,独立进程调用无法恢复完整实时状态
- 依赖外部二进制:必须单独安装
cloudflared(约 30MB),跨平台安装步骤差异大 - Basic 凭证遮蔽:输出中密码被掩码,实际复用需额外记录,降低
basic模式实用性 - Cloudflare 网络依赖:中国大陆等地区的访问质量受 Cloudflare 边缘节点覆盖影响
适合人群
- 开发者/测试人员:快速分享本地开发环境、预览构建产物给客户或同事
- DevOps/SRE:临时暴露内部服务用于调试,或作为 CI 流水线中的预览链接生成器
- 技术支持:安全地向外部人员提供文件下载或系统访问,无需搭建 FTP/VPN
- 隐私敏感用户:需要比公共网盘更可控、带审计的临时文件分享方案
常规风险
| 风险类型 | 说明 | 缓解建议 |
|---------|------|---------|
| **意外暴露** | `access: none` 模式下链接可被搜索引擎索引或暴力猜测 | 敏感内容强制使用 `token` 或 `basic`;缩短 `ttl_seconds` |
| **Token 泄露** | URL 中的 Token 可能被浏览器历史、Referrer 日志记录 | 使用短 TTL;分享后提醒接收方勿转发完整 URL |
| **本地服务漏洞** | 暴露的端口若存在未授权接口,可能被利用 | 暴露前确认本地服务已鉴权;使用 `allowlist_paths` 限制路由 |
| **依赖供应链** | `cloudflared` 与 `cfshare` 均来自第三方,存在更新兼容风险 | 锁定版本;监控安全公告 |
| **审计日志本地存储** | `~/.cfshare/audit.jsonl` 可被本地用户读取或篡改 | 敏感环境定期导出到远程 SIEM;设置文件权限 0600 |
安装提示
若版本检查失败,需手动安装依赖:
- cfshare:
npm install -g @ystemsrx/cfshare(需 Node.js) - cloudflared:macOS 用
brew,Debian/Ubuntu 需添加 Cloudflare APT 源,Windows 用winget