croc 是一款开源的点对点文件传输 CLI 工具,让任意两台电脑无需登录就能互相发送文件和文件夹。支持 Windows/macOS/Linux/BSD 全平台,PAKE 协议端到端加密,可自托管中继服务器。单二进制零依赖,安装一条命令搞定,30 秒完成跨网络文件传输。

🎤 引言

你有没有过这种烦恼:想给同事发个几百 MB 的文件,微信传不了,企业邮箱又被附件大小卡住,临时注册个网盘账号又嫌麻烦?或者两台不同内网的服务器之间互传文件,没有 VPN 也没有可路由的公网 IP,开个 SSH 反向代理又显得小题大做。

croc 正是为这种"想立刻发点东西"的场景而生——一个用 Go 语言写的命令行小工具,让任意两台电脑之间能"免登录、点对点"地传输文件。它 GitHub 上已经斩获 37.7k Stars(2026 年 7 月数据),靠着 PAKE 加密 + 中继转发这套组合拳,正在成为越来越多极客替代魔法虫洞(Magic Wormhole)的首选。


⭐ 核心功能

croc 之所以让人眼前一亮,是因为它在「简单」和「安全」之间找到了相当聪明的平衡点。下面是它最实用的几大特性:

  1. 跨网络点对点传输
    任意两台电脑都能借助中继服务器互通,不要求同处一个内网,也不要求有公网 IP。默认使用作者运营的公共中继(croc.schollz.com),也可一键切换到自部署的私有 relay。
  2. PAKE 协议端到端加密
    通信双方通过一段"代码短语"(code phrase)协商密钥,中继服务器只负责转发密文,看不到明文内容。即便中继被攻陷,文件也安全,因为密钥根本没经过它。
  3. 支持文件和文件夹,支持 glob
    直接传单个文件、传整个目录、用通配符一次发一堆——croc 都接得住。v10.4.0 之后引入的 zip 压缩 + 断点续传,发几个 G 的内容也不慌。
  4. 单二进制零依赖
    Go 1.25 编译的全平台单个二进制,扔到任何机器上直接能跑。即便是 ARMv5、RISC-V 这种冷门架构,作者也提供了 release。
  5. 断点续传
    网络抖动了不用重头再来。重连后从断点继续,对跨国大文件传输体验提升巨大。
  6. 多语言客户端
    官方 CLI 是主力,但社区还开发了 Android GUI 客户端 crocgui、Python 版本、Electron 客户端等,不会命令行也能用。
  7. 可自托管完全可控
    企业用户可以用 --relay 参数指向自家服务器,再叠加 --pass 设密码,做到数据不离开公司内网。

📥 安装与使用

croc 的安装非常"极客友好"——一行命令搞定全平台。

macOS(Homebrew)

brew install croc

Windows(任选其一)

scoop install croc
choco install croc
winget install schollz.croc

Linux / macOS / Windows(Conda)

conda install -c conda-forge croc

Docker

docker pull schollz/croc

源码 / 预编译二进制
直接到 Release 页面 下载对应平台即可。v10.4.14 起恢复了 Windows ARM64 的 CI 编译。


最简用法:发送 + 接收

发送方:

croc send --code "happy-croc-123" ~/Downloads/设计稿.zip

接收方(另一台电脑):

croc happy-croc-123

中间会弹出一句"Press a key to confirm code phrase",双方确认一致后传输就开始。接收端进度条会实时更新速度。

进阶用法:自定义中继 + 密码

# 启动自托管 relay(一次性)
croc relay --ports 9009-9013

# 发送方指向自家 relay 并加密码
croc --relay "192.168.1.10:9009" --pass "MySecret" send ~/data.db

