使用croc实现任意两台电脑(或服务器)之间互传文件
croc是一个很方便的传输工具,可用于任何两台已连网设备之间的文件传输,包括但不限于:
- 1、个人电脑与个人电脑互传文件;
- 2、个人电脑与远程服务器互传文件;
- 3、两个远程服务器之间互传文件;
安装
服务器端安装(会被安装到/usr/local/bin/
下)
curl https://getcroc.schollz.com | bash
macOS端安装
brew install croc
其它系统安装请参考:https://github.com/schollz/croc/blob/main/README.md。
使用
使用规则:必须先执行发送文件命令,执行完发送文件命令,会自动生成接收文件命令,你只需要复制粘贴到接收端运行就行。
上传文件:
比如我要上传文件到服务器,则说明是从我本地电脑发送文件到服务器,所以我必须在本地电脑执行发送命令
# 发送文件
croc send /path/to/filename
# 也支持传输目录
croc send /path/to/folder
以上命令运行后,它会输出类似以下的命令,你把它复制到接收端(即你服务器端)运行即可
croc 8350-kilo-giraffe-bonjour
下载文件
下载文件就是从服务器发送文件到本地电脑,那么你要在服务器执行发送命令
croc send /path/to/filename
等它输出接收命令后,你复制接收命令到你本地电脑上执行即可下载(接收命令是类似croc 1566-campus-charlie-parker
这样的,每次后面那串码都不一样)。
传输原理
它的传输是通过中继服务器来传输的,默认使用官方公共中继服务器,你可以搭建自己的中继服务器。
基本原理:croc
命令内置中继服务器域名(也可能是有域名列表api),当你执行croc send filename
时,它会跟中继服务器建立连接,并且返回一串唯一码,当你在接收端执行croc 唯一接收码
时,它也会连接同一个中继服务器,由于中继服务器之前已经和发送端建立了连接,于是当接收端拿“唯一接收码”去接收时,中继服务器就会把发送端与接收端连通,于是文件开始发送。
方便程度
非常方便,比起scp/rsync这些来说,方便的多,但比起trzsz来说,还是差点,因为trzsz始终在服务器端操作,无需切换到本地电脑端。
但它比trzsz好的一点是,它可以在任何两台设备之间传输,当然也就包括两台服务器之间,而trzsz只能本地电脑与服务器之间互传文件,无法实现服务器到服务器之间的传输。
安全性
由于通过了中继服务器,安全性从理论上来说是无法保障的,但是你可以自己搭建中转服务器,不过为了传个文件我还去搭建中转服务器,我觉得还是算了吧,如果是强需求另说。并且如果传输的文件大的话,还会消耗比较多的中继服务器的流量(流量是要花钱的)。
