项目详情

croc

简单安全地在任意两台电脑间传文件,一句口令搞定

GitHub 地址 MIT GoPAKE

更新于 2026-07-23

← 返回汇总
项目速览

一句话定位

简单安全地在任意两台电脑间传文件,一句口令搞定

CLI 文件传输工具。发送方 croc send 生成一句口令,接收方输入口令即可拿文件。中继辅助 P2P + PAKE 端到端加密,无需端口转发、无需登录、无需中心存储。自称唯一同时满足任意两电脑+端到端加密+跨平台+多文件+断点续传+IPv6 优先+代理支持的 CLI 传输工具。Go 单二进制,全平台包管理器收录。8 年项目,37.8k Stars,仅 12 个开放 issue。

项目速览

核心数据

37.8k
GitHub Stars
8 年
项目年龄
v10
主版本
12
开放 Issue

Go 单二进制 · MIT 协议 · 作者 Zack Scholl(学者转开源开发者)· 全平台包管理器收录 · 仅 12 个开放 issue 说明维护极其健康

为什么存在

文件传输的老难题

邮件/网盘太重

邮件附件有大小限制,网盘要注册登录、要上传再分享链接,跨设备传个文件像在搬家。

scp/rsync 要配置

需要 SSH、需要知道 IP、需要端口转发或公网地址。NAT 后的两台机器直接对话很难。

AirDrop 局限平台

苹果生态内好用,跨 Windows/Linux/iOS/Android 就歇菜。蓝牙慢且距离受限。

云中转不放心

文件先上传到第三方服务器再下载,明文存储风险,大文件还慢(两倍带宽)。

核心理念

中继辅助 + 端到端加密

中继只负责帮两台 NAT 后的机器"见面握手",握手后数据尽量 P2P 直传,走不通时才由中继转发——但全程端到端加密,中继看不到明文。

发送方 中继(握手协调) PAKE 协商密钥 P2P 直传 / 中继转发 接收方

数据全程加密,中继只是"红娘"不是"仓库"。直连成功时带宽效率翻倍——无需先上传再下载。

核心机制

PAKE——口令即密钥

口令(code phrase)不是访问凭证,而是密钥协商的种子。双方用同一口令通过 PAKE 协议推导出会话密钥,中继即使全程旁听也无法解密。

核心机制

断点续传与多文件

Feature
断点续传
传输中断后重新执行同一口令,自动从断点继续,不必从头重传大文件。这是对比 Magic Wormhole 的关键优势。
Feature
多文件/文件夹
一次发送多个文件或整个目录,自动打包传输。支持 --exclude 排除子目录(如 node_modules)。
Feature
管道支持
cat file | croc send 从 stdin 发送,croc 口令 > out 接收到 stdout。可嵌入 Unix 管道。
Feature
文本/QR 码
--text 发送短文本/URL;--qr 生成二维码供手机扫码接收。
竞品对比

croc vs Magic Wormhole

维度Magic Wormholecroc
语言PythonGo(单二进制,易分发)
断点续传不支持支持
功能丰富度核心功能更多(管道/QR/文本/曲线选择/排除目录)
安全审计更成熟,社区审计更充分曾有 CVE-2023-43621(进程名泄露),已修复
生态Python 生态,wormhole-william(Go 移植)原生 Go,全平台包管理器 + Android 客户端

两者本质相同:PAKE 文件传输,无账号、无中心存储、NAT 友好。croc 胜在功能与分发,Wormhole 胜在安全成熟度。选 croc 用于日常便利,选 Wormhole 用于高敏感场景。

安全演进

CVE-2023-43621 与修复

漏洞:进程名泄露口令

早期版本接收方口令作为命令行参数传入,ps 命令可看到进程名里的明文口令。本地其他用户可借此窃取传输密钥。

这一事件说明:再简洁的工具也要持续做安全加固。croc 的响应迅速且彻底。

安装生态

在哪都能装

macOS

brew / MacPorts

Windows

Scoop / Choco / Winget

Linux

pacman / dnf / emerge / apk

Nix

nix-env / NixOS

Conda

conda-forge / pixi

Docker

官方镜像

Android

F-Droid 双客户端

一行脚本

curl getcroc.schollz.com

Termux、FreeBSD 也支持。Go 单二进制是跨平台分发的基础——无运行时依赖。

快速上手

两条命令完成传输

# 电脑 A:发送
croc send report.pdf secret-folder/
# 输出:Code is: apple-yellow-river
# 电脑 B:接收(输入口令即可)
croc apple-yellow-river
# 常用选项
croc send --code my-secret-123 file    # 自定义口令(≥6 字符)
croc send --qr file                      # 生成二维码
croc send --text "https://example.com"   # 发文本
croc --socks5 127.0.0.1:9050 send file   # 走 Tor 代理
cat file | croc send                    # 管道输入

零配置默认走官方公共中继,也可自建中继(croc relay)提升速度与隐私。

适用场景

谁该用 croc

风险提示

需要权衡

潜力评估

未来空间

CLI 文件传输领域的"瑞士军刀"。8 年沉淀、37.8k stars、仅 12 个开放 issue——这是健康度极高的成熟项目。Go 单二进制 + 全平台覆盖 + PAKE 端到端加密的组合,在"简单安全传文件"这个刚需上几乎没有对手。它不会成为风口上的明星,但会像 zip、curl 一样长期存在于每个开发者的工具箱里。挑战在于:移动端体验、中继网络质量、以及面对 Wormhole 等竞品的安全信任建设。作为基础设施型工具,稳定性与可信赖比功能扩张更重要。


上一个
Kronos
下一个
Openship
1 / 14