iWant:一個去中心化的點對點共享檔案的命令列工具

Sk發表於2019-04-03

不久之前,我們編寫了一個指南,內容是一個檔案共享實用程式,名為 transfer.sh,它是一個免費的 Web 服務,允許你在 Internet 上輕鬆快速地共享檔案,還有 PSiTransfer,一個簡單的開源自託管檔案共享解決方案。今天,我們將看到另一個名為 “iWant” 的檔案共享實用程式。它是一個基於命令列的自由開源的去中心化點對點檔案共享應用程式。

你可能想知道,它與其它檔案共享應用程式有什麼不同?以下是 iWant 的一些突出特點。

  • 它是一個命令列應用程式。這意味著你不需要消耗記憶體來載入 GUI 實用程式。你只需要一個終端。
  • 它是去中心化的。這意味著你的資料不會在任何中心位置儲存。因此,不會因為中心點失敗而失敗。
  • iWant 允許中斷下載,你可以在以後隨時恢復。你不需要從頭開始下載,它會從你停止的位置恢復下載。
  • 共享目錄中檔案所作的任何更改(如刪除、新增、修改)都會立即反映在網路中。
  • 就像種子一樣,iWant 從多個節點下載檔案。如果任何節點離開群組或未能響應,它將繼續從另一個節點下載。
  • 它是跨平臺的,因此你可以在 GNU/Linux、MS Windows 或者 Mac OS X 中使用它。

安裝 iWant

iWant 可以使用 PIP 包管理器輕鬆安裝。確保你在 Linux 發行版中安裝了 pip。如果尚未安裝,參考以下指南。

如何使用 Pip 管理 Python 包

安裝 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 頁面。

差不多就是全部了。希望這個工具有所幫助。下次我會帶著另一個有趣的指南再次來到這裡。

乾杯!

資源

-iWant GitHub


via: https://www.ostechnix.com/iwant-decentralized-peer-peer-file-sharing-commandline-application/

作者:SK 選題:lujun9972 譯者:MjSeven 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關文章