croc 是近年來竄起一套檔案傳輸工具,透過這個小工具可以快速的在不同電腦間傳輸檔案,當然你也可以用其它的方式來達到傳檔的目的,例如:FTP、SSH、雲端硬碟之類的,但使用croc的好處就是方便,指令也相對簡單,不管是Windows、Linux、Mac都有支援,雖然就我的觀察來看,目前使用的人還不算普及,但這絕對是個好工具,值得介紹給大家。
1、安裝 croc
croc本身支援 Windows、Linux、Mac等平台,可以透過指令的方式來安裝,或者下載安裝檔來安裝,請視自己的環境來選擇
♦ Linux
curl https://getcroc.schollz.com | bash
♦ Mac
brew install croc
♦ Windows
上面有提到,官方雖然有提供指令的安裝方式,但在Windows平台上,我個人是習慣直接下載免安裝版本,然後解壓後執行「croc.exe」即可
2、如何傳送、接收檔案
首先,我們先直接透過基本的例子來示範如何透過「croc」進行檔案的傳送與接收,以便讓大家快速的入門
Sender:傳送檔案
傳送檔案時,最基本的指令就是搭配
以實際的範例來看,下圖我使用
Receiver:接收檔案
接收方要下載檔案也很簡單,只要在croc指令後面接「傳輸碼」來接收檔案即可,格式如下:
承上面的傳送方範例,由下圖可以看出只要執行「croc 8654-contour-alice-kayak」,畫面就會詢問是否要下載,此時輸入「y」來進行接受即可。而且下載過程中,「傳送方」的畫面也同時會出現檔案傳輸的進度條,可讓雙方都知道目前檔案傳輸的進度
注意事項
- 傳送檔案時,傳送方的連線/視窗不能中斷,不然接收方會無法接收檔案。這是因為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」來接收檔案了
自建Relay Server
前面有提過,croc預設是採用官方的Relay Server來傳送檔案,大概的傳檔流程就如下圖的「黑色虛線」部分,雖然傳送的過程已支援了加密機制,但若各位還有安全疑慮的話,那麼可以選擇自己建置Relay Server來協助我們傳輸檔案,也就是下圖中的「紅色實線」部分,除了安全性的因素外,另一個好處是若官方的Relay Server掛點,那麼我們還是可以繼續使用自建的Relay Server來運作
了解基本概念後,別以為自建Relay Server有難度,其實蠻簡單的,只要用
croc relay
執行後預設會啟用「9009 ~ 9013」這幾個Port,這樣自建的Relay Server就完成了,夠快吧!提醒一下,如果要使用自建的Relay Server,那麼請注意開的Ports會不會被防火牆擋掉之類的問題 (本例的Relay Server IP:192.168.0.27)
使用自建的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而已
另外,如果不想用預設的Port,你也可以使用「– -ports」來指定Relay Server的Port,例如下面的指令就是指定「1357」、「2468」作為Relay Server的連接埠 (註:官方是建議指定2個連接埠以上)
croc relay --ports 1357,2468
小結:這個工具加密傳送、檔案續傳、Proxy等功能,支援三大OS平台,操作上也沒有什麼很複雜的指令,我個人覺得蠻適合臨時要在不同電腦間傳送檔案時的情境,推薦給大家