土拨鼠最近换了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进行安装。
这里我试验了传输文件的例子。
# send
croc send --code code-phrase [file(s)-or-folder]
# receive
croc code-phrase
send
: 表示发送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