0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用Go语言的Croc工具的特点及优势

Linux爱好者 来源:Linux爱好者 作者:小恶魔 2021-07-05 16:32 次阅读

两台电脑之间该如何传送档案,其实方法有超多种的,像是 FTP 或透过 SSH 方式来传送档案,但是这些方法步骤都有点复杂,FTP 需要搭建 FTP 服务,SSH 要学习 SCP 指令,那有没有更好的方式从单一电脑点对点传送档案到另一台呢?

传送过程需要快速又要安全,本文将介绍一套用Go语言写的工具叫 Croc,详细的介绍可以参考看看作者的 Blog 介绍,此工具有以下功能及优势。

工具特点及优势

用 Relay 方式让任意两台电脑传送档案

点对点加密 (使用 PAKE)

跨平台传送文件 (Windows, Linux, Mac)

一次可以传送多个文件或整个目录

支持断点续传

不需要自行搭建服务器或使用 port-forwarding 相关技术

优先使用IPv6,而 IPv4 当作备用

可以使用 Socks5 proxy

Croc 项目地址:https://github.com/schollz/croc

使用方式

使用方式如同底下这张图所表示

传送端只需要执行 croc send file.txt 即可

$ croc send ~/Downloads/data.csv

Sending ‘data.csv’ (632.9 kB)

Code is: cabinet-rodeo-mayday

On the other computer run

croc cabinet-rodeo-mayday

上面可以看到会自动产生一个 secret code,接着在另外一台电脑执行底下指令

$ croc cabinet-rodeo-mayday

Accept ‘data.csv’ (632.9 kB)? (y/n) y

Receiving (《-111.243.108.9:51032)

当然你也可以自订 secret code

croc send --code appleboy ~/Downloads/data.csv

由于此工具是通过 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 呢?很简单,该工具也让使用者可以很快架设一台自己的 Relay Server,只需要执行下面的命令:

$ croc relay

[info] 2021/02/16 1159 starting croc relay version v8.6.7-05640cd

[info] 2021/02/16 1159 starting TCP server on 9010

[info] 2021/02/16 1159 starting TCP server on 9012

[info] 2021/02/16 1159 starting TCP server on 9009

[info] 2021/02/16 1159 starting TCP server on 9013

[info] 2021/02/16 1159 starting TCP server on 9011

可以指定单一 Port:

$ croc relay --ports 3001

[info] 2021/02/16 1122 starting croc relay version v8.6.7-05640cd

[info] 2021/02/16 1122 starting TCP server on 3001

接着在传送档案时也要跟着换掉 Relay Server

$ croc --relay 127.0.0.1:3001 send ~/Downloads/data.csv

