croc:用一句“暗号”在任意两台电脑间安全传输文件
你是否曾经被“想把一个文件从公司电脑传到家里电脑”这件事折磨过?微信压缩画质、网盘限速、U 盘忘带、临时搭个 HTTP 服务器又要折腾防火墙和内网穿透……croc 的出现,旨在彻底解决这个问题。它是一个用 Go 编写、以 CLI 为核心的跨平台点对点文件传输工具,只需要发送方生成一句“暗号”,接收方输入同一句暗号,两台电脑之间就能建立起端到端加密的直连通道,文件和文件夹便会自动飞过去。本文将带你全面了解这个潜力新星。
截至目前,croc 最令人称道的一点是:它是极少数同时满足“任意两台电脑可互通、端到端加密、跨平台、支持多文件、可断点续传、无需本地服务器、无需端口转发”这七项条件的命令行传输工具——听起来像是一份“成年人的文件传输需求清单”,而它一项不落地全部打了勾。
截至收录:
croc stars数:40355
croc forks数:1619
croc项目目录截图

croc项目核心亮点
🔐 暗号即密钥,PAKE 端到端加密:croc 使用 PAKE(Password-Authenticated Key Agreement,密码认证密钥协商)协议,把你们共享的那句“code-phrase”转化为只有发送方和接收方才知道的会话密钥。整个传输过程端到端加密,中继服务器只负责牵线搭桥,无从窥探文件内容。
🌍 任意两台电脑都能连,P2P 优先、中继兜底:croc 会优先尝试建立点对点直连;当 NAT 环境太复杂、直连打不通时,会自动退回中继模式。你不需要有公网 IP,不需要配端口转发,也不需要在本机跑一个服务器——两个身处不同内网的人也能顺利传文件。
💻 真正意义上的跨平台互通:Windows、Linux、macOS、FreeBSD、Android、Termux,甚至浏览器端都能用。浏览器版本与 CLI 完全兼容,也就是说你可以用手机浏览器接收电脑 CLI 发出的文件,也可以反过来操作,无需安装任何东西。
♻️ 断点续传 + 多文件 + 目录整体发送:一次可以发送多个文件甚至整个文件夹;传输中途断网或中断,重新连接后可以继续,不必从头再来,大文件传输终于不用再提心吊胆。
🧅 IPv6 优先,可走代理甚至 Tor:网络层设计为 IPv6 优先、IPv4 自动回退,并支持 --socks5 代理。如果你处在审查严格或只允许代理出网的网络环境,也能通过 Tor 等方式完成传输。
🖥️ 附带 croc ssh 共享终端:除了传文件,你还可以用 croc ssh 在 Linux/macOS/FreeBSD/OpenBSD 上开启一个共享终端会话,支持读写与只读两种角色。它不暴露 SSH 守护进程、不需要账号、公网 IP、入站端口或 SSH 密钥配置,邀请码本身就是凭证。
croc项目快速开始
只需几步,你就能在本地运行起 croc:
- 安装(选择一种适合你的方式):
“`bash
# 通用一键安装脚本
$ curl https://getcroc.com | bashmacOS(Homebrew)
$ brew install croc
Windows(Scoop / Chocolatey)
$ scoop install croc
$ choco install crocArch Linux
$ pacman -S croc
从源码编译(需要 Go 1.27+)
$ go install github.com/schollz/croc/v11@latest
“` - 在发送方发起传输:
bash
$ croc send [file(s)-or-folder]
Sending file-or-folder (X MB)
Code is: code-phrase - 在接收方输入暗号接收:
bash
$ croc code-phrase在 Linux / macOS 上,为了避免暗号通过进程名泄漏,推荐把暗号放进环境变量:
bash
$ CROC_SECRET=code-phrase croc - 更多常用玩法:
“`bash
# 使用自定义暗号(至少 6 个字符)
$ croc send –code my-secret-code ./video.mp4生成二维码,方便手机扫码接收
$ croc send –qr ./photos
通过管道发送 / 接收
$ cat bigfile.bin | croc send
$ croc –yes code-phrase > out.bin发送一段文本或链接
$ croc send –text “https://example.com”
“`
croc项目应用场景
场景一:跨设备、跨网络的文件搬运:开发者在家里的台式机和公司的笔记本之间同步项目压缩包、日志文件或数据集,两台机器都不需要公网 IP,也无须配置内网穿透。一句暗号,几分钟搞定。
场景二:替代网盘与即时通讯工具传输大文件:设计师要把几个 GB 的素材发给客户,用网盘要上传等待、还受免费限速困扰;用聊天工具则会压缩画质。croc 直接在两台电脑之间点对点传输,速度取决于双方带宽,且支持断点续传。
场景三:远程协作与共享终端演示:运维或结对编程场景下,使用 croc ssh 可以快速拉起一个共享终端,让只读或读写参与者同时观看同一块屏幕输出,无需开放 SSH 端口或准备账号体系。
场景四:受限网络环境下的安全传输:在只允许代理出网、或对隐私要求较高的环境中,croc 支持 SOCKS5 代理与 Tor,并可通过 --relay 自建中继服务器,把数据流转完全掌握在自己手里。
场景五:服务器与本地之间的临时传文件:通过 SSH 登录到一台跳板机想往外传文件时,往往受限于端口与权限。croc 只需要执行一条命令即可完成传输,无需改动任何防火墙规则。
用户案例:croc 已被大量开发者和运维人员用于日常的文件交换与自动化脚本中,社区还衍生出了多个图形化客户端,包括 Android 端的 crocgui、croc-app、FlCroc,以及桌面端的 Croc GUI、croc-desktop、Swamp Swap 等,让不习惯命令行的用户也能享受同样的传输体验。
croc项目链接
schollz / croc项目地址:https://github.com/schollz/croc
本文地址:https://www.tgoos.com/46543
