这个项目能做什么
croc 是一款设计用于在任意两台计算机之间简单安全地交换文件和文件夹的命令行文件传输工具。根据其 README,它结合了点对点传输和中继回退,基于密码认证密钥协议(PAKE)的端到端加密,跨平台支持(Windows、Linux、macOS 和浏览器客户端),多文件传输,可恢复的中断传输,无需本地服务器或端口转发。它被描述为优先使用 IPv6 并回退到 IPv4,能够通过代理(如 Tor)工作。
使用围绕一个简短的代码短语。发送方运行 `croc send [文件或文件夹]`,会打印出一个代码短语;接收方在另一台机器上运行 `croc 代码短语`。该代码短语驱动 PAKE 握手,生成用于加密的共享密钥。在 Linux 和 macOS 上,README 推荐通过环境变量(`CROC_SECRET=*** croc`)传递密钥,以避免通过进程名泄露,`--classic` 选项可在单用户系统上恢复默认行为。
除了基本的发送/接收,该工具记录了许多选项:自定义代码短语、`--overwrite` 和 `--rename` 处理现有文件、`--exclude` 和 `--exclude-file` 过滤文件夹内容、通过 stdin/stdout 管道传输、使用 `--text` 发送短文本、发送多个文件或文件夹、显示用于移动设备的二维码、SOCKS5 代理支持、可选加密曲线、替代的 `imohash` 哈希算法、剪贴板行为标志和脚本静默模式。
README 还描述了 `croc ssh`,它在 Linux、macOS、FreeBSD 或 OpenBSD 上共享持久终端会话。主机发出单独的六个单词邀请,供读写和只读参与者使用;会话使用临时 WireGuard 路径和临时 SSH 主机密钥,远程命令、转发和 SFTP 被禁用。`croc store` 模式将客户端加密的密文上传以供后续检索,支持可配置的下载限制和过期时间,浏览器链接的解密密钥位于 URL 片段中,并有撤销命令。
传输选择默认为 `--transport auto`:在 PAKE 握手后,兼容的原生客户端尝试基于 WireGuard 的路径,DERP 回退和 NAT 遍历,否则回退到 croc 的中继数据端口。用户可通过 `croc relay`(默认 TCP 端口 9009-9013)或 Docker 自托管中继,可选密码。React/Vite 网页客户端捆绑在单独的 `croc-web` 服务器中,可发送和接收文件并加入 `croc ssh` 会话,与 CLI 兼容。安装通过 shell 脚本、Homebrew、MacPorts、Scoop、Chocolatey、Nix、Alpine、Debian、Arch、Termux、FreeBSD、Conda、Docker、使用 Go 从源代码构建,以及社区提供的 Android 和桌面 GUI 应用程序进行记录。部署说明涵盖 Disco,包括环境变量、中继端口和持久化存储卷。
评论
0 评分人数达到10人后显示
登录后参与讨论。