故事背景
网吧A和网吧B之间经常有这样的事情发生:网吧A更新游戏,如pubg,更新量很大,比如40G,网吧A速度很快,已经更新完成,但网吧B速度慢,到游戏开服也只更新了20G。如果把网吧A的游戏同步更新到网吧B呢?一般的做法是用U盘从网吧A拷到网吧B
但网吧使用无盘服务器,需要在服务器上插U盘,风险较高!并且比较麻烦,从网吧A拷了游戏还要跑网吧B操作。如果在网吧A开通ftp,再从网吧B下载,速度不敢保证,并且还得映射端口,各种复杂的操作!普通小白做不到!
其中直接同步,可以采用syncthing实现两网吧P2P文件同步,syncthing需要双方安装,总之操作不够简单!
croc是使用golang 编写的工具,允许任何两台计算机简单和安全地传输文件和文件夹。据我所知,croc 是唯一的 CLI 文件传输工具。
对,你没听错,只需要一个文件croc.exe,分别拷到网吧A和网吧B的游戏目录,同时运行就可以互传文件或文件夹!
如果网吧A和网吧B的带宽均不高,网吧间互传文件很慢,那么你也可以从网吧A用U盘拷游戏到网吧B,从客户机使用croc和网吧B的服务器同步文件,局域网传文件相当快,比在服务器插U盘相比,中毒风险直接排除!
功能介绍
croc 的特性:允许任意两台计算机传输数据(使用一个中继)
提供端到端加密(使用 PAKE)
支持方便的跨平台传输,支持 Windows、Linux、Mac
允许多文件传输
允许恢复被中断的传输
不需要本地服务器或端口转发
通过压缩和多路复用比虫洞、rsync、scp 更快(加速 1.5x 到 4x)
支持IPv6和IPv4;
支持使用Tor之类的代理;
简单使用方法
如需发送文件,可以直接运行下列命令:1 | $ croc send [file(s)-or-folder] |
1 | $ croc code-phrase |
自定义密码短语
我们可以使用下列方式来配置自己的密码短语,必须是4个字符以上:
1 | $ croc send --code [code-phrase] [file(s)-or-folder] |
使用管道-stdin和stdout
我们可以通过管道来向Croc传递文件:
1 | $ cat [filename] | croc send |
此时,Croc将会自动使用stdin数据,并发送和分配一个类似“croc-stdin-123456789”的文件名。如需接收stdout,可以直接使用–yes选项来自动接收文件:
1 | $ croc --yes [code-phrase] > out |
发送文字消息
有些时候,我们可能只需要发送URL地址或简短的文字消息,此时可以通过下列命令实现发送:
1 | $ croc send --text "hello world" |
使用代理
我们还可以使用代理链接来进行传输中继,比如说,我们可以使用下列命令来将Tor作为代理中继:
1 | $ croc --socks5 "127.0.0.1:9050" send SOMEFILE |
网吧同步文件的使用
- 网吧A与网吧B直接传文件,如要拷贝的目录为pubg,则先把croc.exe拷到pubg同级目录(不是拷在pubg目录,如pubg完整目录为g:\steam\pubg,那croc.exe应拷到g:\steam目录,同步完就可以把croc.exe删除)然后执行在网吧B也把croc.exe拷到pubg同级目录,执行
1
croc send --code mysendname pubg
即实现了把网吧A的pubg文件夹完全拷到网吧B的pubg1
croc mysendname
- 网吧客户机拷到网吧服务器。比如用U盘从网吧A拷了游戏,在网吧B任意一台机器拷到网吧B的服务器,同样在要拷贝的同级分别拷贝croc.exe
在客户机执行
发送端执行
先建服务(中转服务器直接在客户机,拷贝速度就看你内网的速度,下面的192.168.10.8的IP就是执行此命令的机器的IP)再传文件夹(IP换成你当前中转服务机器的IP,一般就在当前机器)1
croc relay
接收端执行(IP换成你当前中转服务机器的IP)1
croc --relay 192.168.10.8:9009 send --code mysendtask pubg
1
croc --relay 192.168.10.8:9009 mysendtask
下载地址
github下载地址
github开源
如果github的下载速度太慢,你也可以尝试搜索国内的下载地址