概述
一般而言,Linux系统是没有用户界面的,所有操作都是在命令行里。
然后在安装搭建集群,如分布式的Hadoop集群时,经常需要在多个Server之间传输文件。两个server之间的文件传输,一般会想到FTP或SSH两种方式。使用FTP需要搭建FTP服务。使用SSH需学习SCP指令。
这里介绍一款传送过程既快速又安全,用Go语言写的工具Croc,GitHub。
其优势如下:
- 用Relay方式让任意两台电脑传送档案
- 点对点加密(使用 PAKE)
- 支持跨系统平台传送文件
- 一次可以传送多个文件或整个目录
- 支持断点续传
- 不需要自行搭建服务器或使用 port-forwarding 相关技术
- 优先使用IPv6,而IPv4 当作备用
- 可使用 Socks5 proxy
使用
在一个传送端Server执行croc send file.txt
命令行:
$ croc send ~/Downloads/data.csv
Sending 'data.csv' (6.9 kB)
Code is: cabinet-rodeo-mayday
On the other computer run
croc cabinet-rodeo-mayday
自动产生一个 secret code,在另一台Server执行命令行:
$ croc cabinet-rodeo-mayday
Accept 'data.csv' (6.9 kB)? (y/n) y
支持自定义secret code:croc send --code appleboy ~/Downloads/data.csv
Relay Server
由于此工具是通过 relay server 方式来进行传送,所以指令会预设连到官方所搭建的服务器
// DEFAULT_RELAY is the default relay used (can be set using --relay)
var (
DEFAULT_RELAY = "croc.schollz.com"
DEFAULT_RELAY6 = "croc6.schollz.com"
DEFAULT_PORT = "9009"
DEFAULT_PASSPHRASE = "pass123"
)
部署一个Relay Server?执行命令:croc relay
,会在当前主机多个端口启动TCP server。可指定单一Port:croc relay --ports 3001
,在传送文件时也要换掉Relay Server:
$ croc --relay 127.0.0.1:3001 send ~/Downloads/data.csv
Sending 'data.csv' (6.9 kB)
Code is: saddle-origin-horizon
On the other computer run
croc --relay 127.0.0.1:3001 saddle-origin-horizon
加上--relay 127.0.0.1:3001
即可。
问题
securing channel. room not ready
从Linux服务器传输文件到Windows:
然后在Windows执行命令,报错:
怀疑是被公司的文件传输安全校验拦截住。
参考
- GitHub