Передача файлов между компьютерами и мобильными устройствами путем сканирования QR-кодов
Передача файлов между компьютером и мобильным телефоном может осуществляться различными методами и с использованием различных протоколов. Сегодня мы увидим совершенно новый, другой подход. В этом руководстве объясняется, как переносить файлы между компьютерами и мобильными устройствами путем сканирования QR-кодов. Да, вы правильно прочитали! Встречайте Qrcp, ранее известный как Qr-filetransfer, простое приложение для передачи файлов из командной строки, используемое для отправки и получения файлов через Wi-Fi между системой Linux и мобильным телефоном. сканируя QR-код, не выходя из Терминала.
При отправке файлов Qrcp привяжет веб-сервер к адресу вашей сетевой карты WiFi на случайном порту и создаст для него обработчик. Обработчик по умолчанию будет обслуживать содержимое и выходить из программы после завершения передачи. Аналогично, при получении файлов qrcp
обслуживает страницу загрузки и обрабатывает передачу.
Qrcp — бесплатная программа с открытым исходным кодом, написанная на языке программирования Go и распространяемая под лицензией MIT.
Установите Qrcp в Linux
Qrcp можно установить несколькими способами. Установите Qrcp в Linux, используя любой из следующих методов.
Установите Qrcp с помощью Golang
Сначала установите язык программирования Go в вашей системе Linux, как описано по следующей ссылке.
- Как установить язык Go в Linux
После установки Golang выполните следующую команду, чтобы установить Qrcp в вашей системе Linux:
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, например Paru или Yay.
paru -S qrcp
Или,
paru -S qrcp-bin
Или,
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
В системах на базе RPM, таких как CentOS, RHEL, загрузите файл .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 путем сканирования QR-кодов
Переносить файлы между компьютерами и мобильными устройствами с помощью Qrcp довольно просто!
Для целей данного руководства я буду использовать настольную систему Ubuntu 20.04 LTS и планшетный ПК Android.
Убедитесь, что на вашем мобильном телефоне установлено приложение для считывания QR-кода. Для Android доступно множество программ для чтения QR-кодов. Пожалуйста, выполните быстрый поиск в Интернете и установите любое устройство для чтения QR-кодов по вашему выбору на свой мобильный телефон.
Отправляйте файлы с компьютера на мобильный с помощью Qrcp
Сначала давайте посмотрим, как отправить файл из системы Linux на мобильный телефон.
Я собираюсь отправить файл изображения с рабочего стола Ubuntu на планшетный ПК с помощью команды:
qrcp ostechnix.png
Когда вы запускаете Qrcp в первый раз, он сканирует вашу систему, чтобы определить количество доступных сетевых интерфейсов Wi-Fi в вашей системе. Если доступно более одной подходящей карты Wi-Fi, 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)
Теперь вы увидите QR-код в своем терминале, как показано ниже.
✔ wlp9s0 (192.168.225.37)
Scan the following URL with a QR reader to start the file transfer:
http://192.168.225.37:41377/send/7jwi
█████████████████████████████████████
█████████████████████████████████████
████ ▄▄▄▄▄ ██▄ ▄███▄▄█▀▄▄█ ▄▄▄▄▄ ████
████ █ █ █ ▀▀ ██▄█▄▀██▄█ █ █ ████
████ █▄▄▄█ █ ██▄█ █▀▄█ █ █▄▄▄█ ████
████▄▄▄▄▄▄▄█ ▀▄█▄▀▄▀▄█ █ █▄▄▄▄▄▄▄████
████ ▀ ▄▄▄█▀▀▀███▄ ▄█▀ █▀ ▄▄█▀████
████▀█▄ ▀▄▄ ██ ▀█▀█▀▀ ▀▀▄▀ ▀██▀█████
████▀▀▄▄▄▀▄▄▀█▄▀█▀▀▄ █▄▄▀ ▀▄▄▄ █▀████
████ █▀ █▄▀▀ █ █ ▄▄ ▄█ █ ▀█ █▄▀█████
████ █▀ ██▄▄▄▄█ ▀█▄▄█▄▄█ █▄█▀▀ █▀████
████ █▄█▀▄▄▄█ █ ▄█▀█▀▄▀▀▀█▄█ ▄▄▀█████
████▄█▄▄▄▄▄▄ ▄▄▀▀▀▀▄ ██▀ ▄▄▄ ▀ ████
████ ▄▄▄▄▄ █▀▄█▀█ ▄▄▄ ▀ █▄█ ▄▄█▀████
████ █ █ █ ▀▀▄█▄▄ ▄▀ ▄ ▄█▀█████
████ █▄▄▄█ █▄▄█▀ ▄██▄▀▄ ▀█▄▀██ █████
████▄▄▄▄▄▄▄█▄█▄█▄▄▄▄█████▄█▄█████████
█████████████████████████████████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Отправляйте файлы с компьютера на мобильный с помощью Qrcp
Теперь откройте приложение для чтения QR-кодов на своем мобильном телефоне и отсканируйте QR-код, показанный на терминале компьютера с Linux. После сканирования QR-кода вы увидите URL-адрес загрузки на своем мобильном телефоне. Просто нажмите на нее, чтобы загрузить файл.
Отсканируйте QR-код с помощью приложения для чтения QR-кодов на мобильном телефоне, чтобы начать передачу файла.
Файл будет загружен в папку «Загрузки» по умолчанию на вашем мобильном телефоне.
Файл успешно загружен на мобильный телефон
Вы также можете отправить несколько файлов:
qrcp file1 file2
И целую папку можно отправить, как показано ниже:
qrcp ~/Documents/
Если размер файла большой, просто заархивируйте его и отправьте с флагом --zip
:
qrcp --zip movie.mp4
Получайте файлы с мобильного телефона на компьютер с помощью Qrcp
Чтобы отправить файл на свой компьютер с мобильного устройства, выполните следующую команду в терминале вашей системы Linux:
qrcp receive
Вы увидите QR-код в Терминале:
Scan the following URL with a QR reader to start the file transfer:
http://192.168.225.37:35221/receive/3xiz
█████████████████████████████████████
█████████████████████████████████████
████ ▄▄▄▄▄ ██ █ ▀ ▄██ ▄█ ▄▄▄▄▄ ████
████ █ █ █ ▀█▄▀ ▄▀▄█▄▄██ █ █ ████
████ █▄▄▄█ █ ▄█ ██▄▀▄▀█▀█ █▄▄▄█ ████
████▄▄▄▄▄▄▄█ █ ▀▄█▄█ █ ▀▄█▄▄▄▄▄▄▄████
████ ▀▄▄▄ ▄▀█▄ █ ▀█▄▄█▀▀█▀ ▄▄█▀████
████ ▄▄▀▀█▄ █▄▀▄▄ ▄▄▄▀ ▀▀▄▀ ▀██▀█████
██████▀█▄▄▄▀█ ▄█ █▄▄ █▀▄▀ ▀▄▄▄ █▀████
████▄ █ █▄▄█ █▀██▄█ █ ▀█ █▄▀█████
████ ▀▀▀█▀▄▀▀▀▀█▄▀▀ ▄ █ █▄█▀▀ █▀████
████ █ ▀▀█▄ █ █▀ ▄▄▀▄▀▀▀█▄█ ▄▄▀█████
████▄█▄██▄▄█ ▄ ▄▀█▄▄▀██▀ ▄▄▄ ▀ ████
████ ▄▄▄▄▄ █▀█▄█▄█▀▄ ▄▀ █▄█ ▄▄█▀████
████ █ █ █ █▀▀▀ ▄▄▄ ▄ ▄█▀█████
████ █▄▄▄█ █▄██▄█▄██▀▄▀▄ ▀█▄▀██ █████
████▄▄▄▄▄▄▄█▄▄▄▄███▄▄████▄█▄█████████
█████████████████████████████████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Получайте файлы с мобильного телефона на компьютер с помощью Qrcp
Откройте считыватель QR-кодов на мобильном устройстве и отсканируйте приведенный выше QR-код. Нажмите URL-адрес, чтобы загрузить файлы со своего мобильного телефона:
Отсканируйте QR-код с мобильного телефона, чтобы начать передачу файлов.
На вашем мобильном телефоне откроется новое окно браузера. Выберите файлы, которые вы хотите отправить со своего мобильного телефона на компьютер, и нажмите кнопку «Передать»:
Выберите файлы с мобильного телефона для отправки на компьютер.
В случае успешной передачи файла вы увидите на своем мобильном устройстве следующее сообщение:
Файлы успешно отправляются с мобильного телефона на компьютер
После завершения передачи файла на вашем терминале 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-адреса для отправки/получения файлов, использовать полное доменное имя вместо IP-адреса, распечатать QR-код в браузер, поддерживать работоспособность сервера и безопасно передавать файлы через HTTPS и т. д.
Настроить 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
Используйте специальный интерфейс Wi-Fi для передачи файлов
Если в вашей системе доступно более одного подходящего интерфейса Wi-Fi, вы можете использовать определенный интерфейс Wi-Fi для передачи файлов, используя флаг --interface
(или -i
):
qrcp -i wlp9s0 file.txt
Назначьте конкретный путь для URL-адресов
Qrcp по умолчанию использует следующие форматы URL-адресов для отправки и получения файлов:
- отправить -
http://{ip-адрес}:{порт}/send/{случайный путь
- получить -
http://{ip-адрес}:{порт}/receive/{случайный путь
Если вы хотите использовать для URL-адресов определенный путь, а не случайный путь, используйте флаг --path
:
qrcp --path=abcd file.txt
Теперь результирующий URL будет:
http://{ip address}:{port}/send/abcd
Используйте полное доменное имя вместо IP-адреса.
По умолчанию Qrcp будет использовать IP-адрес вашей системы Linux в URL-адресе. Если вы хотите использовать полное имя вместо IP-адреса в URL-адресе, используйте флаг --fqdn
(или -d
):
qrcp --fqdn ostechnix.example -i wlp9s0 -p 8080 file.txt
Распечатать QR-код в браузере
Qrcp сгенерирует QR-код в терминале. Если вы хотите распечатать QR-код за пределами окна терминала, используйте флаг --browser
.
qrcp --browser file.txt
Эта команда по-прежнему будет печатать QR-код в Терминале, но также будет отображать 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
- Обмен файлами между настольными компьютерами Linux с помощью Warpinator
- Как безопасно обмениваться файлами через Интернет с помощью Firefox Send
- Как безопасно обмениваться файлами из командной строки с помощью ffsend в Linux
- PSiTransfer — простое решение для самостоятельного размещения файлов с открытым исходным кодом
- Как настроить базовый файловый сервер с помощью simpleHTTPserver
- Простой и быстрый способ поделиться файлами через Интернет из командной строки
- OnionShare - безопасно и анонимно делитесь файлами любого размера
Изображение Герда Альтмана из Pixabay.