croc點(diǎn)對(duì)點(diǎn)互傳文件

最近一段時(shí)間比較忙叹螟,鮮有時(shí)間嘗試一些新的台盯、有趣的東西,寫的東西也少了静盅。今天抽空給大家介紹一款點(diǎn)對(duì)點(diǎn)文件分享工具croc。

croc is a tool that allows any two computers to simply and securely transfer files and folders. AFAIK, croc is the only CLI file-transfer tool that does all of the following:

  • allows any two computers to transfer data (using a relay)
  • provides end-to-end encryption (using PAKE)
  • enables easy cross-platform transfers (Windows, Linux, Mac)
  • allows multiple file transfers
  • allows resuming transfers that are interrupted
  • local server or port-forwarding not needed
  • ipv6-first with ipv4 fallback
  • can use proxy, like tor

For more information about croc, see my blog post.

上面是來自作者對(duì)這款工具的簡(jiǎn)單介紹棚壁,感興趣的小伙伴可以到官方倉(cāng)庫schollz/croc了解工具詳情和安裝方法栈虚。

本篇博文我們主要聊一下croc工具使用時(shí)一些有意思,值得關(guān)注的小細(xì)節(jié)曼验。


1. 建立自己的中間媒介

首先粘姜,croc依賴一個(gè)中間媒介,A用戶通過該媒介將文件傳給B用戶孤紧,默認(rèn)情況下croc使用作者自建的服務(wù)器作為中間媒介。

出于安全考慮用戶可以使用自有服務(wù)器自建媒介臭猜,命令如下:

# on your server, after croc installed
croc relay

默認(rèn)情況下押蚤,上述命令啟動(dòng)的croc媒介服務(wù)監(jiān)聽9009-9013端口,所以如果使用默認(rèn)端口的話揽碘,請(qǐng)務(wù)必向防火墻添加端口9009-9013的入站規(guī)則。

croc允許用戶在建立私有媒介時(shí)使用自定義端口雳刺,命令如下:

# on your server, after croc installed
croc relay --ports 10010,10011,10012,10013

上述命令要求croc使用10010-10013等4個(gè)端口提供文件共享服務(wù)掖桦,相應(yīng)地注意修改防火墻規(guī)則。

2. 使用docker/kubernetes容器服務(wù)

作者制作了docker鏡像方便將croc容器化滞详,鏡像地址:schollz/croc

使用docker或者kubernetes時(shí)請(qǐng)務(wù)必保證端口映射后紊馏,服務(wù)在主機(jī)上的監(jiān)聽地址與服務(wù)在容器中的監(jiān)聽地址相同蒲犬。

例如:

docker run -d -p 9009-9013:9009-9013 -e CROC_PASS='YOURPASSWORD' schollz/croc

部署的服務(wù)可以外部使用,而

docker run -d -p 8009-8013:9009-9013 -e CROC_PASS='YOURPASSWORD' schollz/croc

部署的服務(wù)外部不能使用赫编。

主要是因?yàn)橛脩艉蚦roc媒介交互的時(shí)候,croc服務(wù)會(huì)將自己監(jiān)聽的端口(即上述命令中的9009-9013)告訴用戶端擂送,用戶端將嘗試使用被告知的端口和croc服務(wù)通信唯欣,但實(shí)際上工作在容器下層的服務(wù)器監(jiān)聽在8009-8013,這和用戶端被告知的情況不一致境氢,所以用戶端將不能和croc服務(wù)正常通信。

使用kubernetes時(shí)问芬,同樣需要注意這個(gè)問題寿桨,服務(wù)所曝露在服務(wù)器上的真實(shí)端口一定要和pod/croc監(jiān)聽的端口保持一致,至于中間的ingress-nginx --> service/croc --> pod/croc 之間采用什么端口并不重要亭螟,只要能保證用戶訪問服務(wù)器指定端口能最終連通到pod/croc的同一端口上即可。

