croc 在不同電腦間傳輸檔案的快速工具


croc 是近年來竄起一套檔案傳輸工具,透過這個小工具可以快速的在不同電腦間傳輸檔案,當然你也可以用其它的方式來達到傳檔的目的,例如:FTP、SSH、雲端硬碟之類的,但使用croc的好處就是方便,指令也相對簡單,不管是Windows、Linux、Mac都有支援,雖然就我的觀察來看,目前使用的人還不算普及,但這絕對是個好工具,值得介紹給大家。

網址:croc Github 網站

1、安裝 croc

croc本身支援 Windows、Linux、Mac等平台,可以透過指令的方式來安裝,或者下載安裝檔來安裝,請視自己的環境來選擇

♦ Linux

curl https://getcroc.schollz.com | bash

♦ Mac

brew install croc

♦ Windows

上面有提到,官方雖然有提供指令的安裝方式,但在Windows平台上,我個人是習慣直接下載免安裝版本,然後解壓後執行「croc.exe」即可

Windows 平台下載 croc

2、如何傳送、接收檔案

首先,我們先直接透過基本的例子來示範如何透過「croc」進行檔案的傳送與接收,以便讓大家快速的入門

Sender:傳送檔案

傳送檔案時,最基本的指令就是搭配 send 參數,代表要傳送檔案,後面接的 file/folder 就是你要傳送的檔案或者資料夾,格式如下:

croc send file/folder

以實際的範例來看,下圖我使用 send 參數來送出 demo.py 這個檔案,之後會產生一組「傳輸碼」,此本例來說即是「8654-contour-alice-kayak」,把這組傳輸碼給接收方,則接收方就可以藉此來接收檔案

croc傳送檔案或資料夾

Receiver:接收檔案

接收方要下載檔案也很簡單,只要在croc指令後面接「傳輸碼」來接收檔案即可,格式如下:

croc 傳輸碼

承上面的傳送方範例,由下圖可以看出只要執行「croc 8654-contour-alice-kayak」,畫面就會詢問是否要下載,此時輸入「y」來進行接受即可。而且下載過程中,「傳送方」的畫面也同時會出現檔案傳輸的進度條,可讓雙方都知道目前檔案傳輸的進度

croc接收檔案或資料夾

注意事項
  • 傳送檔案時,傳送方的連線/視窗不能中斷,不然接收方會無法接收檔案。這是因為croc是透過relay server來概念傳送檔案,非並把檔案傳送到某個伺服器,然後再去從伺服器中下載檔案
  • 傳輸檔案時支援續傳功能,若接收方有一模一樣的檔案,則會略過下載,但如果是檔名一樣,可是大小不同,則會詢問是否要覆蓋舊檔
  • 接收方把檔案接收後,雙方的連線就會斷掉,所以在這種情況下,若使用相同的傳輸碼來接收檔案是會失敗的
  • 傳送檔案時有支援點對點的加密機制 (PAKE)

範例應用與進階用法

同時傳送多個檔案

想要傳送多個檔案的話,只要把檔案依序附加在send參數後面即可,例如下例便是同時傳送demo1.tx、demo2.tx、demo3.txt等3個檔案

croc send demo1.txt demo2.txt demo3.txt
自訂傳輸碼

預設的情況,croc在傳輸檔案時會自動產生一組傳輸碼,但我們也可以透過「– -code」這個參數來自訂傳送碼 (要6個英文數字以上),好處是容易記憶,指令格式如下:

croc send --code 傳輸碼 file/folder

例如下面的範例中,在傳送「demo.py」這個檔案時,指定了傳輸碼「123456」,這樣接收方就可以很簡單的用「croc 123456」來接收檔案了

croc自訂傳輸碼(secret code)

自建Relay Server

前面有提過,croc預設是採用官方的Relay Server來傳送檔案,大概的傳檔流程就如下圖的「黑色虛線」部分,雖然傳送的過程已支援了加密機制,但若各位還有安全疑慮的話,那麼可以選擇自己建置Relay Server來協助我們傳輸檔案,也就是下圖中的「紅色實線」部分,除了安全性的因素外,另一個好處是若官方的Relay Server掛點,那麼我們還是可以繼續使用自建的Relay Server來運作

croc relay server 示意圖

了解基本概念後,別以為自建Relay Server有難度,其實蠻簡單的,只要用 relay 的參數即可啟用,指令如下:

croc relay

執行後預設會啟用「9009 ~ 9013」這幾個Port,這樣自建的Relay Server就完成了,夠快吧!提醒一下,如果要使用自建的Relay Server,那麼請注意開的Ports會不會被防火牆擋掉之類的問題 (本例的Relay Server IP:192.168.0.27)

croc自建relay server

使用自建的Relay Server時,傳送、接收檔案時需透過「– -relay」來指定Relay Server的位址及Port,格式如下:

croc --relay relay_server:port send file/folder

下圖中,我們把檔案傳送到自建的Relay Server「192.168.0.27」,並指定用「9009」連接埠來傳送檔案 (註:在本例中可以自己選擇9009 ~ 9013其中一個來傳送),你會發現它同樣會產生傳輸碼,差別只是在於接收檔案時,也需要指定Relay Server的IP與Port而已

croc使用自建relay server傳送檔案

另外,如果不想用預設的Port,你也可以使用「– -ports」來指定Relay Server的Port,例如下面的指令就是指定「1357」、「2468」作為Relay Server的連接埠 (註:官方是建議指定2個連接埠以上)

croc relay --ports 1357,2468

croc 指定relay server的ports

小結:這個工具加密傳送、檔案續傳、Proxy等功能,支援三大OS平台,操作上也沒有什麼很複雜的指令,我個人覺得蠻適合臨時要在不同電腦間傳送檔案時的情境,推薦給大家

延伸閱讀