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

时间:2020-03-21 11:48:27  来源:igfitidea点击:

有很多方法可以在两台或者更多台计算机之间传输文件。
我们可以使用基于服务器的文件共享工具,对等文件共享应用程序,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

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

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

该命令将Croc安装在“/usr/local/bin /”位置。

如果我们不想直接将某些东西注入“ SHELL”中,则可以从发行版页面下载预编译的二进制文件,并使用发行版的软件包管理器进行安装。

例如,我使用以下命令在Ubuntu系统上安装了Croc deb文件:

$sudo apt install gdebi
$sudo gdebi croc_8.3.2_Linux-64bit.deb

Croc在[Community]中可用,因此我们可以使用“ pacman”将其安装在Arch Linux及其变体中,如下所示:

$pacman -S croc

在NixOS上,运行:

$nix-env -i croc

Croc也可以作为“快照”使用。

$snap install croc

如果我们已经在Linux系统上安装了Go,也可以从源代码构建Croc。

$GO111MODULE=on go get -v github.com/schollz/croc/v8

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

确保已在所有系统上安装了Croc。

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

$croc send <file-or-folder-path>

例子:

$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”,然后按Enter键以接收文件。

Accept 'file.txt' (116 B)? (y/n) y
Receiving (<-192.168.225.37:9009)
file.txt 100% |████████████████████| (116/116 B, 32.966 kB/s) [0s:0s] ✔️

输出示例:

设置自定义代码短语

就像我已经提到的那样,每次我们发送文件或者文件夹时,Croc都会生成一个随机代码。
我们还可以使用'--code'选项使用选择的自定义代码发送文件/文件夹。

$croc send --code download-this file.txt

其中““ download-this”“是代码短语。

输出示例:

Sending 'file.txt' (116 B)
Code is: download-this
On the other computer run
croc download-this

收件人可以使用以下命令接收文件:

$croc download-this

发短讯

就像文件和文件夹一样,我们也可以共享文本。
当我们要共享消息或者URL时,此功能很有用。

要使用Croc发送文本,请运行:

$croc send --text "Welcome to theitroad"

输出示例:

Sending 'text' (20 B)
Code is: natural-roof-clock
On the other computer run
croc natural-roof-clock
Sending (->[fe80::a00:27ff:fe10:7cc1%wlp9s0]:39916)

收件人将使用以下命令获取文本:

$croc natural-roof-clock
Accept 'text' (20 B)? (y/n) y
Receiving (<-[fe80::d710:cf4:bb49:8b20%enp0s8]:9009)
Welcome to theitroad

使用管道

我们可以将文件的输出通过管道传输到croc,如下所示。

$cat file.txt | croc send

输出示例:

Sending 'stdin' (116 B)
Code is: dexter-cowboy-soprano
On the other computer run
croc dexter-cowboy-soprano

Croc将自动使用stdin数据并发送和分配文件名,例如“ croc-stdin-728899651”。

在接收端,用户可以使用以下任一命令来接收文件:

$croc dexter-cowboy-soprano

或者,使用:

$croc --yes dexter-cowboy-soprano > out

其中“-是”将不要求任何确认,并自动同意所有提示。

设置输出文件夹

默认情况下,Croc会将数据下载到当前工作目录中。
我们可以使用'--out'标志使它使用不同的下载位置。

$croc send file.txt

输出示例:

Sending 'file.txt' (116 B)
Code is: program-public-mystery
On the other computer run
croc program-public-mystery

在接收端,运行:

$croc --out ~/Downloads

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

获得帮助

要获取帮助,请运行:

$croc --help
NAME:
   croc - easily and securely transfer stuff from one computer to another
USAGE:
   Send a file:
      croc send file.txt
   Send a file with a custom code:
      croc send --code secret-passphrase file.txt
VERSION:
   v8.3.2-7d155ad
COMMANDS:
   send     send a file (see options with croc send -h)
   relay    start your own relay (optional)
   help, h  Shows a list of commands or help for one command
GLOBAL OPTIONS:
   --remember      save these settings to reuse next time (default: false)
   --debug         toggle debug mode (default: false)
   --yes           automatically agree to all prompts (default: false)
   --stdout        redirect file to stdout (default: false)
   --no-compress   disable compression (default: false)
   --ask           make sure sender and recipient are prompted (default: false)
   --relay value   address of the relay (default: "142.93.177.120:9009") [$CROC_RELAY]
   --relay6 value  ipv6 address of the relay (default: "[2604:a880:800:c1::14c:1]:9009") [$CROC_RELAY6]
   --out value     specify an output folder to receive the file (default: ".")
   --pass value    password for the relay (default: "pass123") [$CROC_PASS]
   --help, -h      show help (default: false)
   --version, -v   print the version (default: false)