Written by Sk December 8, 2020
本指南將會教你如何使用命令行或者Web瀏覽器來輕易地、安全地通過管道(Piping)服務器在任何設備之間傳輸文件。您可以通過管道服務器無限制地傳輸任何類型的數據。它可以是一個目錄、一個文本文件、一個音頻、視頻或任何東西。此外,它與你使用的操作系統或設備無關。與管道服務器共享文件是非常簡單和直接的。
管道服務器簡介
管道服務器是一種免費的Web服務,用于通過HTTP/HTTPS來在任何設備之間共享任何形式的數據。數據可以通過curl程序從終端傳輸,也可以通過Web UI傳輸。無需注冊! 你甚至不需要安裝任何額外的軟件。你所需要的就是curl命令行程序或者一個現代的Web瀏覽器,而大多數操作系統都預裝了這些。
管道服務器通過端到端加密安全地傳輸數據。它從不把你的數據存儲在任何數據中心上。管道服務器使用點對點方法從一個設備到另一個設備進行數據的中繼傳輸。
它能夠同時在多個設備之間共享數據。只需從一個設備發送一個文件,并從多個設備接收它。如果文件或文件夾太大而無法共享,只需壓縮并發送即可。
開發者還創建了許多能夠使用管道服務器的應用程序和腳本:
- 文本流聊天
- 通過具有端到端加密的管道服務器共享繪圖數據
- 終端屏幕共享
- 管道UI: 一個Web界面,能夠方便和安全的通過HTTPS在設備之間共享數據
- Piping-ssh-web: 通過Web瀏覽器上的管道服務器實現SSH鏈接
- Piping-vnc-web: 通過管道服務器的實現VNC
上述應用程序的鏈接可以在管道服務器的GitHub存儲庫中獲得。
使用管道服務器從命令行在任何設備之間傳輸文件
通過管道服務器在多個設備之間共享文件是非常容易的!首先,我們將看到如何使用curl程序在兩個系統之間共享數據。
例如,我將在我的Fedora系統上共享一個名為ostechnix.txt的文本文件。然后從我的Ubuntu系統接受該文件。
在發送方節點(即Fedora)上,輸入以下命令來共享文件:
$ curl -T ostechnix.txt https://ppng.io/ostechnix
現在轉到接收節點(即Ubuntu),使用命令下載文件:
$ curl https://ppng.io/ostechnix > ostechnix.txt
就是這么簡單。該文件將下載到當前目錄中。
在linux中使用管道服務器在任何設備之間傳輸文件
在這里, https://ppng.io/ostechnix是文件上傳URL。您可以在此URL的末尾使用不同的秘密路徑。例如,秘密路徑可以是/mymessage或/text123或任何您想要指定的內容。指定相同路徑的發送方和接收方可以進行文件的傳輸。發送方和接收方都可以率先開始傳輸。第一個會等待另一個。
您還可以通過管道傳輸文本文件的內容,然后共享它。在發送節點上,運行以下命令來共享一個名為ostechnix.txt的文本文件:
$ cat ostechnix.txt | curl -T - https://ppng.io/ostechnix
進入接收節點,使用命令獲取上面的文本文件:
$ curl https://ppng.io/ostechnix > ostechnix.txt
接收方在自己的系統中運行上述命令后,共享文件就會開始下載到自己的系統中。
下面是示例輸出。我從Ubuntu系統為Fedora系統共享了ostechnix.txt文件。
使用管道服務器的在任何設備之間傳輸文件
使用管道服務器傳輸目錄
如果您想要共享一個目錄,只需對它進行歸檔或壓縮并共享它。
使用tar歸檔一個目錄并使用管道服務器共享它:
$ tar zfcp - ~/mydirectory | curl -T - https://ppng.io/ostechnix
使用zip壓縮一個目錄并使用管道服務器共享它:
$ zip -q -r - ~/mydirctory | curl -T - https://ppng.io/ostechnix
分享文本
如前所述,您可以發送任何類型的數據,甚至文本消息。讓我們在兩個系統之間共享一條短信。
在發送節點上,鍵入以下內容:
$ echo "Welcome to OSTechNix" | curl -T - https://ppng.io/ostechnix
在接收節點上,您可以通過輸入以下命令來獲取此消息:
$ curl https://ppng.io/ostechnix
在系統之間使用管道服務器共享文本信息
很簡單,不是嗎? 使用它在系統之間共享url和剪貼板時非常方便。
如果你想要添加文本信息到一個文件,只需要使用重定向:
$ curl https://ppng.io/ostechnix > ostechnix.txt
上面的命令將文本保存在一個文本文件中,而不是在標準輸出中打印。
加密文件
要使用管道服務器加密并發送文件,運行:
$ cat ostechnix.txt | openssl aes-256-cbc | curl -T - https://ppng.io/ostechnix
解密及下載文件:
$ curl https://ppng.io/ostechnix | openssl aes-256-cbc -d
使用管道服務器傳輸文件到多個接收點
在上述情況下,我們只將文件共享給一個收件人。一旦接收完成,下載鏈接就會過期,所以你無法從任何其他設備下載相同的文件。
如果有人試圖訪問該文件,他們將得到以下消息:
$ curl https://ppng.io/ostechnix
[ERROR] The number of receivers has reached limits.
如果你想把文件傳送給更多的接收者,例如5個,需要在URL鏈接的結尾使用?n=5參數,如下所示:
$ cat ostechnix.txt | curl -T - https://ppng.io/ostechnix?n=5
現在,5個收件人可以使用以下URL訪問上述文件(或在一個系統中訪問5次):
$ curl https://ppng.io/ostechnix?n=5
請注意網址。您必須提供發送方節點中提到的確切URL。當文件被所有接收者接收后,你會在發送者節點看到一條成功的消息:
[INFO] Waiting for 5 receiver(s)...
[INFO] A receiver was connected.
[INFO] A receiver was connected.
[INFO] Start sending to 5 receiver(s)!
[INFO] Sent successfully!
[INFO] All receiver(s) was/were received successfully.
通過web瀏覽器使用管道服務器傳輸文件
如果你不想通過終端接收文件,只需復制下載URL并粘貼到你的瀏覽器地址欄來下載它。
通過web瀏覽器使用管道服務器傳輸文件
從管道服務器Web UI傳輸文件
如前所述,您可以在類Unix操作系統中通過終端或Web瀏覽器發送和接收文件。如果您不習慣使用命令行選項,或者您正在使用windows等其他操作系統,您可以使用管道服務器的web UI傳輸文件。管道服務器有為那些喜歡GUI而不是命令行的人提供了以下兩個接口:
- https://ppng.io/
- https://piping-ui.org/ (更現代的帶有加密選項的UI)
打開以上任何一個鏈接,選擇你想要分享的文件,輸入秘密路徑,點擊發送按鈕。如果使用第二個UI(即piping-ui),則有一個對文件進行密碼保護的選項。現在將生成一個文件上傳URL。您可以使用此URL從任何系統下載該文件。
從管道服務器Web UI傳輸文件
要下載該文件,只需在管道服務器Web界面的GET選項卡中粘貼您在前面步驟中復制的URL。您可能需要輸入密碼來解鎖和下載文件。
在本地安裝管道服務器
目前,管道服務器開發人員維護了一些公共服務器來傳輸文件。您還可以使用Docker或使用可移植的可執行文件來自行托管該服務。
如果你喜歡使用Docker,運行以下命令來運行一個本地管道服務器實例:
$ docker run -p 8080:8080 nwtgck/piping-server
將Web瀏覽器指向http://localhost:8080以訪問管道服務器。
如果您喜歡使用可移植的可執行文件,請從官方[release頁面]下載其最新版本:
$ wget https://github.com/nwtgck/piping-server-pkg/releases/download/v1.1.0/piping-server-linux
賦予可執行權限:
$ chmod +x piping-server-linux
并使用命令運行管道服務器本地實例:
$ ./piping-server-linux
現在可以通過URLhttp://ip-address:8080訪問管道服務器的Web UI。
自主托管的管道服務器
還有幾種在本地機器上部署管道服務器的方法。請參考項目的GitHub鏈接了解如何操作。
如何獲取幫助
要顯示管道服務器幫助信息,請運行:
$ curl https://ppng.io/help
本文譯自: Transfer Files Between Any Devices Using Piping Server
作者: Sk
譯者: 生材有道
校對: 開源科學計算
原文及本文遵循: [CC BY-NC 4.0協議]