計算機和手機之間的文件傳輸可以使用不同的方法和不同的協議來完成。今天,我將向您介紹一種全新的不同方法。本指南將向您展示如何掃描二維碼以在計算機和移動設備之間傳輸文件。是的,你沒有看錯!問候語 資源管理器,之前 二維碼文件傳輸是一個簡單的命令行文件傳輸應用程序,無需離開終端即可通過掃描二維碼在 Linux 系統和手機之間通過 WiFi 發送和接收文件。
發送文件時,Qrcp 將 Web 服務器綁定到隨機端口上的 WiFi 網絡接口卡的地址,並為其創建處理程序。傳輸完成後,默認處理程序會提供內容並退出程序。同樣,在接收文件時, qrcp
提供上傳頁面並處理傳輸。
Qrcp 是一個免費的開源程序。 去 一種編程語言,和 和 執照。
內容
在 Linux 上安裝 Qrcp
Qrcp 可以通過多種方式安裝。使用以下方法之一在 Linux 上安裝 Qrcp:
使用 Golang 安裝 Qrcp
首先,按照以下鏈接中的說明在您的 Linux 系統上安裝 Go 編程語言。
- 如何在Linux上安裝Go語言
安裝 Golang 後,運行以下命令在您的 Linux 系統上安裝 Qrcp。
$ go get github.com/claudiodangelis/qrcp
從二進製文件安裝 Qrcp
下載最新的 Qrcp 歸檔文件 公共頁面在撰寫本指南時,最新版本是 0.7.0.
$ wget https://github.com/claudiodangelis/qrcp/releases/download/0.7.0/qrcp_0.7.0_linux_x86_64.tar.gz
使用以下命令提取下載的存檔:
$ tar xf qrcp_0.7.0_linux_x86_64.tar.gz
二進制 $PATH
:
$ sudo mv qrcp /usr/local/bin
最後,設置執行權限。
$ sudo chmod +x /usr/local/bin/qrcp
請注意,最後一步是可選的。無需使其可執行。在這種情況下,將文件移動到路徑將使文件可執行。
使用包管理器安裝 Qrcp。
Qrcp 在 AUR 中可用。
- qrcp-bin
- qrcp
例如,您可以使用任何 AUR 幫助程序進行安裝 是的.
$ yay -S qrcp
再次,
$ yay -S qrcp-bin
Qrcp 也可以作為 .deb
和 .rpm
文檔。轉到發布頁面並下載適合您的發行版的版本。
如果您有基於 Debian 的系統,請下載 .deb
從發布頁面下載安裝文件,安裝如下。
$ sudo apt install gdebi
$ sudo gdebi qrcp_0.7.0_linux_x86_64.deb
在 CentOS、RHEL 等基於 RPM 的系統上,下載 .rpm
從發布頁面下載文件並按如下方式安裝:
$ sudo dnf install qrcp_0.7.0_linux_x86_64.rpm
再次,
$ sudo rpm -ivh qrcp_0.7.0_linux_x86_64.rpm
安裝後,通過運行以下命令檢查 Qrcp 是否正常工作:
$ qrcp version
qrcp 0.7.0 [date: 2020-10-08T13:30:56Z]
使用Qrcp掃描二維碼在電腦和移動設備之間傳輸文件
Qrcp 使您可以輕鬆地在計算機和移動設備之間傳輸文件。
本指南使用 Ubuntu 20.04 LTS 桌面系統和 Android 平板電腦。
確保您的智能手機上安裝了二維碼閱讀器應用程序。 有許多適用於 Android 的二維碼閱讀器。進行快速網絡搜索並在手機上安裝您喜歡的二維碼閱讀器。
使用Qrcp從電腦發送文件到手機
首先,讓我們看看如何將文件從您的 Linux 系統發送到您的移動設備。
使用以下命令將圖像文件從 Ubuntu 桌面發送到平板電腦:
$ qrcp ostechnix.png
當您第一次啟動 Qrcp 時,它會掃描您的系統並檢測您系統上可用的 WiFi 網絡接口的數量。如果有多個合適的 WiFi 卡可用,Qrcp 將提示您選擇傳輸文件的位置。就我而言,我選擇了無線接口。 wlp9s0
按 ENTER 接受無線接口。 Qrcp 會記住這個選擇,不會再詢問你。
Use the arrow keys to navigate: ↓ ↑ → ←
? Choose interface:
▸ wlp9s0 (192.168.225.37)
virbr0 (192.168.122.1)
mpqemubr0 (10.39.86.1)
any (0.0.0.0)
二維碼將出現在您的終端上,如下所示。
✔ wlp9s0 (192.168.225.37)
Scan the following URL with a QR reader to start the file transfer:
https://192.168.225.37:41377/send/7jwi
█████████████████████████████████████
█████████████████████████████████████
████ ▄▄▄▄▄ ██▄ ▄███▄▄█▀▄▄█ ▄▄▄▄▄ ████
████ █ █ █ ▀▀ ██▄█▄▀██▄█ █ █ ████
████ █▄▄▄█ █ ██▄█ █▀▄█ █ █▄▄▄█ ████
████▄▄▄▄▄▄▄█ ▀▄█▄▀▄▀▄█ █ █▄▄▄▄▄▄▄████
████ ▀ ▄▄▄█▀▀▀███▄ ▄█▀ █▀ ▄▄█▀████
████▀█▄ ▀▄▄ ██ ▀█▀█▀▀ ▀▀▄▀ ▀██▀█████
████▀▀▄▄▄▀▄▄▀█▄▀█▀▀▄ █▄▄▀ ▀▄▄▄ █▀████
████ █▀ █▄▀▀ █ █ ▄▄ ▄█ █ ▀█ █▄▀█████
████ █▀ ██▄▄▄▄█ ▀█▄▄█▄▄█ █▄█▀▀ █▀████
████ █▄█▀▄▄▄█ █ ▄█▀█▀▄▀▀▀█▄█ ▄▄▀█████
████▄█▄▄▄▄▄▄ ▄▄▀▀▀▀▄ ██▀ ▄▄▄ ▀ ████
████ ▄▄▄▄▄ █▀▄█▀█ ▄▄▄ ▀ █▄█ ▄▄█▀████
████ █ █ █ ▀▀▄█▄▄ ▄▀ ▄ ▄█▀█████
████ █▄▄▄█ █▄▄█▀ ▄██▄▀▄ ▀█▄▀██ █████
████▄▄▄▄▄▄▄█▄█▄█▄▄▄▄█████▄█▄█████████
█████████████████████████████████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
然後打開手機上的二維碼閱讀器應用,掃描Linux電腦終端上顯示的二維碼。 掃描二維碼,您的智能手機將顯示下載地址。只需單擊即可下載文件。
文件將下載到手機的默認下載文件夾中。

