开发工具#开源

croc:跨设备安全传文件的命令行工具

croc 是一个开源命令行文件传输工具,用一条口令短语就能让不同网络、不同系统间的两台电脑点对点互传文件,端到端加密,支持断点续传与多文件传输。

项目资料

GitHub Ecosystem
仓库地址github.com/schollz/croc
许可证
MIT
主语言
Go
星标
40,443
核查时间
2026-09-25

以上快照资料以核查当日为准,可能随版本或运营策略变化。

在两台不在同一局域网的电脑之间传文件,常见做法是先上传网盘再分享链接,或者找个 U 盘中转。croc 给出了一条更直接的路:这个用 Go 编写的开源命令行工具,让发送方运行一条命令拿到一串口令短语,接收方在另一台机器上输入它,文件便直接点对点传过去,全程端到端加密。GitHubDaily 曾在 2025 年 4 月推荐过这款工具。

核心功能

  • 口令短语即密钥:发送时生成的口令短语经 PAKE 完成密钥协商,据此建立收发双方的端到端加密通道,可用 --curve p521 更换加密曲线。
  • 跨平台互通:支持 Windows、macOS 与 Linux,另有浏览器版,与命令行完全兼容、可互相收发,可直接访问 getcroc.com 使用。
  • 断点续传:传输中断后可从中断处恢复,不必从头再来。
  • 多文件与管道:一次可发送多个文件或整个文件夹,也支持管道(stdin/stdout)收发,还能用 --text 发文本、--qr 出二维码供手机扫码接收。
  • 免配置直连:无需自建服务器或端口转发,优先 P2P 直连,不通时自动回落中继,也可经 --socks5 代理(如 Tor)传输。
  • 自建中继:croc relay 一条命令即可跑起中继,用 Docker 部署同样方便,再以 --relay 与 --pass 指定使用。

典型使用场景

  • 跨网络、跨系统(比如 Windows 与 Mac 之间)直接互传大文件或整个文件夹,全程不经手第三方网盘。
  • 发送方用 --qr 生成二维码,让对方用手机上的浏览器或 F-Droid 客户端扫码即可接收。
  • 开发者用 cat file | croc send 传命令输出,或用 croc send --text 把链接、文本片段发给另一台机器;有自建需求的团队可以架设自己的中继。

快速上手

安装(macOS 可用 Homebrew,任意系统可用官方脚本):

brew install croc
curl https://getcroc.com | bash

之后两步完成传输:发送方运行 croc send 文件或文件夹,终端会显示一串口令短语;接收方在另一台电脑上输入 croc 口令短语,即可开始接收。

小结

croc 适合不想再依赖网盘或 U 盘、需要在任意两台设备间安全直传文件的用户:熟悉命令行的人两条命令即可完成一次传输,非技术用户也有浏览器版、Android 客户端和社区 GUI 可选。项目以 MIT 许可证开源,用 Go 编写。有两点需要留意:在 Linux 或 macOS 上接收时建议用 CROC_SECRET 环境变量传入口令,避免口令出现在进程列表里;P2P 不通时传输会经公共中继,README 说明这类节点属尽力而为、可能施加公平性限制,在意速度或可用性的可以自建中继。