Croc 详解:2026 年最安全的命令行文件传输工具
在 2026 年的今天,我们仍然经常需要在计算机之间传输文件。虽然有很多云存储服务可用,但有时候你需要的是一种快速、安全、无需注册的点对点传输方式。这就是 croc 大显身手的地方。
什么是 Croc?¶
croc 是一个用 Rust 编写的命令行工具,它允许任意两台计算机之间简单安全地传输文件和文件夹。与其他文件传输工具不同,croc 具有以下独特优势:
- 端到端加密:所有传输都使用 PAKE(密码认证密钥交换)协议进行加密
- 中继辅助传输:通过公共中继服务器建立连接,绕过 NAT 和防火墙
- 断点续传:支持中断后继续传输,大文件也不怕
- 跨平台:支持 Windows、macOS、Linux 和 BSD
- 无需开放端口:不需要配置防火墙或端口转发
安装 Croc¶
Linux 系统¶
Fedora/RHEL/CentOS:
sudo dnf install croc
Debian/Ubuntu:
curl https://getcroc.schollz.com | bash
Arch Linux:
yay -S croc
macOS¶
使用 Homebrew:
brew install croc
Windows¶
使用 Chocolatey:
choco install croc
或者从 GitHub Releases 下载预编译的二进制文件。
基本使用方法¶
croc 的使用非常简单。传输文件只需要两个步骤:发送方生成代码,接收方输入代码。
发送文件¶
在发送方计算机上:
croc send /path/to/file.txt
或者发送整个文件夹:
croc send /path/to/folder/
croc 会生成一个类似这样的代码:
Sending 'file.txt' (2.5 MB)
Code is: 1234-abcd-efgh-5678
接收文件¶
在接收方计算机上,只需输入:
croc 1234-abcd-efgh-5678
文件就会开始传输到当前目录。
高级使用技巧¶
自定义密码¶
如果你想要自己设置传输密码而不是让 croc 自动生成:
# 发送方
croc send --pass mysecretpassword file.txt
# 接收方
croc --pass mysecretpassword 1234-abcd-efgh-5678
使用自定义中继服务器¶
croc 默认使用公共中继服务器,但你也可以搭建自己的:
# 发送方
croc --relay myrelay.example.com send file.txt
# 接收方
croc --relay myrelay.example.com 1234-abcd-efgh-5678
传输多个文件¶
croc send file1.txt file2.txt file3.txt
或者使用通配符:
croc send *.pdf
从标准输入传输¶
# 发送方
cat secret.txt | croc send
# 接收方
croc > received.txt
安全特性详解¶
PAKE 加密协议¶
croc 使用 SPAKE2+ 协议进行密码认证密钥交换。这意味着:
- 密码不会被传输:只有密码的加密证明被交换
- 防止中间人攻击:即使中继服务器被攻破,攻击者也无法解密文件
- 前向保密:每次传输使用不同的会话密钥
端到端加密流程¶
发送方 中继服务器 接收方
| | |
|---- 加密文件内容 -------->| |
| |---- 转发加密数据 -------->|
|<--- 确认密钥交换 ---------| |
| |<--- 确认密钥交换 ---------|
|==== 直接 P2P 传输建立 =====|==== 直接 P2P 传输建立 =====|
一旦连接建立,文件会直接在两台计算机之间传输,中继服务器只用于初始握手。
实际应用场景¶
场景 1:快速分享大文件¶
需要给同事发送一个 2GB 的视频文件,但公司邮箱附件限制是 25MB。使用 croc:
croc send presentation-video.mp4
# 通过即时通讯工具告诉同事代码
# 同事输入代码接收
场景 2:跨网络服务器传输¶
在两个不同数据中心的服务器之间传输日志文件:
# 服务器 A
croc send /var/log/application.log
# 服务器 B(通过 SSH)
croc [代码]
场景 3:备份到家庭 NAS¶
从工作电脑加密传输敏感文件到家庭 NAS:
croc --pass "strong-password" send confidential/
性能对比¶
根据实际测试,croc 在不同网络环境下的表现:
| 网络环境 | 平均速度 | 备注 |
|---|---|---|
| 局域网 | 50-100 MB/s | 直接 P2P 连接 |
| 同城宽带 | 10-30 MB/s | 受上行带宽限制 |
| 跨国传输 | 2-8 MB/s | 延迟影响握手速度 |
与其他工具对比¶
| 特性 | croc | scp | rsync | Magic Wormhole |
|---|---|---|---|---|
| 端到端加密 | ✅ | ❌ | ❌ | ✅ |
| 穿透 NAT | ✅ | ❌ | ❌ | ✅ |
| 断点续传 | ✅ | ❌ | ✅ | ❌ |
| 易用性 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ |
| 跨平台 | ✅ | ⭐ | ⭐ | ✅ |
搭建自己的中继服务器¶
如果你担心公共中继服务器的隐私问题,可以搭建自己的:
# 安装
go install github.com/schollz/croc/v10/src/croc@latest
# 运行中继服务器
croc relay
# 默认监听端口:9009, 9010, 9011, 9012, 9013
然后在 Docker 中运行:
docker run -d \
-p 9009:9009 -p 9010:9010 -p 9011:9011 \
-p 9012:9012 -p 9013:9013 \
--name croc-relay \
schollz/croc:latest relay
常见问题¶
Q: 传输中断了怎么办?¶
A: croc 支持断点续传。只需重新运行相同的命令,它会自动从断点继续。
Q: 如何验证文件完整性?¶
A: croc 默认使用 SHA-256 校验和验证文件完整性。传输完成后会自动校验。
Q: 可以限制传输速度吗?¶
A: 可以,使用 --rate 参数:
croc --rate 1mbps send file.txt
Q: 支持多接收方吗?¶
A: 是的,同一个代码可以被多人使用,每个人都会收到完整的文件副本。
总结¶
croc 是 2026 年最值得使用的命令行文件传输工具之一。它将安全性、易用性和功能性完美结合,无论是开发者、系统管理员还是普通用户,都能从中受益。
主要优势: - 🛡️ 企业级加密保护 - 🚀 快速简单的使用体验 - 🌐 无需配置网络即可跨互联网传输 - 📦 支持任意大小的文件和文件夹
项目地址: - GitHub: https://github.com/schollz/croc - 官网:https://croc.schollz.com - 文档:https://github.com/schollz/croc/blob/main/README.md
下次需要快速安全地传输文件时,试试 croc 吧!