Linux 本就有 scp
和 rsync
可以完美地完成這個任務。然而我們今天還是想試點新東西。同時我們也想鼓勵那些使用不同的理論和新技術開發新東西的開發者。
我們也寫過其他很多有關這個主題的文章,你可以點選下麵的連結訪問這些內容。
它們分別是 OnionShare[1]、Magic Wormhole[2]、Transfer.sh[3] 和 ffsend。
什麼是 dcp?
dcp[4] 可以在不同主機之間使用 Dat 對等網路複製檔案。
dcp
被視作一個像是 scp
這樣工具的替代品,而無需在主機間進行 SSH 授權。
這可以讓你在兩個主機間傳輸檔案時,無需操心所述主機之間互相訪問的細節,以及這些主機是否使用了 NAT。
dcp
零配置、安全、快速、且是 P2P 傳輸。這並不是一個商用軟體,使用產生的風險將由使用者自己承擔。
什麼是 Dat 協議
Dat 是一個 P2P 協議,是一個致力於下一代 Web 的由社群驅動的專案。
dcp 如何工作
dcp
將會為指定的檔案或者檔案夾建立一個 dat 歸檔,並生成一個公開金鑰,使用這個公開金鑰可以讓其他人從另外一臺主機上下載上面的檔案。
使用網路共享的任何資料都使用該歸檔的公開金鑰加密,也就是說檔案的接收權僅限於那些擁有該公開金鑰的人。
dcp 使用案例
如何在 Linux 上安裝 NodeJS & npm?
dcp
是用 JavaScript 寫成的,所以在安裝 dcp
前,需要先安裝 NodeJS。在 Linux 上使用下麵的命令安裝 NodeJS。
Fedora 系統,使用 DNF 命令[5] 安裝 NodeJS & npm。
$ sudo dnf install nodejs npm
Debian/Ubuntu 系統,使用 APT-GET 命令[6] 或者 APT 命令[6] 安裝 NodeJS & npm。
$ sudo apt install nodejs npm
Arch Linux 系統,使用 Pacman 命令[7] 安裝 NodeJS & npm。
$ sudo pacman -S nodejs npm
RHEL/CentOS 系統,使用 YUM 命令[8] 安裝 NodeJS & npm。
$ sudo yum install epel-release
$ sudo yum install nodejs npm
openSUSE Leap 系統,使用 Zypper 命令[9] 安裝 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