您也可以發送多個文件。
$ qrcp file1 file2
您也可以像這樣發送整個文件夾:
$ qrcp ~/Documents/
如果文件較大,請在發送前壓縮 --zip
橫幅:
$ qrcp --zip movie.mp4
使用Qrcp從手機接收文件到電腦
要將文件從移動設備發送到計算機,請在 Linux 系統的終端中運行以下命令:
$ qrcp receive
二維碼將出現在您的設備上。
Scan the following URL with a QR reader to start the file transfer:
https://192.168.225.37:35221/receive/3xiz
█████████████████████████████████████
█████████████████████████████████████
████ ▄▄▄▄▄ ██ █ ▀ ▄██ ▄█ ▄▄▄▄▄ ████
████ █ █ █ ▀█▄▀ ▄▀▄█▄▄██ █ █ ████
████ █▄▄▄█ █ ▄█ ██▄▀▄▀█▀█ █▄▄▄█ ████
████▄▄▄▄▄▄▄█ █ ▀▄█▄█ █ ▀▄█▄▄▄▄▄▄▄████
████ ▀▄▄▄ ▄▀█▄ █ ▀█▄▄█▀▀█▀ ▄▄█▀████
████ ▄▄▀▀█▄ █▄▀▄▄ ▄▄▄▀ ▀▀▄▀ ▀██▀█████
██████▀█▄▄▄▀█ ▄█ █▄▄ █▀▄▀ ▀▄▄▄ █▀████
████▄ █ █▄▄█ █▀██▄█ █ ▀█ █▄▀█████
████ ▀▀▀█▀▄▀▀▀▀█▄▀▀ ▄ █ █▄█▀▀ █▀████
████ █ ▀▀█▄ █ █▀ ▄▄▀▄▀▀▀█▄█ ▄▄▀█████
████▄█▄██▄▄█ ▄ ▄▀█▄▄▀██▀ ▄▄▄ ▀ ████
████ ▄▄▄▄▄ █▀█▄█▄█▀▄ ▄▀ █▄█ ▄▄█▀████
████ █ █ █ █▀▀▀ ▄▄▄ ▄ ▄█▀█████
████ █▄▄▄█ █▄██▄█▄██▀▄▀▄ ▀█▄▀██ █████
████▄▄▄▄▄▄▄█▄▄▄▄███▄▄████▄█▄█████████
█████████████████████████████████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀

