用Go写的文件传输工具croc了解一下

360次阅读  |  发布于2年以前

土拨鼠最近换了M1的电脑,由于MAC的隔空发送一直发现不了对方,就想起17年用过的一个用Go写的传输工具,一直有点印象,忘记叫什么名了,在GitHub上star列表终于才搜到croc[1]。这下赶紧顺手给他归了一下repo的类别。

下来土拨鼠简单介绍一下这个库。croc有鳄鱼的意思,so这里就用鳄鱼的图代表了库。

鳄鱼

croc是一种允许任何两台计算机简单安全地传输文件和文件夹的工具。据我所知,croc是唯一可以执行以下所有操作的CLI 文件传输工具:

有关详细信息croc,请参阅博客文章[2]。

安装

mac下可以直接使用brew进行安装。

brew install croc

若你使用其他平台和方式的话,也可以根据go get和go install进行安装。

使用

自定义Code传输文件

这里我试验了传输文件的例子。

# send 
croc send --code code-phrase [file(s)-or-folder]
# receive
croc code-phrase

croc 发送

$croc send --code 123456 zshrc
Sending 'zshrc' (3.9 kB)
Code is: 123456
On the other computer run

croc 123456

Sending (->192.168.0.103:62532)
 100% |████████████████████| (3.9/3.9 kB, 1.711 MB/s)

croc 接收

$ croc 123456
Accept 'zshrc' (3.9 kB)? (Y/n) y

Receiving (<-192.168.0.104:9009)
 100% |████████████████████| (3.9/3.9 kB, 213.064 kB/s)

其他例子

使用管道传输

cat [filename] | croc send

传输文本

croc send --text "hello world"

使用自建中继服务器

默认情况下,croc使用公共中继器。如果你可以不想使用公共的中继服务器,,你可以搭建自己的中继服务器,端口你可以自定义,但必须至少有两个端口。第一个端口用于通信,后续端口用于多路数据传输。

docker run -d -p 9009-9013:9009-9013 -e CROC_PASS='croc_relay_1234' schollz/croc

发送文件

$croc --pass croc_relay_1234 --relay "192.168.0.103:9009" send test.md
Sending 'test.md' (13 B)
Code is: 0484-memo-capital-papa
On the other computer run

croc --relay 192.168.0.103:9009 --pass croc_relay_1234 0484-memo-capital-papa

Sending (->192.168.0.103:49170)
 100% |████████████████████| (13/13 B, 37.528 kB/s)

接收文件

$croc --relay 192.168.0.103:9009 --pass croc_relay_1234 0484-memo-capital-papa
Accept 'test.md' (13 B)? (Y/n) y

Receiving (<-127.0.0.1:65528)
 100% |████████████████████| (13/13 B, 9.311 kB/s)

小结

今天关于croc这个小工具的介绍就到这里了。另外还有一些不错的基于服务器的文件共享工具:https://send-anywhere.com[4]、https://ipfs.io/ [5]。感兴趣的同学也可以看一下。

如果你有更好的库推荐,欢迎留言讨论。

参考资料

[1]croc: https://github.com/schollz/croc

[2]博客文章: https://schollz.com/software/croc6

[3]PAKE: https://en.wikipedia.org/wiki/Password-authenticated_key_agreement

[4]https://send-anywhere.com: https://send-anywhere.com/

[5]https://ipfs.io/ : https://ipfs.io/

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8