Croc下一代文件传输利器

croc.jpg

概述

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

在两台或多台计算机之间传输文件的方法有很多。你可以使用基于服务器的文件共享工具,点对点文件共享app,U盘,外部硬盘驱动器,SCP,NFS,FTP,HTTP,云存储平台等等。

croc 是一个命令行工具,可以让你轻松、快速、安全地在计算机之间传输文件和文件夹。

使用 croc 工具传输数据的速度很快,因为它充当系统之间的中继服务器。它在两台计算机之间创建了全双工实时通信层,因此「上传」和「下载」任务在两台计算机之间同时发生。

croc 使用密码验证密钥交换(PAKE)库提供端到端加密。PAKE库允许两个人使用双方都知道的弱密钥来生成强密钥。然后将此密钥用于进一步加密。由于密钥仅由发送者和接收者知道,因此即使第三者知道原始密码,也没有办法知道秘钥。

croc 能够一次在计算机之间传输多个文件。如果数据传输由于任何原因而中断,下次传输的时候它可以从上次中断的地方继续进行文件传输。

由于 croc 使用中继,因此你不需要中央服务器或端口转发。它是一个跨平台的应用程序,因此你可以在 Linux,Mac 和 Windows 平台之间传输数据。

简而言之, croc 执行以下操作:

  • 使用中继在两台计算机之间传输数据,
  • 使用 PAKE 库提供 端到端加密
  • 一次传输多个文件
  • 断点续传,
  • 不需要中央服务器端口转发,
  • ipv6-first 和 ipv4 后备,
  • 零依赖性,
  • 跨平台
  • 免费和开源。

croc 使用 Go 编程语言所编写,并遵从 MIT 许可免费提供。

Linux上安装Croc工具

可以在 Bash 上使用以下命令将 croc 安装在所支持的任何 Linux 和 Unix 发行版上

curl https://getcroc.schollz.com | bash

这个命令将把 croc 源码下载到本地并安装在 /usr/local/bin/ 目录下。

如果你不想直接注入Shell,可以从**发行版页面**下载预编译的二进制文件.

Windows上安装Croc工具

可以从**发行版页面**下载预编译的二进制文件.
ww.png

解压后将croc.exe 移动到 C:\Windows\System32\ 目录下

使用Croc在计算机之间传输文件和文件夹

在使用之前,先确保在所有系统上都安装了 croc

要使用 croc 传输文件/文件夹,只需运行:

croc send

实例

croc send file.txt

croc 将生成如下的随机代码短语,相当于暗号。

Sending 'file.txt' (116 B)
Code is: slow-tomato-almond
On the other computer run

croc slow-tomato-almond

在这里,代码短语(暗号)是 slow-tomato-almond。该代码短语用于建立经过密码验证的密钥协议(PAKE),该协议会生成供发送方和接收方用于端到端加密的秘钥。

如果想要在另一台计算机上接收上述文件,那么收件人应输入上述输出的最后一行命令:

croc slow-tomato-almond

y,然后按回车键来接收文件。

Accept 'file.txt' (116 B)? (y/n) y

Receiving (file.txt 100% |████████████████████| (116/116 B, 32.966 kB/s) [0s:0s]

设置自定义代码短语

每次发送文件或文件夹时, croc 都会生成一个随机代码短语,但因为每次都不一样,使用起来还是不太方便。所以我们可以自定义一个代码短语,提高效率。可以使用 --code 参数来设置自定义代码短语来发送文件/文件夹。

croc send --code xxx123 file.txt

这里的xxx123 就是我们自定义的代码短语

收件人可以使用以下命令接收文件(使用自定义的代码短语):

croc xxx123

设置输出文件夹

默认情况下, croc 会将数据下载到当前工作目录中。您可以使用 --out 选项使其使用不同的下载位置。

在接收端,运行:

croc --out ~/Downloads

出现提示时输入代码短语。

使用代理

发送使用socks5代理

croc --socks5 "127.0.0.1:1080" send FILE

接受使用代理

croc --socks5 "127.0.0.1:1080" password

自主中继服务器

需要中继来装订并行传入和传出连接。默认情况下,croc使用公共中继,但您也可以运行自己的中继

croc relay

默认情况下,它使用 TCP 端口 9009-9013。确保打开它们。您可以自定义端口(例如croc relay --ports 1111,1112),但您必须至少有2 个 用于中继的端口。第一个端口用于通信,后续端口用于多路数据传输。

--relay如果您想自定义托管您自己的主机,您可以通过输入更改您正在使用的中继来使用您的中继发送文件。

croc --relay "myrelay.example.com:9009" send [filename]

包含密码的自主中继

croc --pass YOURPASSWORD relay

发送

croc --pass YOURPASSWORD --relay "myrelay.example.com:9009" send [filename]

接收

croc --relay myrelay.example.com:9009 --pass YOURPASSWORD 5048-reverse-risk-declare

这里有一个坑,我以为自主中继能帮助收发两端建立端到端文件传输,但是试了下后,流量是经过服务器中转的。

获得帮助

要获取帮助,请运行以下命令

croc --help

原文参考:
https://www.lxlinux.net/transfer-files-and-folders-between-linux-computers-with-croc.html

https://blog.wu-boy.com/2021/02/share-files-between-two-computer-using-croc-tool/

# croc 

本文由:星际难民
实践,测试,整理发布.如需转载请注明地址 本文标题:Croc下一代文件传输利器
地址:https://530503.xyz/articles/2021/04/15/1618466542578.html

评论

取消