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:

  1. 安装(选择一种适合你的方式):
    “`bash
    # 通用一键安装脚本
    $ curl https://getcroc.com | bash

    macOS(Homebrew)

    $ brew install croc

    Windows(Scoop / Chocolatey)

    $ scoop install croc
    $ choco install croc

    Arch Linux

    $ pacman -S croc

    从源码编译(需要 Go 1.27+)

    $ go install github.com/schollz/croc/v11@latest
    “`

  2. 在发送方发起传输:
    bash
    $ croc send [file(s)-or-folder]
    Sending file-or-folder (X MB)
    Code is: code-phrase
  3. 在接收方输入暗号接收:
    bash
    $ croc code-phrase

    在 Linux / macOS 上,为了避免暗号通过进程名泄漏,推荐把暗号放进环境变量:
    bash
    $ CROC_SECRET=code-phrase croc

  4. 更多常用玩法:
    “`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

声明:本站资源均整理自互联网,版权归原作者所有,仅供学习交流使用,请勿直接商用,若需商用请购买正版授权。因违规使用产生的版权及法律责任由使用者自负。部分资源可能包含水印或引流信息,请自行甄别。若链接失效可联系站长尝试补链。若侵犯您的权益,请邮件(将 # 替换为 @)至 feedback#tgoos.com,我们将及时处理删除。转载请保留原文链接,感谢支持原创。