v10.5.0(2026-07-21 发布)之后还修复了 sender 在本地 relay 和外部 relay 之间的路由竞态(参见 #1162),大文件传输稳定性更上一层楼。


🎯 适用场景

  • 临时给同事/朋友发大文件:不想注册网盘、怕邮箱被附件大小卡住
  • 个人多设备数据同步:从家里 NAS 临时拖文件到公司电脑
  • 运维跨网段传文件:比如两个不同 VPC 之间没有 peering
  • 离线客户环境传补丁:客户机器不能上网,但能跟一台公网中继握手
  • 隐私敏感的数据:PAKE 加密 + 自托管 relay,规避第三方存储的信任问题
  • 脚本自动化传输:作为部署流水线的一环,扔进 CI 里传产物

🔍 对比 / 替代方案

工具跨网络端到端加密需安装依赖多端客户端单二进制
croc✅(PAKE)❌ 零依赖✅ CLI/GUI/Mobile
Magic Wormhole✅ Python 生态
wormhole-williamCLI✅(Go)
SCP / SFTP❌ 同网段/需 SSH✅ SSHCLI
微信 / 邮件 / 网盘❌ 上传第三方-
  • 与 Magic Wormhole 比:croc 不依赖 Python 生态,单个二进制就能跑;对 Windows 极客更友好;支持 glob 模式多文件 + 断点续传 + 自托管 relay。代价是两者协议不互兼容(参见 Issue #71),你不能用 croc 给一个 magic-wormhole 用户发文件。
  • 与 wormhole-william 比:wormhole-william 是 Magic Wormhole 的 Go 实现,协议上保持兼容;croc 走自己的 PAKE 路径,独立演进。
  • 与 SCP/SFTP 比:必须 SSH 到对方机器或同子网,跨地域基本歇菜。croc 走中继是天然优势,缺点是依赖中继可用性。
  • 跟微信/网盘比:croc 不依赖任何第三方账号、不上传到云、端到端加密,隐私性完胜。但缺少"开箱即用"的 GUI 客户端,普通家庭用户门槛仍在。

⚠️ 注意事项

跟大多数工具一样,croc 也不是"完美无缺"。基于 GitHub Issues 的真实反馈,主要有以下几点要留意:

  1. 依赖发送接收双方同时在线
    跟 magic-wormhole 一样,发送和接收必须同时在线。如果收方机器是一台临时唤醒的笔记本,需要提前开机;或者改用作者推荐的"qrcdo"模式让收方扫码触发连接。
  2. 公共 relay 的中继方不可控
    默认走作者运营的 croc.schollz.com,虽然数据是端到端加密的,但流量元数据(发送方、接收方、文件大小、IP)依然过中继。处理敏感信息务必用私有 relay,可参考 Issue #1040 关于 relay hosting 的讨论。
  3. 协议碎片化问题
    croc 和 magic-wormhole 是两个独立的生态,互相传不了文件(社区吐槽多年的 Issue #71)。如果你的协作方在用别的 wormhole 工具,croc 帮不了你——除非你自己起一套中继 + 当翻译官。
  4. 跨洋高丢包网络偶尔需要手动重试
    断点续传自 v10.4.0 之后已经相对稳定(参见 PR #1144),但跨太平洋、跨国高延迟线路下仍可能中途失败,需要重新运行 croc <code>
  5. 公共 relay 带宽上限
    作者运营的公共 relay 是免费 + 公益性质的,带宽有上限。如果你是高频重度用户,建议直接 croc relay 起一个自家节点。

✅ 总结

优点

  • 安装一行命令,零依赖,全平台覆盖(含 ARMv5、RISC-V)
  • PAKE 加密 + 默认 passphrase,一句话就能安全发件
  • 支持断点续传、glob 模式、自托管 relay
  • 社区活跃,37.7k Stars + 持续 release(最新 v10.5.0,2026-07-21)

缺点

  • 与 magic-wormhole 不兼容,生态割裂
  • 公共 relay 元数据可见,敏感数据需自托管
  • 必须发送接收双方同时在线

推荐指数:⭐⭐⭐⭐(4/5)

适合谁:需要临时跨网段/跨网络发文件的极客、运维、隐私敏感用户。

不适合:完全不会用命令行的普通家庭用户(虽然有 GUI 客户端,但用得不多)。

如果你受够了 U 盘、企业邮箱附件、临时网盘账号——croc 至少值得你 brew install croc 试一次,五分钟就能上手。

了解更多: