croc
是一款用于在计算机之间传输文件和文件夹的工具。它快速、安全且易于使用。它可以在任何两台计算机上运行,即使它们位于防火墙或 NAT 之后。。据我所知,croc 是唯一一款能够实现以下所有功能的 CLI 文件传输工具:
有关 croc
的更多信息,请参阅我的博客文章 或阅读我最近接受的采访。
您可以下载适用于您系统的最新版本,或者通过命令行安装:
curl https://getcroc.schollz.com | bash
使用 Homebrew:
brew install croc
使用 MacPorts:
sudo port selfupdate
sudo port install croc
您可以使用 Scoop、Chocolatey 或 Winget 安装最新版本:
scoop install croc
choco install croc
winget install schollz.croc
您可以使用 Nix 安装最新版本:
nix-env -i croc
您可以将以下命令添加到您的 configuration.nix:
environment.systemPackages = [
pkgs.croc
];
首先,安装依赖项:
apk add bash coreutils
wget -qO- https://getcroc.schollz.com | bash
使用 pacman
安装:
pacman -S croc
使用 dnf
安装:
dnf install croc
使用 portage
安装:
emerge net-misc/croc
使用 pkg
安装:
pkg install croc
使用 pkg
安装:
pkg install croc
您可以使用 conda-forge 全局安装pixi
:
pixi global install croc
或者使用 conda
安装到特定环境中:
conda install --channel conda-forge croc
将以下单行函数添加到您的 ~/.profile 中(适用于任何符合 POSIX 标准的 shell):
croc() { [ $# -eq 0 ] && set -- ""; docker run --rm -it --user "$(id -u):$(id -g)" -v "$(pwd):/c" -v "$HOME/.config/croc:/.config/croc" -w /c -e CROC_SECRET schollz/croc "$@"; }
您也可以直接将其粘贴到当前会话的终端中。首次运行时,Docker 将拉取镜像。通过 Docker 运行 croc
仅在当前目录及其子目录中有效。
如果您愿意,您可以安装 Go 并从源代码构建(需要 Go 1.22 及以上版本):
go install github.com/schollz/croc/v10@latest
有一个第三方 F-Droid 应用可供下载。
要发送文件,只需执行以下操作:
$ croc send [file(s)-or-folder]
发送“file-or-folder”(X MB)
代码为:code-phrase
然后,要在另一台计算机上接收文件(或文件夹),请运行:
croc code-phrase
代码短语用于建立密码验证的密钥协议 (PAKE),该协议会生成一个密钥,供发送方和接收方用于端到端加密。
croc
在 Linux 和 macOS 上,发送和接收过程略有不同,以避免通过进程名称泄露密钥。您需要将密钥作为环境变量运行 croc
。例如,要使用密钥“***”接收:
CROC_SECRET=*** croc
对于单用户系统,可以通过运行以下命令永久启用默认行为:
croc --classic
您可以使用自己的密码短语发送(必须超过 6 个字符):
croc send --code [密码短语] [文件或文件夹]
要自动覆盖文件而不提示,请使用“--overwrite”标志:
croc --yes --overwrite <code>
要排除文件夹发送,请使用“--exclude”标志并以逗号分隔排除项:
croc send --exclude “node_modules,.venv” [文件夹]
您可以通过管道连接到 croc
:
cat [文件名] | croc send
要将文件接收到 stdout
,您可以使用:
croc --yes [code-phrase] > out
要发送 URL 或短文本,请使用:
croc send --text "hello world"
您可以通过添加 --socks5
来通过代理发送文件:
croc --socks5 "127.0.0.1:9050" send SOMEFILE
要选择不同的椭圆曲线进行加密,请使用 --curve
标志:
croc --curve p521 <codephrase>
为了加快哈希速度,请使用 imohash
算法:
croc send --hash imohash SOMEFILE
您可以运行自己的中继:
croc relay
默认情况下,它使用 TCP 端口 9009-9013。您可以自定义端口(例如,croc relay --ports 1111,1112
),但至少需要2个端口。
使用中继发送文件:
croc --relay "myrelay.example.com:9009" send [filename]
您也可以使用 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]
croc
经历了多次迭代,非常感谢大家的贡献!特别感谢:
以及更多!