croc(文件安全传输小工具)是一款靠代码运行的文件传输工具。允许任何两台计算机简单和安全地传输文件和文件夹。据我所知,croc 是唯一的 CLI 文件传输工具。感兴趣的朋友快来下载使用吧。
croc 的特性:允许任意两台计算机传输数据(使用一个中继)
提供端到端加密(使用 PAKE)
支持方便的跨平台传输,支持 Windows、Linux、Mac
允许多文件传输
允许恢复被中断的传输
不需要本地服务器或端口转发
通过压缩和多路复用比虫洞、rsync、scp 更快(加速 1.5x 到 4x)
在 macOS 上,您可以使用Homebrew安装最新版本:
brew install croc
在 macOS 上,您还可以使用MacPorts安装最新版本:
sudo port selfupdate
sudo port install croc
在 Windows 上,您可以使用Scoop或Chocolatey安装最新版本:
scoop install croc
choco install croc
在 Unix 上,您可以使用Nix安装最新版本:
nix-env -i croc
在 Alpine Linux 上,您必须先安装依赖项:
apk add bash coreutils
wget -qO- https://getcroc.schollz.com | bash
在 Arch Linux 上,您可以使用以下命令安装最新版本pacman:
pacman -S croc
在 Fedora 上,您可以安装dnf:
dnf install croc
在 Gentoo 上你可以安装portage:
emerge.net-misc/croc
在 Termux 上,您可以安装pkg:
pkg install croc
在 FreeBSD 上,您可以安装pkg:
pkg install
要发送文件,只需执行以下操作:
$ croc send [file(s)-or-folder]
Sending 'file-or-folder' (X MB)
Code is: code-phrase
然后要在另一台计算机上接收文件(或文件夹),您可以这样做
croc code-phrase
代码短语用于建立密码验证密钥协议 (PAKE),该协议为发送方和接收方生成用于端到端加密的密钥。
有许多可配置的选项(请参阅 参考资料--help)。一组选项(如自定义中继、端口和代码短语)可以使用--remember.
自定义代码短语
您可以使用自己的密码短语(必须超过 6 个字符)发送。
croc send --code [code-phrase] [file(s)-or-folder]
允许在没有提示的情况下覆盖
默认情况下,croc 会提示是否覆盖文件。您可以使用--overwrite标志自动覆盖文件(仅限收件人)。例如,接收一个要自动覆盖的文件:
croc --yes --overwrite
使用管道 - 标准输入和标准输出
您可以通过管道传输到croc:
cat [filename] | croc send
在这种情况下croc,将自动使用标准输入数据并发送和分配一个文件名,如“croc-stdin-123456789”。要在您处接收到stdout,您可以随时使用--yes将自动批准传输并将其传输到stdout.
croc --yes [code-phrase] > out
打印到控制台的所有其他文本都将转到,stderr因此它不会干扰消息转到stdout。
发短讯
有时您想发送 URL 或短文本。除了管道之外,您还可以使用以下方式轻松发送文本croc:
croc send --text "hello world"
这将自动告诉接收者stdout在收到文本时使用,以便显示。
使用代理
您可以通过添加代理地址来使用代理作为与中继的连接--socks5。例如,您可以通过 Tor 中继发送:
croc --socks5 "127.0.0.1:9050" send SOMEFILE
改变加密曲线
您可以使用--curve标志从几个不同的椭圆曲线中选择用于加密。只有接受者可以选择曲线。例如,使用 P-521 曲线接收文件:
croc --curve p521
可用曲线为 P-256、P-348、P-521 和 SIEC。P-256 是默认曲线。
更改哈希算法
可以从几种不同的哈希算法中进行选择。默认是xxhash快速和彻底的算法。如果您想优化速度,您可以使用imohash更快的算法,但由于它对文件进行采样(而不是读取整个文件),它可能会错误地确定文件在两台传输的计算机上是相同的 - 尽管这只是一个如果您正在同步文件而不是向计算机发送新文件,则会出现问题。
croc send --hash imohash SOMEFILE
自主机继电器
需要中继来装订并行传入和传出连接。默认情况下,croc使用公共中继,但您也可以运行自己的中继:
croc relay
默认情况下,它使用 TCP 端口 9009-9013。确保打开它们。您可以自定义端口(例如croc relay --ports 1111,1112),但您必须至少有2 个用于中继的端口。第一个端口用于通信,后续端口用于多路数据传输。
--relay如果您想自定义托管您自己的主机,您可以通过输入更改您正在使用的中继来使用您的中继发送文件。
croc --relay "myrelay.example.com:9009" send [filename]
注意,发送时只需要包含第一个端口(通讯端口)。后续用于数据传输的端口将从中继传回给用户。
自主机中继(docker)
如果更容易,您还可以使用 Docker 运行中继:
docker run -d -p 9009-9013:9009-9013 -e CROC_PASS='YOURPASSWORD' schollz/croc
请务必包含中继的密码,否则任何请求都将被拒绝。
croc --pass YOURPASSWORD --relay "myreal.example.com:9009" send [filename]
注意:包含时,--pass YOURPASSWORD您可以改为传递带有密码的文件,例如--pass FILEWITHPASSWORD.