如果你不用Mac,看到隔空传送这个词儿可能以为是游戏里的瞬移。隔空投送是Mac系统带的一个在局域网内,苹果设备之间可以快速传送文件的一个工具,最早叫 AirDrop,后来忘了哪个版本了,OSX开始汉化,于是Finder变成了访达,AirDrop变成了隔空投送。
说回文件传输工具,有的时候新老系统的 Mac 在使用隔空投送的时候会出现发现不了对方的问题,或者你在使用其他系统,也想有类似的快速分享文件的体验,不用面对面做,还把让文件在WX服务器上走一遭才能传给对方,有没有什么平替工具吗?
既然大家都是开发,那就用稍微Geek点的工具,正巧有一个 Go 开发的命令工具恰好能完成隔空投送,这里分享给大家。
最近换了M1的电脑,由于MAC的隔空发送一直发现不了对方,就想起17年用过的一个用Go写的传输工具,一直有点印象,忘记叫什么名了,在GitHub上star列表终于才搜到croc[1]。这下赶紧顺手给他归了一下repo的类别。
下面简单介绍一下这个库。croc
有鳄鱼的意思,so这里就用鳄鱼的图代表了库。
croc
是一种允许任何两台计算机简单安全地传输文件和文件夹的工具。据我所知,croc
是唯一可以执行以下所有操作的CLI 文件传输工具:
允许任何两台计算机传输数据(使用中继服务器)
提供端到端加密(使用 PAKE)
实现轻松的跨平台传输(Windows、Linux、Mac)
允许多个文件传输
允许恢复被中断的传输
不需要本地服务器或端口转发
ipv6-first和 ipv4 后备
可以使用代理,比如tor
有关详细信息croc
,请参阅博客文章[2]。
安装
mac下可以直接使用brew进行安装。
brew install croc
若你使用其他平台和方式的话,也可以根据go get和go install进行安装。
使用
自定义Code传输文件
这里我试验了传输文件的例子。
# send croc send --code code-phrase [file(s)-or-folder]# receivecroc code-phrase
send
: 表示发送--code:指定传输和接收的code(不小于6个字符),用于建立密码验证密钥协议 ( PAKE[3] ),也可以不带此选项会自动生成code。
croc 发送
$croc send --code 123456 zshrcSending 'zshrc' (3.9 kB)Code is: 123456On the other computer runcroc 123456Sending (->192.168.0.103:62532) 100% |████████████████████| (3.9/3.9 kB, 1.711 MB/s)
croc 接收
$ croc 123456Accept 'zshrc' (3.9 kB)? (Y/n) yReceiving (<-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.mdSending 'test.md' (13 B)Code is: 0484-memo-capital-papaOn the other computer runcroc --relay 192.168.0.103:9009 --pass croc_relay_1234 0484-memo-capital-papaSending (->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-papaAccept 'test.md' (13 B)? (Y/n) yReceiving (<-127.0.0.1:65528) 100% |████████████████████| (13/13 B, 9.311 kB/s)
小结
今天关于croc这个小工具的介绍就到这里了。另外还有一些不错的基于服务器的文件共享工具:https://send-anywhere.com[4]、https://ipfs.io/ [5]。感兴趣的同学也可以看一下。
如果你有更好的库推荐,欢迎留言讨论。
欢迎关注Go招聘公众号,获取Go专题、大厂内推、面经、简历、股文等相关资料可回复和点击导航查阅。
- END -
扫码关注公众号「网管叨bi叨」
给网管个星标,第一时间吸我的知识 👆
网管整理了一本《Go 开发参考书》收集了70多条开发实践。去公众号回复【gocookbook】领取!还有一本《k8s 入门实践》讲解了常用软件在K8s上的部署过程,公众号回复【k8s】即可领取!
觉得有用就点个在看 👇👇👇