前言
croc是一款用go语言开发的命令行文件传输工具,该工具允许两台计算机设备以一种简单和安全的方式来传输文件。
环境信息
IP | 系统版本 | croc版本 | 说明 |
192.168.0.10 | CentOS 7 | 9.6.4 | 中继服务 |
192.168.0.11 | CentOS 7 | 9.6.4 | 模拟发送端 |
192.168.0.12 | CentOS 7 | 9.6.4 | 模拟接收端 |
安装
从release下载二进制文件即可运行。
私有化relay
默认情况下使用croc自己的relay服务,可能会有网络问题,而且也不太安全。
./croc relay --host 0.0.0.0
如果不想公开自己的中继服务器,可以为中继服务设置密码,这里用脚本启动。
#!/bin/bash set -u export CROC_PASS='yL1dG6' ./croc relay --host 0.0.0.0
发送文件
发送文件时如果不加--code
,则会自动生成一段code,所以最好还是自己加上。
# 使用默认的中继服务器发送文件test.txt ./croc send --code 123456 test.txt # 使用自建的中继服务器发送文件 ./croc --relay 192.168.0.10:9009 send --code 123456 test.txt # 使用自建中继器并指定中继服务器的密码 ./croc --relay 192.168.0.10:9009 --pass 'yL1dG6' send --code 123456 test.txt
接收文件
--yes
表示免交互确认,--overwrite
表示直接覆盖已有文件
# 使用默认的中继服务器接收文件, code需要对应上 ./croc 123456 # 使用自建的中继服务器接收文件 ./croc --relay 192.168.0.10:9009 123456 # 使用自建中继器并指定中继服务器的密码 ./croc --relay 192.168.0.10:9009 --pass 'yL1dG6' --yes --overwrite 123456
补充
如果服务器之间禁用了SCP,只需要临时拷贝一个文件,但是不想从github下载个二进制包再传到服务器,可以用python临时起一个http服务,另一端使用wget或curl接收。
# 假设需要传输服务端当前目录下的test.txt文件 # 服务端起http服务,python2的方式,监听12345端口 python -m SimpleHTTPServer 12345 # 如果较新的linux发行版默认没有python2,用python3也行 python3 -m http.server 12345 # 客户端使用wget请求文件 wget http://<server ip>:12345/test.txt # 或者用curl curl -O http://<server ip>:12345/test.txt