Croc — безопасная и быстрая передача файлов между Linux и любыми устройствами

Что такое croc?
Croc — это кроссплатформенный инструмент командной строки для быстрой и безопасной передачи файлов и папок между двумя компьютерами. Работает на Linux, macOS и Windows.
Ключевые принципы работы:
- Релейный сервер создаёт полно‑дуплексный канал между отправителем и получателем; файлы не сохраняются для публичного доступа, а передаются напрямую через туннель.
- Для установления защищённого соединения используется PAKE (Password Authenticated Key Exchange) — метод обмена ключами по паролю, дающий сквозное шифрование.
- Благодаря реле и PAKE не требуется пробрасывать порты в домашнем или офисном роутере.
Важно: croc — CLI-инструмент; он ориентирован на людей, комфортно использующих терминал.
Зачем использовать croc?
Преимущества и сценарии, где croc полезен:
- Быстрая настройка: не нужно VPN, NAT‑проброс или настройки роутера.
- Безопасность: PAKE и генерируемые секреты уменьшают риск MITM при корректном использовании.
- Надёжность: поддержка возобновления при обрыве соединения уменьшает потерю прогресса при передаче больших файлов.
- Гибкость: можно использовать прокси (например, Tor) или развернуть свой релейный сервер.
- Кроссплатформенность: работает между Linux, macOS, Windows и мобильными платформами (через соответствующие сборки).
Когда croc не самый удобный выбор:
- Для синхронизации больших наборов файлов с постоянными изменениями лучше подходят rsync или Unison.
- Для интеграции в автоматические CI/CD пайплайны удобнее инструменты с API (S3, SCP при SSH‑ключах).
Установка croc на Linux
Croc доступен для большинства дистрибутивов. Ниже — рекомендованные варианты установки.
Скачайте последнюю сборку с официального сайта или GitHub проекта.
Скачать: Croc
DEB для Ubuntu/Debian — откройте терминал, перейдите в каталог с файлом и выполните:
sudo dpkg -i croc-*.debДля Arch Linux:
sudo pacman -S crocДля FreeBSD:
pkg install crocЕсли пакет не найден для вашего дистрибутива, можно запустить скрипт установки напрямую:
curl https://getcroc.schollz.com | bashПодсказка: после установки выполните croc –help, чтобы посмотреть доступные опции и версии.
Как использовать croc для передачи файлов
Croc работает по принципу «отправитель выдаёт код, получатель вводит код».
Ниже — подробные инструкции для отправки и приёма.
Передача файлов из Linux на другое устройство
- Откройте терминал на отправителе (Linux).
- Выполните команду:
croc send file_nameПример:
croc send MyText.txt
- В терминале появится код (фраза), например alpha1. На принимающем устройстве в терминале введите:
croc alpha1- Подтвердите приём, введя y, когда появится запрос.
Как работает безопасность: когда код совпадает, устанавливается PAKE и генерируется секрет для сквозного шифрования передачи.
Короткий код можно заменить на свой, удобный для ввода:
croc send --code your_code_phrase file_nameПример отправки текста (полезно для передачи ссылок или заметок):
croc send --text "hello"На принимающем устройстве введите код и подтвердите y, чтобы увидеть сообщение.
Примечание: croc поддерживает передачу папок; если вы отправляете папку, указывайте путь к директории. В зависимости от версии croc поведение по умолчанию может архивировать директорию перед передачей или передавать содержимое рекурсивно — проверьте croc –help для вашей сборки.
Приём файлов на Linux с другого устройства
- На отправляющем устройстве выполните:
croc send file_name- На Linux‑приёмнике в терминале введите код, который выдал отправитель:
croc code_phrase- Подтвердите y для загрузки.

