日常工作中,我们经常会遇到这样一个看似简单、实则糟心的场景:
手里有个几 G 的大文件,或者是这周写好的代码文件夹,急需传给旁边的同事。
如果不巧,我们用的是 Mac,对方用的是 Windows,那 AirDrop 直接歇菜。
这时候通常的做法是打开微信或者网盘。
但要么被压缩画质,要么提示文件过大,还得登录账号,甚至还得忍受龟速的上传下载。
更硬核一点的场景是,我们需要在本地电脑和远程 Linux 服务器之间互传文件。
每次都要用scp命令敲一长串 IP 地址,或者配置复杂的 FTP 服务,真的挺折磨人的。
直到我发现了croc这个开源工具,这种跨设备传输的体验才真正变得“顺滑”起来。
croc是一个用 Go 语言编写的命令行文件传输工具,目前在 GitHub 上已经拿下了 32k+ 的 Star。
它解决的核心痛点非常明确:
如何在两台电脑之间,简单、安全、快速地传输文件,而不需要任何中间配置。
我们来看看它是怎么工作的。
它的操作逻辑非常符合直觉。
假设我们要发送一个文件,只需要在终端输入一行命令:
crocsend[文件名]
这时候,工具会自动生成一个像“暗号”一样的短语,比如anita-price-quick(通常是几个随机单词的组合)。
接收方在另一台电脑上——不管是 Mac、Windows 还是 Linux,甚至是在 Termux 里的 Android 手机——只需要输入这个“暗号”:
crocanita-price-quick
两台电脑瞬间就会建立连接,开始传输文件。
这中间最爽的一点是,我们完全不用管两台电脑在哪里。
哪怕不在同一个局域网,也不需要知道对方 IP,更别提那些繁琐的端口映射了。
之所以能这么方便,是因为 croc 依然采用了一个中继服务器(Relay)来握手。
不过大家肯定会担心:走了中继服务器,数据安全吗?
这里就得提一下它的杀手锏:PAKE(密码认证密钥交换)协议。
简单来说,那个“暗号”不仅仅是用来匹配连接的,它还用于双方生成高强度的加密密钥。
这就意味着,数据是端到端加密的。
虽然流量经过了中继服务器,但中继服务器只负责搬运加密后的数据流,它根本不知道我们传的是什么。
这比很多网盘或者即时通讯软件要安全不少。
除了安全,它在传输体验上也做得非常细致。
比如断点续传。
传那种几十 G 的大文件,网络突然抖了一下断开了?
没事,不用从头再来。它能自动接上之前的进度,继续传。
再比如它原生支持目录传输。不需要先把文件夹打包成 zip,直接指那个文件夹,它自己会处理好。
而且它会根据网络情况优先尝试 IPv6,如果不行再回退到 IPv4,还能通过 Tor 等代理进行传输,适应性很强。
在安装方面,因为它本身就是 Go 写的,编译出来就是一个单文件,没有什么复杂的依赖库。
如果我们用的是 macOS,直接用 Homebrew 就能搞定:
brewinstall croc
如果是 Windows 用户,可以通过 Scoop 安装,或者直接在 Release 页面下载 exe 文件扔到 Path 里:
scoopinstall croc
Linux 用户或者喜欢一行命令解决战斗的朋友,也可以直接运行官方提供的脚本:
curlhttps://getcroc.schollz.com | bash
当然,作为一个负责任的推荐,我们也要提一下它的注意事项。
默认情况下,croc 使用的是开发者提供的公共中继服务器。
对于绝大多数普通文件传输来说,这完全没问题,因为有端到端加密保护。
但如果我们对隐私有极高的洁癖,或者是公司内网有特殊的安全策略,croc 也允许我们自建中继服务器。
只需要运行croc relay,就能把任何一台服务器变成专属的中继节点,把数据掌控权完全握在自己手里。
总的来说,croc 是那种一旦用过就回不去的工具。
它没有花里胡哨的界面,但把“传文件”这件事做到了极致的简单和高效。
GitHub 项目地址:https://github.com/schollz/croc
今天的分享到此结束,感谢大家抽空阅读,我们下期再见,Respect!