Sending ‘data.csv’ (632.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 就可以完成了,所以部署 Relay Server 是很简单的,即使官方服务挂了,你也可以在任意一台电脑装上 Relay Server 了。

心得

Croc 工具强调的就是: 简单 + 安全 + 快速,三大优势,让大家可以更容易点对点传送文件,加上 CLI 工具在任何平台都可以下载 (Windows,Mac, 及 Linux),只需要一个指令就可以装好此工具,跟其他用户快速进行文件传输。

文章出处:【微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    8088

    浏览量

    82433
  • 电脑
    +关注

    关注

    15

    文章

    1599

    浏览量

    67263

原文标题:再见 FTP/SFTP,是时候拥抱下一代文件传输利器 Croc 了!

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    使用go语言实现一个grpc拦截器

    在开发grpc服务时,我们经常会遇到一些通用的需求,比如:日志、链路追踪、鉴权等。这些需求可以通过grpc拦截器来实现。本文使用go语言来实现一个 grpc一元模式(Unary)拦截器,上报链路追踪信息。
    的头像 发表于 12-18 10:13 224次阅读
    使用<b class='flag-5'>go</b><b class='flag-5'>语言</b>实现一个grpc拦截器

    Go编程语言-你应该知道的一切

    Go 编程语言的故事始于 Google,当时三位工程师 Robert Griesemer、Rob Pike 和 Ken Thompson 对 C++ 的复杂性以及缺乏提供高效编译和执行的简单语言感到厌倦。
    的头像 发表于 12-11 17:37 290次阅读

    javascript语言特点

    JavaScript是一种广泛应用于Web开发的脚本语言,具有许多独特的特点优势。在本篇文章中,我将详尽、详实、细致地解释JavaScript的特点,让你全面了解这门
    的头像 发表于 12-03 11:31 446次阅读

    Go语言比Python强多少

    1.都说Go语言性能非常强大,那么到底比Python强多少? 为了比较Go语言和Python语言在单线程性能上的差距,我们可以做一个简单实验
    的头像 发表于 11-02 14:05 273次阅读
    <b class='flag-5'>Go</b><b class='flag-5'>语言</b>比Python强多少

    如何让Python和Go互相调度

    我们曾经研究过如何让Python和Go互相调度,当时发现,将Go语言写的模块打包成动态链接库,就能在Python中进行调度: 优劣互补! Python+Go结合开发的探讨
    的头像 发表于 11-02 11:24 239次阅读
    如何让Python和<b class='flag-5'>Go</b>互相调度

    Go在单线程计算性能上的优势

    一文中,我们讨论了Go在单线程计算性能上的优势。 现在,考虑这样的一种场景: 我们需要从某些网址中同步数据并进行计算,保存到本地redis缓存中。 现在,我们可以通过编写Go Worker的方式
    的头像 发表于 11-02 11:16 208次阅读
    <b class='flag-5'>Go</b>在单线程计算性能上的<b class='flag-5'>优势</b>

    基于Go语言的反弹Shell命令生成工具简介

    RevShell 是一个基于Go语言的反弹Shell命令生成工具,旨在帮助安全研究人员和渗透测试人员在需要与目标主机建立反向连接时快速生成相应的Shell代码。
    发表于 08-25 09:45 431次阅读
    基于<b class='flag-5'>Go</b><b class='flag-5'>语言</b>的反弹Shell命令生成<b class='flag-5'>工具</b>简介

    Go语言中的整数类型

    Go 语言中,整型可以细分成两个种类十个类型。
    发表于 07-20 15:25 331次阅读

    Go语言常量的声明

    Go 语言中, 常量 表示的是固定的值,常量表达式的值在编译期进行计算,常量的值不可以修改。例如:3 、 Let's go 、 3.14 等等。常量中的数据类型只可以是 布尔型 、 数字型 (整数型、浮点型和复数)
    发表于 07-20 15:24 273次阅读

    Go语言简介和安装方法

    Go 又称 Golang ,是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言Go 语言语法与
    发表于 07-19 16:33 408次阅读

    Go 1.21的PGO正式GA,性能提升,更快更猛!

    Go 语言中,最初关于 PGO 的提案是建议向 Go GC 工具链增加对配置文件引导优化 (PGO) 的支持,以便工具链能根据运行时信息
    的头像 发表于 06-28 16:47 746次阅读
    <b class='flag-5'>Go</b> 1.21的PGO正式GA,性能提升,更快更猛!

    浅谈SylixOS 实时操作系统中Go语言应用

    Go 语言是一门编译型语言,继承了编译型语言的高性能、类型安全以及对计算机底层的高可控性等特点,其运行性能可与C/C++媲美。
    发表于 06-08 10:41 774次阅读
    浅谈SylixOS 实时操作系统中<b class='flag-5'>Go</b><b class='flag-5'>语言</b>应用

    Go语言运算符主要包括哪些呢?

    Go语言运算符主要包括:算数运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和其他运算符。
    的头像 发表于 05-26 15:54 593次阅读
    <b class='flag-5'>Go</b><b class='flag-5'>语言</b>运算符主要包括哪些呢?

    介绍Go里面经常使用到的命令行工具

    优秀的工具配合熟练的使用,往往可以让开发效率大幅度提升,本小节介绍 Go 里面经常使用到的命令行工具
    的头像 发表于 05-22 16:58 815次阅读
    介绍<b class='flag-5'>Go</b>里面经常使用到的命令行<b class='flag-5'>工具</b>

    PLC各种编程语言特点

    编程语言种类很多,各有各的优势,语句表和指令表类似,是编程语言的一种,在PLC中应用比较普遍,也是一种高级编程语言,PLC中语句表、梯形 图、SCL等编程
    发表于 04-20 09:55 0次下载
    PLC各种编程<b class='flag-5'>语言特点</b>