Py学习  »  Git

文件互传神器,暴涨 32000+ GitHub Star!

GitCube • 3 月前 • 118 次点击  

日常工作中,我们经常会遇到这样一个看似简单、实则糟心的场景:

手里有个几 G 的大文件,或者是这周写好的代码文件夹,急需传给旁边的同事。

如果不巧,我们用的是 Mac,对方用的是 Windows,那 AirDrop 直接歇菜。

这时候通常的做法是打开微信或者网盘。

但要么被压缩画质,要么提示文件过大,还得登录账号,甚至还得忍受龟速的上传下载。

image-20251217095536083

更硬核一点的场景是,我们需要在本地电脑和远程 Linux 服务器之间互传文件。

每次都要用 scp 命令敲一长串 IP 地址,或者配置复杂的 FTP 服务,真的挺折磨人的。

直到我发现了 croc 这个开源工具,这种跨设备传输的体验才真正变得“顺滑”起来。

croc 是一个用 Go 语言编写的命令行文件传输工具,目前在 GitHub 上已经拿下了 32k+ 的 Star。

star-history-20251217

它解决的核心痛点非常明确:

如何在两台电脑之间,简单、安全、快速地传输文件,而不需要任何中间配置。

我们来看看它是怎么工作的。

它的操作逻辑非常符合直觉。

假设我们要发送一个文件,只需要在终端输入一行命令:

croc send [文件名]

这时候,工具会自动生成一个像“暗号”一样的短语,比如 anita-price-quick(通常是几个随机单词的组合)。

接收方在另一台电脑上——不管是 Mac、Windows 还是 Linux,甚至是在 Termux 里的 Android 手机——只需要输入这个“暗号”:

croc anita-price-quick

两台电脑瞬间就会建立连接,开始传输文件。

这中间最爽的一点是,我们完全不用管两台电脑在哪里。

哪怕不在同一个局域网,也不需要知道对方 IP,更别提那些繁琐的端口映射了。

之所以能这么方便,是因为 croc 依然采用了一个中继服务器(Relay)来握手。

Croc: Transfer Files and Folders Securely Between Computers

不过大家肯定会担心:走了中继服务器,数据安全吗?

这里就得提一下它的杀手锏:PAKE(密码认证密钥交换)协议。

简单来说,那个“暗号”不仅仅是用来匹配连接的,它还用于双方生成高强度的加密密钥。

这就意味着,数据是端到端加密的。

虽然流量经过了中继服务器,但中继服务器只负责搬运加密后的数据流,它根本不知道我们传的是什么。

这比很多网盘或者即时通讯软件要安全不少。

Securely send text message using Croc

除了安全,它在传输体验上也做得非常细致。

比如断点续传

传那种几十 G 的大文件,网络突然抖了一下断开了?

没事,不用从头再来。它能自动接上之前的进度,继续传。

再比如它原生支持目录传输。不需要先把文件夹打包成 zip,直接指那个文件夹,它自己会处理好。

而且它会根据网络情况优先尝试 IPv6,如果不行再回退到 IPv4,还能通过 Tor 等代理进行传输,适应性很强。

Securely send files with Croc via custom relay

在安装方面,因为它本身就是 Go 写的,编译出来就是一个单文件,没有什么复杂的依赖库。

如果我们用的是 macOS,直接用 Homebrew 就能搞定:

brew install croc

如果是 Windows 用户,可以通过 Scoop 安装,或者直接在 Release 页面下载 exe 文件扔到 Path 里:

scoop install croc

Linux 用户或者喜欢一行命令解决战斗的朋友,也可以直接运行官方提供的脚本:

curl https://getcroc.schollz.com | bash
How to install Croc secure file transfer app on Linux

当然,作为一个负责任的推荐,我们也要提一下它的注意事项。

默认情况下,croc 使用的是开发者提供的公共中继服务器。

对于绝大多数普通文件传输来说,这完全没问题,因为有端到端加密保护。

但如果我们对隐私有极高的洁癖,或者是公司内网有特殊的安全策略,croc 也允许我们自建中继服务器

只需要运行 croc relay,就能把任何一台服务器变成专属的中继节点,把数据掌控权完全握在自己手里。

Securely send files with Croc via custom relay

总的来说,croc 是那种一旦用过就回不去的工具。

它没有花里胡哨的界面,但把“传文件”这件事做到了极致的简单和高效。

GitHub 项目地址:https://github.com/schollz/croc

今天的分享到此结束,感谢大家抽空阅读,我们下期再见,Respect!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/190630