Инструменты передачи файлов Linux: CLI и браузерные варианты
Изучите лучшие инструменты передачи файлов в Linux. От утилит командной строки до браузерных сервисов для отправки файлов.
На Linux лучший инструмент передачи файлов зависит от того, куда идут данные: между собственными машинами (rsync, scp, sftp) или нетехническому получателю за пределами вашего контроля (браузерные сервисы вроде HexaTransfer). Для массовых копий между серверами rsync -avP --partial — главная рабочая лошадка. Для разовой доставки нетехническому получателю URL от браузерного сервиса намного удобнее, чем просить установить SSH-клиент. Рабочие среды Linux (GNOME, KDE) также поддерживают SMB, WebDAV и SFTP напрямую через файловый менеджер.
Классические CLI-инструменты
scp — защищённое копирование по SSH. Просто и понятно:
scp bigfile.tar.gz user@server:/home/user/
scp -r folder/ user@server:/path/
Без возобновления при сбое. Подходит для надёжных сетей, неудобен при нестабильном соединении. OpenSSH 9.0 (2022) переключил протокол по умолчанию с SCP-over-SSH на SFTP — поведение схоже, но крайние случаи различаются.
rsync — инкрементальная синхронизация с возобновлением:
rsync -avP --partial source/ user@server:/dest/
Флаги: -a режим архива (сохраняет права, время, симлинки), -v подробный вывод, -P прогресс + --partial (сохраняет частичный файл при сбое). --bwlimit=50000 ограничивает пропускную способность до 50 МБ/с для общих каналов.
При идентичных корнях источника и назначения rsync при последующих запусках переносит только изменённые байты — огромная экономия времени при повторяющихся передачах.
sftp — интерактивная передача файлов по SSH. Используется как старый FTP-клиент:
sftp user@server
> put bigfile.tar.gz
> get somefile.txt
rclone — как rsync, но для облачных провайдеров. Поддерживает S3, Google Drive, Dropbox, OneDrive, Backblaze B2 и десятки других. Отлично подходит для скриптовой загрузки в объектное хранилище:
rclone copy local/folder remote:bucket/path -P
Браузерные варианты для нетехнических получателей
Не у каждого получателя файлов есть SSH-ключи. Для отправки журналистам, клиентам или членам семьи URL сервиса передачи — это то, что работает:
| Сервис | Макс. бесплатно | Шифрование | Поддержка Linux | |---|---|---|---| | HexaTransfer | 10 ГБ | Сквозное AES-256-GCM | Да (любой браузер) | | WeTransfer | 2 ГБ | TLS | Да | | SwissTransfer | 50 ГБ | TLS | Да | | Proton Drive Share | 1 ГБ | Сквозное | Да | | Tresorit Send | 5 ГБ | Сквозное | Да |
Firefox и Chromium на Linux оба уверенно справляются с большими загрузками. Производительность загрузки обычно ограничена «железом» и каналом, а не браузером.
Инструменты рабочего стола для передачи внутри сети
GNOME Files (Nautilus): Подключиться к серверу > smb://, sftp://, ftp://, dav://. Монтирует удалённое хранилище как локальное. Подходит для нечастого просмотра.
KDE Dolphin: те же возможности, немного другой интерфейс. Поддерживает те же протоколы.
smbclient — командная строка SMB для скриптов:
smbclient //server/share -U user
sshfs — монтирование удалённой файловой системы по SSH:
sshfs user@server:/remote/path ~/mnt/remote
Полезно, когда приложение ожидает локальный путь.
Настройка скорости передачи в Linux
Стандартное масштабирование TCP-окна Linux хорошо справляется с высокоскоростными передачами, но некоторые дистрибутивы поставляются с консервативными настройками. Для передач через высоколатентные каналы с большой полосой пропускания:
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216"
sysctl -w net.ipv4.tcp_wmem="4096 65536 16777216"
Включите BBR-управление перегрузкой для лучшей пропускной способности на каналах с потерями:
sysctl -w net.ipv4.tcp_congestion_control=bbr
На обычных домашних сетях это не нужно, но при передаче данных между дата-центрами или через континенты разница между стандартным CUBIC и BBR может быть в 2–3 раза.
Архивирование: варианты tar
tar -czf archive.tar.gz folder/ # gzip, быстро, умеренное сжатие
tar -cjf archive.tar.bz2 folder/ # bzip2, медленнее, лучше сжатие
tar -cJf archive.tar.xz folder/ # xz, медленнее всего, лучшее сжатие
tar --use-compress-program=zstd -cf archive.tar.zst folder/ # zstd, быстро и хорошее сжатие
Для современного Linux zstd превосходит gzip и по скорости, и по степени сжатия. Для распространения получателям не Linux используйте .zip: zip -r archive.zip folder/.
Чтобы разбить большой архив на части:
tar -czf - folder/ | split -b 2G - archive.tar.gz.part_
Пересборка: cat archive.tar.gz.part_* | tar -xzf -.
Объектное хранилище как транспортный уровень
Для рабочих процессов, генерирующих множество файлов или очень большие файлы, облачный бакет в качестве транспортного уровня удобнее разовых сервисов:
AWS S3: aws s3 cp file s3://bucket/path, затем создайте presigned URL с помощью aws s3 presign s3://bucket/path --expires-in 3600. Получатель получает временную прямую ссылку для скачивания.
Cloudflare R2: совместимый с S3 API, без платы за исходящий трафик. Используйте тот же CLI aws с кастомным эндпоинтом.
Backblaze B2: b2 upload-file bucket file key, затем b2 get-download-url-with-auth bucket key 3600.
MinIO: самостоятельный хостинг S3-совместимого сервера с presigned URL на собственном домене.
Для разработчиков, отправляющих артефакты сборки, логи или дампы, эти варианты предпочтительнее универсальных сервисов передачи файлов.
Временные HTTP-серверы для локальной сети
Для быстрой передачи в локальной сети:
python3 -m http.server 8000
Раздаёт текущий каталог по адресу http://your-ip:8000/. Получатель открывает URL и скачивает. Удобно между ноутбуком и ВМ или телефоном в одной Wi-Fi-сети. Без шифрования — подходит для внутренней сети, не для внешней.
Для HTTPS с самоподписанным сертификатом:
python3 -c "import http.server, ssl; httpd = http.server.HTTPServer(('0.0.0.0', 8443), http.server.SimpleHTTPRequestHandler); httpd.socket = ssl.wrap_socket(httpd.socket, certfile='cert.pem', server_side=True); httpd.serve_forever()"
caddy file-server делает это чисто с автоматическим HTTPS, если у вас есть настоящий домен.
P2P-инструменты
Magic Wormhole (wormhole):
wormhole send bigfile.tar.gz
# выводит код вроде 7-crossover-clockwork
# получатель запускает: wormhole receive 7-crossover-clockwork
Сквозное шифрование, работает через NAT через rendezvous-сервер. Отлично для разовых прямых передач.
croc (от schollz): аналог wormhole, один исполняемый файл, кросс-платформенный. Популярен в homelab-сообществе.
Оба инструмента — peer-to-peer, но маршрутизируются через rendezvous-серверы для обхода NAT. Шифрование сквозное, путь — не прямой.
Шифрование перед загрузкой
Для параноидальных рабочих процессов зашифруйте архив перед отправкой через любой сервис:
gpg --symmetric --cipher-algo AES256 bigfile.tar.gz
Создаёт bigfile.tar.gz.gpg. Получатель расшифровывает с помощью gpg --decrypt. Передайте пароль по отдельному каналу.
Или используйте age — современную альтернативу:
age -p -o encrypted.age plaintext.tar.gz
С сервисами со сквозным шифрованием, такими как HexaTransfer, эта двойная обёртка обычно не нужна, но для угрозных моделей государственного уровня «подтяжки и ремень» имеют смысл.
Попробуйте на hexatransfer.com — бесплатно, без регистрации, до 10 ГБ.
Безопасная отправка больших файлов со сквозным шифрованием
Передавайте файлы до 10 ГБ бесплатно со сквозным шифрованием. Регистрация не требуется. Ваши файлы шифруются в браузере перед загрузкой — никто другой не может их прочитать.
Отправить файл