ffl 是一款开源命令行工具,能将任意文件或文件夹一键转换为安全的 HTTPS 链接,实现跨平台、端到端加密、无需中间存储的文件传输。它专为开发者、系统管理员和隐私敏感用户设计,适用于从几 KB 到数 TB 的任意规模数据。

据目前所知,ffl 是唯一同时满足以下全部特性的 CLI 文件传输工具。
核心特性
真正的点对点传输(WebRTC)
- 默认通过 WebRTC DataChannel 建立直接连接,数据不经过任何第三方服务器;
- 利用 STUN/TURN 实现 NAT 穿透,适用于大多数家庭和企业网络环境。
智能回退:中继隧道保障可达性
- 当 P2P 连接失败(如双方均在对称 NAT 后),自动切换至加密中继隧道;
- 支持多种隧道后端:Cloudflare Tunnel、ngrok、localtunnel,甚至可通过 Tor 代理;
- 中继仅转发加密流,无法解密内容(见下文加密机制)。
接收方零安装
- 接收者可通过 浏览器、curl、wget 或 ffl 客户端 下载文件;
- 生成的链接为标准 HTTPS URL,兼容所有现代网络环境。
端到端加密(AES-256-GCM)
- 密钥在发送方本地生成,并通过安全通道(如二维码、即时消息)传递;
- 中继服务器、隧道提供商、临时存储服务均无法访问明文数据;
- 加密在流式传输过程中实时进行,无需预先打包或加密整个文件。
原生支持文件夹与多文件
- 直接传输目录结构,无需手动压缩为 ZIP/TAR;
- 采用流式处理,适用于超大文件(TB 级)或实时生成的数据。
断点续传
- 网络中断后可从中断位置继续传输,避免重复发送已传数据;
- 特别适合不稳定网络或大文件场景。
真正可移植
- 提供 APE(Ahead-of-Time Portable Executable) 格式单文件二进制,无需依赖库;
- 同时提供 Windows、Linux、macOS 原生构建版本,开箱即用。
可选临时存储(按需启用)
- 若接收方无法实时在线,可临时上传加密文件至可信服务器(需显式授权);
- 文件在设定时间后自动删除,支持自定义存储后端。
典型使用场景
# 发送单个文件
ffl send report.pdf
# 发送整个项目目录
ffl send ./my-project/
# 接收文件(接收方运行)
ffl receive https://xxxx.fly.dev
- 远程协作:快速分享代码、日志、数据集;
- 跨设备同步:手机 ↔ 电脑间传大文件;
- 安全交付:向客户发送敏感资料,无需依赖网盘;
- 自动化脚本:集成到 CI/CD 或备份流程中。