croc是免费的开源命令行工具,用于在计算机之间安全地传输文件。它使用中继辅助的对等事务和通过密码验证的密钥交换进行端到端加密。该程序是用Go语言编写的,可用于Microsoft Windows,macOS,Linux和*BSD。
croc旨在能够在跨平台计算机之间安全,快速,轻松地传输文件和文件夹。支持可恢复的对等传输。作为一项额外功能,croc还能够直接安全地传输短文本或URL。
数据传输是通过使用原始TCP套接字或websocket的中继来完成的。当发送方和接收方在同一LAN上时,croc使用本地中继,否则使用公共中继。因此,croc可以在同一LAN或Internet之间的计算机之间发送文件,而无需启用端口转发。
通过中继的数据使用PAKE生成的会话密钥进行加密。为此,croc使用代码短语,这是三个随机单词的组合。默认情况下,一个密码短语只能在两方之间使用一次,因此攻击者将有不到40亿分之一的机会正确猜出该密码短语来窃取数据。
croc特色:
- 允许任何两台计算机传输数据(使用中继)
- 提供端到端加密(使用PAKE)
- 实现轻松的跨平台文件和文件夹传输(Windows,Linux,Mac和* BSD)
- 允许多次文件传输
- 允许恢复被中断的传输
- 不需要本地服务器或端口转发
- IPv6优先与IPv4后备
- 可以使用代理
开发人员提到croc是唯一具有上述所有功能的命令行文件传输工具。
担心这是一个命令行工具,并且经验丰富的用户很难在Microsoft Windows上使用它吗?不是。Windows用户只需下载Windows二进制文件,将其解压缩,然后双击croc.exe可执行文件,就会弹出一个控制台窗口,要求用户输入接收代码。如下:
croc用法
使用croc发送文件或文件夹很简单:
croc 发送的文件或文件夹
例如:
- linuxmi@linuxmi:~/www.linuxmi.com$ croc linuxmi.com.py
- Did you mean to send 'linuxmi.com.py'? (y/n) y
- Sending 'linuxmi.com.py' (893 B)
- Code is: 5255-airport-helium-radio
- On the other computer run
- croc 5255-airport-helium-radio
从此处的命令输出中可以看到,发送文件时,croc以易于记忆的方式进行形式化显示代码。此处仍显示了接收文件的说明-因此,要获取文件,接收方需要运行croc命令,后跟文件/文件夹的代码:
croc 代码Code
例如:
- linuxmi@linuxmi:~/桌面/linuxmi.com$ croc
- Enter receive code: 5255-airport-helium-radio
- Accept 'linuxmi.com.py' (893 B)? (y/n) y
- Receiving (<-115.201.89.124:50456)
- 100% |████████████████████| (893/893 B, 1.731 kB/s)
接收者运行croc命令获取文件后,发送者将看到一条消息,内容如下:
- Sending (->115.201.89.124:50458)
- 100% |████████████████████| (893/893 B, 992.614 kB/s)
文件传输完成后,croc已存在,因此不再可以再次下载文件。如果要在文件传输完成之前(甚至开始之前)取消文件传输,请按Ctrl + c。
您还可以使用croc使用以下命令在计算机之间安全地发送短文本或URL:
- croc send --text "www.linuxmi.com.txt"
有关更多信息,例如使用管道等,请参阅其GitHub存储库中的croc用法。
下载croc 见 https://github.com/schollz/croc/releases
有适用于Microsoft Windows,macOS,FreeBSD和Linux的croc二进制文件。
在Linux上,您只会找到DEB二进制文件(对于Debian / Ubuntu / Linux Mint / Pop!_OS 等),以及可以在任何Linux发行版中安装的通用二进制文件,只需将其复制到PATH中的某个位置即可(例如/usr/local/bin)。
请参阅croc官方安装说明以获取安装此命令行工具的完整方式列表(用于在任何Linux发行版上安装该脚本的通用脚本,该工具在Arch Linux存储库中可用,可使用Homebrew,Chocolatey等安装。)。