在您的移動設備上打開二維碼閱讀器並掃描上面的二維碼。 單擊 URL 以從您的手機上傳文件。

一個新的瀏覽器窗口將在您的手機上打開。選擇要從手機發送到計算機的文件,然後單擊傳輸按鈕。

如果文件傳輸成功,您將在移動設備上看到以下消息。

文件傳輸完成後,您將在 Linux 終端中看到以下消息:
Transferring file: /home/sk/IMG-20201017-WA0002.jpg
/home/sk/IMG-20201017-WA0002.jpg[===============================================] 99.74% 0s
File transfer completed

如您所見,文件已下載到當前目錄。如果要將文件接收到特定目錄,請使用 --output
橫幅:
$ qrcp receive --output=~/Downloads
在這種情況下,將下載所有文件 ~/Downloads
目錄。
Qrcp選項
不需要配置 Qrcp。默認情況下,Qrcp 無需任何預先配置即可使用。但是,您可以使用 Qrcp 參數以某些方式調整 Qrcp 的功能。例如,使用特定端口而不是隨機端口,指定配置文件的位置,使用特定網絡接口卡進行文件傳輸,使用自定義 URL 發送和接收文件,HTTPS 您可以使用 FQDN 而不是主動通過安全傳輸文件更多的。
Qrcp配置
默認配置文件存儲在: $HOME/.qrcp.json
.qrcp在傳輸文件時讀取並使用這個文件中定義的參數。
查看當前配置的參數, cat
命令:
$ cat $HOME/.qrcp.json
{
"fqdn": "",
"interface": "wlp9s0",
"port": 0,
"keepAlive": false,
"path": "~/Desktop",
"secure": false,
"tls-key": "",
"tls-cert": ""
}
您可以通過運行以下命令來根據自己的喜好設置 Qrcp 的默認參數:
$ qrcp config
為文件傳輸選擇合適的無線網絡接口。
? Choose interface:
mpqemubr0 (10.39.86.1)
▸ wlp9s0 (192.168.225.37)
virbr0 (192.168.122.1)
any (0.0.0.0)
如果由於某種原因您沒有看到您的網絡接口,請改用此命令:
$ qrcp --list-all-interfaces config
請輸入完全限定名稱 (FQDN):
✔ Choose fully-qualified domain name: sk.ostechnix.example
選擇一個隨機端口:
✔ Choose port, 0 means random port: 8080
如果要使用隨機端口,請使用 0
(零)。
輸入保存文件/文件夾的目標路徑:
✔ Choose path, empty means random: ~/Downloads
默認情況下,Qrcp 將接收到的文件/文件夾保存在當前目錄中。
選擇文件傳輸後是否保留服務器。
? Should the server keep alive after transferring?:
▸ No
Yes
如果您想安全地傳輸文件,請選擇適當的選項。
? Should files be securely transferred with HTTPS?:
▸ No
Yes
[はい]如果選擇 ,則必須輸入 TLS 證書路徑和 TLS 證書密鑰。
更新配置文件會使用新值更新默認配置。
Configuration updated:
{
"fqdn": "sk.ostechnix.example",
"interface": "wlp9s0",
"port": 8080,
"keepAlive": false,
"path": "~/Downloads",
"secure": false,
"tls-key": "",
"tls-cert": ""
}
Qrcp 在傳輸文件時使用這些新值。
也可以手動使用自定義參數來代替配置文件中定義的現有參數。
使用自定義端口
在您的計算機和移動設備之間發送和接收文件時,Qrcp 將使用任何隨機可用端口。如果要使用特定端口。 8080
,傳輸文件時, --port
再次 -p
橫幅:
$ qrcp --port 8080 file.txt
指定配置文件的位置
如上所述,默認配置文件存儲在: $HOME/.qrcp.json
如果你想使用存儲在別處的配置文件, --config
橫幅:
$ qrcp --config ~/Downloads/qrcp.json file.txt
使用特定的 WiFi 接口進行文件傳輸
如果您的系統上有多個合適的 WiFi 接口可用,您可以使用特定的 WiFi 接口: --interface
(再次 -i
) 旗幟:
$ qrcp -i wlp9s0 file.txt
為 URL 分配特定路徑
Qrcp 默認使用以下 URL 格式發送和接收文件:
- 發送-
https://{ip address}:{port}/send/{random path}
- 收到-
https://{ip address}:{port}/receive/{random path}
如果您希望 URL 使用特定路徑而不是隨機路徑,請使用 --path
橫幅:
$ qrcp --path=abcd file.txt
現在生成的 URL 如下所示:
$ https://{ip address}:{port}/send/abcd
使用 FQDN 而不是 IP 地址
默認情況下,Qrcp 在 URL 中使用 Linux 系統的 IP 地址。 如果您在 URL 中使用完全限定名稱而不是 IP 地址, --fqdn
(再次 -d
) 旗幟:
$ qrcp --fqdn ostechnix.example -i wlp9s0 -p 8080 file.txt
在瀏覽器中打印二維碼
Qrcp 在您的終端中生成二維碼。如果要在終端窗口外打印二維碼,請使用 --browser
橫幅。
$ qrcp --browser file.txt
此命令將 QR 碼打印到終端,但會在默認 Web 瀏覽器的新窗口中顯示 QR 碼。
保持服務器存活
文件傳輸完成後,連接會自動關閉。因此其他設備將無法訪問該文件/文件夾。如果你想將同一個文件/文件夾傳輸到多個設備, --keep-alive
橫幅:
$ qrcp --keep-alive file.txt
得到幫助
要查看可用子命令和標誌的列表,請運行:
$ qrcp --help
Usage:
qrcp [flags]
qrcp [command]
Available Commands:
completion Generate completion script
config Configure qrcp
help Help about any command
receive Receive one or more files
send Send a file(s) or directories from this host
version Print version number and build information.
Flags:
-b, --browser display the QR code in a browser window
-c, --config string path to the config file, defaults to $HOME/.qrcp
-d, --fqdn string fully-qualified domain name to use for the resulting URLs
-h, --help help for qrcp
-i, --interface string network interface to use for the server
-k, --keep-alive keep server alive after transferring
-l, --list-all-interfaces list all available interfaces when choosing the one to use
--path string path to use. Defaults to a random string
-p, --port int port to use for the server
-q, --quiet only print errors
-s, --secure use https connection
--tls-cert string path to TLS certificate to use with HTTPS
--tls-key string path to TLS private key to use with HTTPS
-z, --zip zip content before transferring
Use "qrcp [command] --help" for more information about a command.
資源:
- Qrcp GitHub 存儲庫
相關文件:
- 使用 Croc 在計算機之間傳輸文件和文件夾
- 使用 Warpinator 在 Linux 桌面之間共享文件
- 如何使用 Firefox Send 通過互聯網安全地共享文件
- 如何在 Linux 上使用 ffsend 從命令行安全地共享文件
- PSiTransfer – 簡單的開源自託管文件共享解決方案
- 如何使用 simpleHTTPserver 設置基本文件服務器
- 從命令行通過 Internet 共享文件的快速快捷方式
- OnionShare – 安全且匿名地共享任何大小的文件
Gerd Altmann 在 Pixabay 上的特色圖片
Android文件共享文件傳輸GoGoLangLinuxMobile開源二維碼qr-filetransferQrcp