发现一个Go开发的隔空传送工具,支持跨系统传送

如果你不用Mac,看到隔空传送这个词儿可能以为是游戏里的瞬移。隔空投送是Mac系统带的一个在局域网内,苹果设备之间可以快速传送文件的一个工具,最早叫 AirDrop,后来忘了哪个版本了,OSX开始汉化,于是Finder变成了访达,AirDrop变成了隔空投送。

说回文件传输工具,有的时候新老系统的 Mac 在使用隔空投送的时候会出现发现不了对方的问题,或者你在使用其他系统,也想有类似的快速分享文件的体验,不用面对面做,还把让文件在WX服务器上走一遭才能传给对方,有没有什么平替工具吗?

既然大家都是开发,那就用稍微Geek点的工具,正巧有一个 Go 开发的命令工具恰好能完成隔空投送,这里分享给大家。


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

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

564de27e600d9c5efeb8897f8ffad214.png

鳄鱼

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】即可领取!

觉得有用就点个在看  👇👇👇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值