Частые сценарии и практические советы
- Быстрая передача с локальной сети: croc автоматически выберет наилучший путь; проброс портов не обязателен.
- Передача через публичный интернет: используйте более короткие, легко вводимые коды только в доверенной среде. Для публичных передач предпочтительнее автоматически сгенерированные сложные фразы.
- Использование прокси/Tor: croc поддерживает работу через системные прокси; при необходимости настроьте переменные окружения http_proxy/https_proxy или используйте torify/socat.
- Возобновление передачи: если соединение оборвалось, повторите команду отправки — в большинстве случаев croc продолжит передачу с места остановки.
Important: всегда сверяйте код с собеседником до подтверждения, чтобы избежать случайной пересылки данных не тому адресу.
Плейбук: быстрый SOP для одноразовой передачи
Шаги для обычного одноразового обмена файлами:
- На отправителе: откройте терминал и выполните croc send file_name.
- Отправьте полученный код голосом, мессенджером или устно получателю (не публикуйте код в открытом чате).
- На принимающем устройстве: выполните croc code_phrase и подтвердите y.
- Проверьте контрольную сумму (при передаче важных данных). Для этого на отправителе и принимающем можно сравнить sha256sum file_name.
Пример проверки контрольной суммы:
sha256sum MyText.txtЕсли хеши совпадают — файл корректен.
Критерии приёмки
Файл считается успешно переданным, когда:
- На принимающем устройстве отображается сообщение об успешной передаче;
- Контрольная сумма отправленного и полученного файлов совпадает (рекомендуется для важных данных);
- Передача завершилась без ошибок и без незавершённых частей.
Чек‑листы по ролям
Отправитель:
- Убедиться, что croc установлен и работает (croc –version).
- Подготовить файл/папку, при необходимости сжать или зашифровать.
- Запустить croc send и передать код получателю безопасным каналом.
- Дождаться подтверждения и окончания передачи.
Получатель:
- Убедиться, что croc установлен.
- Ввести код, полученный от отправителя.
- Подтвердить приём y.
- Проверить целостность файла sha256sum.
Администратор (при self-host relay):
- Настроить переадресацию портов и SSL, если релeй доступен извне.
- Ограничивать доступ по IP/ACL при необходимости.
- Периодически проверять логи и обновления безопасности.
Техническая мини‑методология развёртывания собственной релейной инфраструктуры
Если вы хотите минимизировать зависимость от общих публичных релeй-сервисов, рассмотрите self-host релeя:
- Проверьте репозиторий croc на GitHub для инструкций по развёртыванию релейного сервера.
- Разверните релейный сервис в изолированной среде (виртуальная машина или контейнер).
- Закройте ненужные порты, используйте TLS и настройки firewall.
- При возможности активируйте аутентификацию и мониторинг логов.
Примечание: подробные команды для Docker и конфигурации зависят от конкретной реализации релея и доступны в официальной документации проекта.
Отказоустойчивость и запуск восстановления при ошибках
Типичные проблемы и шаги решения:
- Соединение прерывается: подождите, затем повторно выполните команду отправки; croc обычно позволяет возобновить передачу.
- Код не работает: сгенерируйте новый код и повторите операцию; убедитесь, что оба участника используют одну версию croc и один релейный сервер.
- Ошибки прокси/сети: проверьте настройки http(s)_proxy и доступ к релейному хосту; попробуйте использовать альтернативную сеть (мобильный хотспот) для локализации проблемы.
Сравнение с альтернативными инструментами
- scp/rsync: подходят для постоянных подключений по SSH и синхронизации; требуют доступного SSH‑сервера.
- qrcp: удобен для передачи между мобильными устройствами и ПК через QR‑коды; больше подходит для кратковременных GUI‑сценариев.
- magic-wormhole: похож по идее на croc (одноразовый код), ориентирован на безопасные одноразовые передачи через центральный сервер.
Выбор зависит от требований: если нужен быстрый, одноразовый, защищённый обмен без настройки серверов — croc отлично подойдёт. Для резервных копий и синхронизации больших наборов данных лучше пользоваться rsync/ssh.
Рекомендации по безопасности и конфиденциальности
- Никогда не публикуйте код передачи в открытых каналах.
- При передаче чувствительных данных предпочтительнее заранее зашифровать файл локально (gpg, age) перед отправкой.
- Рассмотрите развёртывание собственного релейного сервера, чтобы минимизировать внешние точки сбора метаданных.
- При использовании общедоступных релеев учтите, что операторы релея могут иметь метаданные о соединениях; для строгой приватности разверните собственный релей.
- Для корпоративного использования оформите правила хранения и удаления логов, чтобы соответствовать требованиям соответствия и приватности.
Note: PAKE защищает содержимое передачи, но метаданные (кто с кем соединялся, время передачи) зависят от выбранной инфраструктуры релея.
Тесты и критерии приёмки (короткий набор тест‑кейсов)
- Малый файл (≤1 МБ): отправитель выполняет croc send small.txt; получатель получает файл, контрольная сумма совпадает.
- Большой файл (>1 ГБ): отправитель прерывает соединение на середине; повторный запуск возобновляет передачу и завершает её.
- Передача текста: croc send –text “URL”; получатель вводит код и видит текст.
- Передача через прокси: проверить работу при установленных http_proxy/https_proxy.
Короткий словарь терминов
- PAKE — защищённый обмен ключами по паролю.
- Релейный сервер — сервер, который перенаправляет трафик между двумя клиентами.
- Full‑duplex — двунаправленная передача данных одновременно в обе стороны.
Итог
Croc — удобный инструмент для одноразовой и защищённой передачи файлов через терминал. Он особенно полезен, когда хочется передать файл быстро без настройки серверов и проброса портов, при этом сохранить высокий уровень шифрования. Для регулярной синхронизации больших наборов данных стоит рассмотреть специализированные решения.
Короткая памятка:
- Установите croc, выполните croc –version.
- На отправителе: croc send file_name или croc send –code mycode file_name.
- На приёмнике: croc code_phrase и подтвердите y.
Дополнительные материалы и альтернативы: qrcp, rsync, scp. Для подробной документации и последних релизов смотрите репозиторий проекта на GitHub.
Контактные заметки
Если вы управляете инфраструктурой и планируете массово внедрять croc в организации, рекомендую протестировать self-host релeй в изолированной среде и согласовать политику хранения логов и контроль доступа.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone