Skip to content

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+ 协议进行密码认证密钥交换。这意味着:

  1. 密码不会被传输:只有密码的加密证明被交换
  2. 防止中间人攻击:即使中继服务器被攻破,攻击者也无法解密文件
  3. 前向保密:每次传输使用不同的会话密钥

端到端加密流程

发送方                    中继服务器                    接收方
  |                           |                           |
  |---- 加密文件内容 -------->|                           |
  |                           |---- 转发加密数据 -------->|
  |<--- 确认密钥交换 ---------|                           |
  |                           |<--- 确认密钥交换 ---------|
  |==== 直接 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 吧!