iWant:一個去中心化的點對點共享檔案的命令列工具
不久之前,我們編寫了一個指南,內容是一個檔案共享實用程式,名為 transfer.sh,它是一個免費的 Web 服務,允許你在 Internet 上輕鬆快速地共享檔案,還有 PSiTransfer,一個簡單的開源自託管檔案共享解決方案。今天,我們將看到另一個名為 “iWant” 的檔案共享實用程式。它是一個基於命令列的自由開源的去中心化點對點檔案共享應用程式。
你可能想知道,它與其它檔案共享應用程式有什麼不同?以下是 iWant 的一些突出特點。
- 它是一個命令列應用程式。這意味著你不需要消耗記憶體來載入 GUI 實用程式。你只需要一個終端。
- 它是去中心化的。這意味著你的資料不會在任何中心位置儲存。因此,不會因為中心點失敗而失敗。
- iWant 允許中斷下載,你可以在以後隨時恢復。你不需要從頭開始下載,它會從你停止的位置恢復下載。
- 共享目錄中檔案所作的任何更改(如刪除、新增、修改)都會立即反映在網路中。
- 就像種子一樣,iWant 從多個節點下載檔案。如果任何節點離開群組或未能響應,它將繼續從另一個節點下載。
- 它是跨平臺的,因此你可以在 GNU/Linux、MS Windows 或者 Mac OS X 中使用它。
安裝 iWant
iWant 可以使用 PIP 包管理器輕鬆安裝。確保你在 Linux 發行版中安裝了 pip。如果尚未安裝,參考以下指南。
安裝 pip 後,確保你有以下依賴項:
- libffi-dev
- libssl-dev
比如說,在 Ubuntu 上,你可以使用以下命令安裝這些依賴項:
$ sudo apt-get install libffi-dev libssl-dev
安裝完所有依賴項後,使用以下命令安裝 iWant:
$ sudo pip install iwant
現在我們的系統中已經有了 iWant,讓我們來看看如何使用它來透過網路傳輸檔案。
用法
首先,使用以下命令啟動 iWant 伺服器:
(LCTT 譯註:雖然這個軟體是叫 iWant,但是其命令名為 iwanto
,另外這個軟體至少一年沒有更新了。)
$ iwanto start
第一次啟動時,iWant 會詢問想要分享和下載資料夾的位置,所以需要輸入兩個資料夾的位置。然後,選擇要使用的網路卡。
示例輸出:
Shared/Download folder details looks empty..
Note: Shared and Download folder cannot be the same
SHARED FOLDER(absolute path):/home/sk/myshare
DOWNLOAD FOLDER(absolute path):/home/sk/mydownloads
Network interface available
1. lo => 127.0.0.1
2. enp0s3 => 192.168.43.2
Enter index of the interface:2
now scanning /home/sk/myshare
[Adding] /home/sk/myshare 0.0
Updating Leader 56f6d5e8-654e-11e7-93c8-08002712f8c1
[Adding] /home/sk/myshare 0.0
connecting to 192.168.43.2:1235 for hashdump
如果你看到類似上面的輸出,你可以立即開始使用 iWant 了。
同樣,在網路中的所有系統上啟動 iWant 服務,指定有效的分享和下載資料夾的位置,並選擇合適的網路卡。
iWant 服務將繼續在當前終端視窗中執行,直到你按下 CTRL+C
退出為止。你需要開啟一個新選項卡或新的終端視窗來使用 iWant。
iWant 的用法非常簡單,它的命令很少,如下所示。
iwanto start
– 啟動 iWant 服務。iwanto search <name>
– 查詢檔案。iwanto download <hash>
– 下載一個檔案。iwanto share <path>
– 更改共享資料夾的位置。iwanto download to <destination>
– 更改下載資料夾位置。iwanto view config
– 檢視共享和下載資料夾。iwanto –version
– 顯示 iWant 版本。iwanto -h
– 顯示幫助資訊。
讓我向你展示一些例子。
查詢檔案
要查詢一個檔案,執行:
$ iwanto search <filename>
請注意,你無需指定確切的名稱。
示例:
$ iwanto search command
上面的命令將搜尋包含 “command” 字串的所有檔案。
我的 Ubuntu 系統會輸出:
Filename Size Checksum
------------------------------------------- ------- --------------------------------
/home/sk/myshare/THE LINUX COMMAND LINE.pdf 3.85757 efded6cc6f34a3d107c67c2300459911
下載檔案
你可以在你的網路上的任何系統下載檔案。要下載檔案,只需提供檔案的雜湊(校驗和),如下所示。你可以使用 iwanto search
命令獲取共享的雜湊值。
$ iwanto download efded6cc6f34a3d107c67c2300459911
檔案將儲存在你的下載位置,在本文中是 /home/sk/mydownloads/
位置。
Filename: /home/sk/mydownloads/THE LINUX COMMAND LINE.pdf
Size: 3.857569 MB
檢視配置
要檢視配置,例如共享和下載資料夾的位置,執行:
$ iwanto view config
示例輸出:
Shared folder:/home/sk/myshare
Download folder:/home/sk/mydownloads
更改共享和下載資料夾的位置
你可以更改共享資料夾和下載資料夾。
$ iwanto share /home/sk/ostechnix
現在,共享位置已更改為 /home/sk/ostechnix
。
同樣,你可以使用以下命令更改下載位置:
$ iwanto download to /home/sk/Downloads
要檢視所做的更改,執行命令:
$ iwanto view config
停止 iWant
一旦你不想用 iWant 了,可以按下 CTRL+C
退出。
如果它不起作用,那可能是由於防火牆或你的路由器不支援多播。你可以在 ~/.iwant/.iwant.log
檔案中檢視所有日誌。有關更多詳細資訊,參閱最後提供的專案的 GitHub 頁面。
差不多就是全部了。希望這個工具有所幫助。下次我會帶著另一個有趣的指南再次來到這裡。
乾杯!
資源
via: https://www.ostechnix.com/iwant-decentralized-peer-peer-file-sharing-commandline-application/
相關文章
- 點對點(P2P)檔案共享站點的危險
- 分析比特幣網路:一種去中心化、點對點的網路架構比特幣中心化架構
- 去中心化只是手段 區塊鏈目的是點對點交易中心化區塊鏈
- 構建一個節點為中心,社群為輔助的去中心化生態中心化
- 區塊鏈去中心化等特點區塊鏈中心化
- Linux命令根據某一列對檔案內容去重Linux
- 教你寫一個可以找到.m檔案所有介面名的命令列工具命令列
- 演示:一個去中心化的 Web 3.0 Instagram中心化Web
- Augur,一個去中心化的預測平臺中心化
- 去中心化的前端構建工具 — Vite中心化前端Vite
- 用 nodejs 寫一個命令列工具 :建立 react 元件的命令列工具NodeJS命令列React元件
- 去中心化分散化社交網路的優缺點 -Jay Graber中心化
- 用Socket實現點對點的檔案傳輸 (轉)
- 盤點10大去中心化交易所開發中心化
- 去中心化的思考中心化
- 對專案管理的一點思考專案管理
- ADAMoracle廣域節點喂價的多鏈去中心化預言機Oracle中心化
- 檔案協同工具的優點在哪裡?
- 【張其中】擁有21個超級節點的EOS,背叛了區塊鏈的去中心化理想?區塊鏈中心化
- [譯] Dweb: 基於 IPFS 的去中心化 Web 檔案系統 (中英)Web中心化
- 共享一個iptables的shell指令碼檔案指令碼
- 對Thrift的一點點理解
- Mac檔案共享工具Mac
- 中心化與去中心化中心化
- 對國際化 i18n 專案的一點思考
- 區塊鏈去中心化和傳統去中心化的區別區塊鏈中心化
- 用 Rust 打造你的第一個命令列工具Rust命令列
- 我對EVE的一點點理解
- 網際網路始於去中心化、成熟於中心化,未來將回歸原點中心化
- 發現一個開源專案優化點,點進來就是你的了優化
- 實現跨鏈支援的多節點計算去中心化計算網路中心化
- 對於iOS效能優化的一點看法iOS優化
- 去中心化元件共享方案 —— Webpack Module Federation(模組聯邦)中心化元件Web
- 基於Vue的點對點聊天專案Vue
- 自動共享和上傳檔案到相容的託管站點
- 對rman命令report obsolete的一點說明
- Autotrash:一個自動清除舊垃圾的命令列工具命令列
- 每天進步一點點- lsof 命令查詢指定使用者、程式、埠開啟的檔案