說得有一點(diǎn)繞匕累,舉個(gè)栗子吧:假設(shè)你的pod/croc 監(jiān)聽在9009-9013端口默伍,由于pod/croc上層還有service/croc衰琐,而service/croc上層有ingress-nginx,假設(shè)你的服務(wù)是通過ingress-nginx以nodeport的形式曝露到機(jī)器端口上羡宙,那么ingress-nginx曝露的端口應(yīng)為9009-9013,只有這樣用戶在和croc通信時(shí)才能保證用戶得到的信息和服務(wù)器端運(yùn)行的信息一致钞馁,保證正常通信。

3. 簡(jiǎn)化使用流程

自建croc中繼的話僧凰,用戶在分享文件時(shí)需要指明中繼服務(wù)器的ip和croc服務(wù)監(jiān)聽的端口,如

croc --relay "yourserverip:port" --pass yourpassword send /path/to/somfile

每次都這樣操作略顯繁瑣伪节,可以在某次命令中使用--remember參數(shù)绩鸣,將這種常用的參數(shù)保存到配置文件$HOME/.config/croc/send.json中,如此一來后續(xù)使用時(shí)就不需要每次都手動(dòng)指定 --relay--pass參數(shù)呀闻。

使用自建的croc中間媒介,接受文件時(shí)也需要手動(dòng)指定--relay-pass參數(shù)屏鳍,如下:

croc --relay "yourserverip:port" --pass yourpassword  thesharecode

類似地局服,可以在某次接受文件時(shí)使用--remember將這些常用的參數(shù)固化到$HOME/.config/receive.json,此后從同一個(gè)中間媒介接受文件時(shí)可不指定--relay--pass淫奔。

注意:接受文件時(shí)使用--remember會(huì)將sharecode一次存儲(chǔ)到$HOME/.config/receive.json,建議編輯該文件刪除sharecode對(duì)應(yīng)行配置.


更多內(nèi)容鸭丛,請(qǐng)參考官方說明文檔唐责。

croc僅是一個(gè)簡(jiǎn)易的文件分享工具鳞溉,存在一些安全風(fēng)險(xiǎn)鼠哥,比如:接受文件的用戶必須知道--pass才能接受文件,而任何知道--pass的用戶都能利用該口令來使用你部署的croc服務(wù)抄罕,這并不是理想的使用場(chǎng)景于颖。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市做入,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌竟块,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件前弯,死亡現(xiàn)場(chǎng)離奇詭異秫逝,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)违帆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門刷后,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人尝胆,你說我怎么就攤上這事『危” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵缓呛,是天一觀的道長(zhǎng)杭隙。 經(jīng)常有香客問我,道長(zhǎng)痰憎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任炬称,我火速辦了婚禮涡拘,結(jié)果婚禮上据德,老公的妹妹穿的比我還像新娘跷车。我一直安慰自己橱野,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布密强。 她就那樣靜靜地躺著蜗元,像睡著了一般或渤。 火紅的嫁衣襯著肌膚如雪奕扣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天池磁,我揣著相機(jī)與錄音楷兽,去河邊找鬼。 笑死芯杀,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的跛梗。 我是一名探鬼主播棋弥,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼漾岳!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起尼荆,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤唧垦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后巧还,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡麸祷,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年阶牍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片走孽。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖咬像,靈堂內(nèi)的尸體忽然破棺而出生宛,到底是詐尸還是另有隱情,我是刑警寧澤陷舅,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站待讳,受9級(jí)特大地震影響仰剿,放射性物質(zhì)發(fā)生泄漏创淡。R本人自食惡果不足惜南吮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望露乏。 院中可真熱鬧涂邀,春花似錦瘟仿、人聲如沸比勉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赡勘。三九已至,卻和暖如春闸与,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背厂画。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工拷邢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人瞭稼。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像欲虚,于是被迫代替她去往敵國(guó)和親悔雹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容