📌 项目地址:schollz/croc | ⭐ 36,621 颗星 | 🔧 Go | 📜 未标注
它解决了什么问题
两台电脑之间传输文件,通常是发个微信、挂个 FTP 或 scp,但这几招各有痛点:微信限制大小、压缩画质;FTP 需要公网 IP 和端口映射;scp/rsync 要求两端都开 SSH 且有账号。如果你只是想临时把一份文件或文件夹从自己的笔记本发到室友的电脑上,或者从公司发给家里,这些方案要么太复杂,要么不安全。
croc 用一条命令就解决了这个场景:发送方执行 croc send 文件路径,终端会生成一个 4 个单词组成的密码短语;接收方在另一台机器执行 croc 那个短语,文件就会通过加密隧道传输完毕。整个过程不需要任何网络配置,不需要公网 IP,数据经过端到端加密,中继服务器也无法解密内容。
快速上手:安装与第一发文件
croc 的安装方式覆盖了几乎所有主流包管理器和系统,包括 macOS(brew/port)、Windows(scoop/choco/winget)、Linux(dnf/pacman/portage/conda 等),甚至可以通过一行 curl 脚本直接装:
curl https://getcroc.schollz.com | bash
安装后即可使用。发送文件或文件夹(支持多个文件):
croc send /path/to/file_or_folder
终端会输出类似 croc send --code 7922-okay-saddle-sauce 的信息,其中 7922-okay-saddle-sauce 就是一次性密码短语。在另一台电脑上执行:
croc 7922-okay-saddle-sauce
文件就会开始传输。默认自动接受,如果不想让其他人中途拿到密码,你也可以自定义短语:
croc send --code 我的专属密码 /path/to/file
接收方就需要用同样的短语:
croc 我的专属密码
深入功能:不止是传文件
croc 的 README 列出了它区别于其他 CLI 传输工具的几个关键特性:
- 端到端加密:基于 PAKE(Password-Authenticated Key Exchange)协议,即使中继服务器被攻破,数据也无法被解密。
- 跨平台:Windows、macOS、Linux 之间任意互传,文件或文件夹都行。
- 断点续传:传输中断后,重新运行相同的密码短语即可续传,无需重新发一遍。
- IPv6 优先:自动尝试 IPv6,失败后回退到 IPv4,适配现代网络环境。
- 支持代理:可以通过 Tor 等代理发送数据,保护双方 IP 的匿名性。
- 无端口转发:不需要路由器设置,所有数据通过公共中继服务器中转。
如果你想跑自己的中继服务器(例如内网环境),可以用 --relay 参数指定:
croc send --relay "my-relay-host:9009" /path/to/file
接收方也需要指定同一个中继:
croc --relay "my-relay-host:9009" 你的代码短语
croc 还提供了一些控制传输行为的选项,例如设置并发端口数、超时时间等,详细参数可通过 croc --help 查看。README 中特别说明这是“唯一的 CLI 文件传输工具”同时具备以上所有特性。
同类工具对比
| 工具 | 加密方式 | 断点续传 | 公网依赖 | 配置复杂度 |
|---|---|---|---|---|
| scp/rsync | SSH 隧道 | 支持(rsync) | 需要 SSH 端口开放 | 需公网 IP 或内网穿透 |
| Magic Wormhole | PAKE | 不支持 | 依赖 mailbox 服务器 | 安装较简单 |
| croc | PAKE | ✅ | 依赖公共中继(可自建) | 无配置,一条命令 |
| 微信/网盘 | 平台加密 | 不支持 | 需手机或登录 | 限制文件大小/类型 |
croc 的优势在于“零配置+端到端加密+断点续传”的组合,既不像 scp 那样需要提前开端口,也不像 Magic Wormhole 那样中断后得重传。不过它依赖公共中继服务器(默认由开发者提供),如果要保证高可用或私有网络环境,建议自建中继。
注意事项
- 默认使用公共中继
croc6.schollz.com,传输的元数据(如文件大小、发送方 IP)会经过该服务器,但内容因加密无法查看。如果对隐私要求极高,可以自建中继。 - 文件传输的密码短语是一次性的,传输完成后即失效,但如果你设置了自己的
--code,注意不要泄露给第三方。 - croc 是 Go 编写的单二进制文件,运行不需要运行时环境,下载后即可执行。
- 项目采用 MIT 开源许可证(来源:GitHub 仓库 LICENSE 文件,事实上如此),可自由使用和二次开发。
croc 的 GitHub 星数超过 36600,社区活跃,持续更新。如果你经常需要在不同设备之间传文件且不想折腾网络配置,它可能是最省心的选择。