Linux中國

dcp:採用對等網路傳輸文件的方式

Linux 本就有 scprsync 可以完美地完成這個任務。然而我們今天還是想試點新東西。同時我們也想鼓勵那些使用不同的理論和新技術開發新東西的開發者。

我們也寫過其他很多有關這個主題的文章,你可以點擊下面的鏈接訪問這些內容。

它們分別是 OnionShareMagic WormholeTransfer.sh 和 ffsend。

什麼是 dcp

dcp 可以在不同主機之間使用 Dat 對等網路複製文件。

dcp 被視作一個像是 scp 這樣工具的替代品,而無需在主機間進行 SSH 授權。

這可以讓你在兩個主機間傳輸文件時,無需操心所述主機之間互相訪問的細節,以及這些主機是否使用了 NAT。

dcp 零配置、安全、快速、且是 P2P 傳輸。這並不是一個商用軟體,使用產生的風險將由使用者自己承擔。

什麼是 Dat 協議

Dat 是一個 P2P 協議,是一個致力於下一代 Web 的由社區驅動的項目。

dcp 如何工作

dcp 將會為指定的文件或者文件夾創建一個 dat 歸檔,並生成一個公開密鑰,使用這個公開密鑰可以讓其他人從另外一台主機上下載上面的文件。

使用網路共享的任何數據都使用該歸檔的公開密鑰加密,也就是說文件的接收權僅限於那些擁有該公開密鑰的人。

dcp 使用案例

  • 向多個同事發送文件 —— 只需要告訴他們生成的公開密鑰,然後他們就可以在他們的機器上收到對應的文件了。
  • 無需設置 SSH 授權就可以在你本地網路的兩個不同物理機上同步文件。
  • 無需壓縮文件並把文件上傳到雲端就可以輕鬆地發送文件。
  • 當你有 shell 授權而沒有 SSH 授權時也可以複製文件到遠程伺服器上。
  • 在沒有很好的 SSH 支持的 Linux/macOS 以及 Windows 系統之間分享文件。

如何在 Linux 上安裝 NodeJS & npm?

dcp 是用 JavaScript 寫成的,所以在安裝 dcp 前,需要先安裝 NodeJS。在 Linux 上使用下面的命令安裝 NodeJS。

Fedora 系統,使用 DNF 命令 安裝 NodeJS & npm。

$ sudo dnf install nodejs npm

Debian/Ubuntu 系統,使用 APT-GET 命令 或者 APT 命令 安裝 NodeJS & npm。

$ sudo apt install nodejs npm

Arch Linux 系統,使用 Pacman 命令 安裝 NodeJS & npm。

$ sudo pacman -S nodejs npm

RHEL/CentOS 系統,使用 YUM 命令 安裝 NodeJS & npm。

$ sudo yum install epel-release
$ sudo yum install nodejs npm

openSUSE Leap 系統,使用 Zypper 命令 安裝 NodeJS & npm。

$ sudo zypper nodejs6

如何在 Linux 上安裝 dcp?

在安裝好 NodeJS 後,使用下面的 npm 命令安裝 dcp

npm 是一個 JavaScript 的包管理器。它是 JavaScript 的運行環境 Node.js 的默認包管理器。

# npm i -g dat-cp

如何通過 dcp 發送文件?

dcp 命令後跟你想要傳輸的文件或者文件夾。而且無需註明目標機器的名字。

# dcp [File Name Which You Want To Transfer]

在你運行 dcp 命令時將會為傳送的文件生成一個 dat 歸檔。一旦執行完成將會在頁面底部生成一個公開密鑰。(LCTT 譯註:此處並非非對稱加密中的公鑰/私鑰對,而是一種公開的密鑰,屬於對稱加密。)

如何通過 dcp 接收文件

在遠程伺服器上輸入公開密鑰即可接收對應的文件或者文件夾。

# dcp [Public Key]

以遞歸形式複製目錄。

# dcp [Folder Name Which You Want To Transfer] -r

下面這個例子我們將會傳輸單個文件。

上述文件傳輸的輸出。

如果你想傳輸不止一個文件,使用下面的格式。

上述文件傳輸的輸出。

遞歸複製文件夾。

上述文件夾傳輸的輸出。

這種方式下你只能夠下載一次文件或者文件夾,不可以多次下載。這也就意味著一旦你下載了這些文件或者文件夾,這個鏈接就會立即失效。

也可以在手冊頁查看更多的相關選項。

# dcp --help

via: https://www.2daygeek.com/dcp-dat-copy-secure-way-to-transfer-files-between-linux-systems/

作者:Vinoth Kumar 選題:lujun9972 譯者:dianbanjiu 校對:wxy

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


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國