使用croc命令在Linux系统电脑之间传输文件和文件夹
嵌入式Linux
共 3390字,需浏览 7分钟
·
2022-02-12 21:31
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
,可以从**发行版页面**下载预编译的二进制文件,并使用发行版的软件包管理器进行安装。$ sudo apt install gdebi
$ sudo gdebi croc_8.3.2_Linux-64bit.deb
pacman
将 croc
安装在 Arch Linux 及其衍生版本中:$ pacman -S croc
$ nix-env -i croc
croc
也可用 snap
方式进行安装:$ snap install croc
croc
。$ GO111MODULE=on go get -v github.com/schollz/croc/v8
使用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 (<-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
发送文本
croc
发送文本,可以运行以下命令:$ croc send --text "Hello!!"
Sending 'text'
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' ? (y/n) y
Receiving (<-[fe80::d710:cf4:bb49:8b20%enp0s8]:9009)
Hello!!
使用管道
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
--yes
选项不会要求任何确认,并自动同意所有提示。设置输出文件夹
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)
评论