Флешка и облако — не единственные способы передать файл. Если устройства в одной сети, LocalSend отправит данные напрямую и без аккаунта. Если собеседник в другом городе, croc обойдётся коротким кодом и не потребует открывать порты. Оба инструмента бесплатны, работают в Linux и не требуют облака. Разберём, когда какой выбрать, как настроить сеть и что проверить, если устройства не видят друг друга.

Два разных сценария

  • LocalSend — обмен внутри локальной сети: дом, офис, квартира. Оба устройства в одном сегменте, интернет не нужен. Есть графические приложения для Linux, Windows, macOS, Android и iOS.
  • croc — передача между разными сетями через relay-сервер. Работает из терминала, использует короткий код, умеет докачивать прерванную передачу.

LocalSend удобнее для телефона и папки с фотографиями, croc — для сервера без графики и для случая, когда собеседник за NAT. Оба передают файлы в зашифрованном виде, но модели доверия различаются, и об этом ниже.

LocalSend: установка

flatpak install flathub org.localsend.localsend_app
flatpak run org.localsend.localsend_app
sudo apt install ./localsend_*.deb
flatpak list --app | grep -i localsend

Основной способ в Linux — Flatpak или AppImage с официального сайта; в репозиториях дистрибутивов пакет есть не всегда. Скачанный .deb устанавливается через apt install ./имя.deb — именно с ./, иначе apt попытается найти пакет в репозитории. После первого запуска приложение покажет имя устройства; его лучше сделать узнаваемым, чтобы не перепутать телефон соседа с телевизором.

Сеть и firewall

LocalSend использует TCP и UDP на порту 53317. UDP нужен для обнаружения через multicast, TCP — для самой передачи по HTTPS. Если файрвол включён, разрешите оба протокола.

sudo ufw allow 53317/tcp
sudo ufw allow 53317/udp
sudo firewall-cmd --permanent --add-port=53317/tcp
sudo firewall-cmd --permanent --add-port=53317/udp
sudo firewall-cmd --reload

Команды ufw и firewalld приведены для разных систем — выполняйте только подходящий набор. В firewalld не забудьте UDP-правило, иначе устройство будет видно не всегда. Проверить, что порт слушается, можно так:

ss -lunp | grep 53317
ip -br address
sudo tcpdump -ni any -c 20 'udp port 53317'

ss покажет UDP-сокет, ip -br address — адреса и подсети, tcpdump — приходят ли широковещательные пакеты. Если пакеты видны, а устройства друг друга не находят, чаще всего виновата изоляция клиентов на роутере: в гостевой сети или при включённом AP isolation multicast не проходит. Проверьте, что оба устройства в одной подсети, и отключите изоляцию для доверенной сети.

Как проходит передача

Отправитель выбирает устройство в списке, получатель подтверждает приём. Файлы идут напрямую по HTTPS с самоподписанным сертификатом, поэтому интернет и облако не участвуют. Приложение сохраняет принятое в выбранный каталог, по умолчанию — в загрузки. Папки передаются как набор файлов с относительными путями; пустые каталоги могут не сохраниться.

Самоподписанный сертификат означает trust on first use: при первом соединении приложение доверяет отпечатку. На незнакомой сети сравнивайте отпечаток устройства, если он показан, и не включайте автоматический приём без необходимости. Открытый порт 53317 доступен всем в сегменте — в кафе и коворкинге лучше держать приём выключенным.

croc: передача через интернет

sudo snap install croc
croc --version
croc send ./report.pdf
croc send --code apple-mango-42 ./photos

croc можно поставить из snap, из репозитория дистрибутива или собрать из исходников. При отправке утилита печатает код из нескольких слов. Получатель запускает croc apple-mango-42 — и файл идёт через relay. Код можно задать свой через --code, но он должен быть достаточно длинным: это фактически пароль, из которого выводятся ключи. Короткий код вида 1234 сводит защиту на нет.

Прерванная передача продолжается с места остановки при повторном запуске: croc сохраняет состояние и не перекачивает всё заново. Для текста есть croc send --text "сообщение", для папки достаточно указать каталог. Прогресс и скорость показываются в терминале; на больших файлах узкое место часто не relay, а диск или Wi-Fi.

Свой relay

Публичный relay удобен, но зависит от доступности чужого сервера. Если передача идёт регулярно внутри организации, поднимите свой:

croc relay --ports 9009,9010
croc --relay 192.168.1.10:9009 send ./backup

Relay не расшифровывает содержимое: ключи вырабатываются между отправителем и получателем по PAKE, сервер видит только поток данных и метаданные. Но он влияет на доступность и может блокировать соединение, поэтому откройте выбранные порты в файрволе. Для передачи внутри локальной сети можно отключить локальный relay флагом --no-local, если автоматический выбор мешает. Инструмент просто передаёт файлы и не меняет сетевые настройки.

Безопасность и ограничения

  • Код croc передавайте по другому каналу, а не тем же сообщением, где отправляете файл.
  • Не оставляйте LocalSend в режиме приёма в общественной сети и проверяйте имя отправителя.
  • Для конфиденциальных документов используйте дополнительное шифрование архива, если политика этого требует.
  • Оба инструмента не заменяют резервное копирование: после передачи проверьте контрольную сумму.
  • В корпоративной сети порты и relay могут быть закрыты политикой — согласуйте передачу с администратором.

Контрольная сумма — быстрый способ убедиться, что файл дошёл целиком:

sha256sum report.pdf
sha256sum ~/Downloads/report.pdf

Сравните вывод на обоих устройствах. Если хеши разошлись, передавайте заново, а не открывайте повреждённый архив.

Диагностика

  • Устройства не видны: проверьте подсеть, AP isolation, UDP 53317 и имя сети.
  • Видно, но передача не начинается: проверьте TCP 53317 и место на диске получателя.
  • croc зависает: попробуйте другой relay, проверьте DNS и исходящие соединения.
  • Низкая скорость: сравните Wi-Fi и кабель, проверьте нагрузку на диск.

Если LocalSend не работает, проверьте правила файрвола и повторите передачу: так вы быстро поймёте, в них ли дело.

Итог

LocalSend — самый простой способ перекинуть файлы между телефоном и компьютером в одной сети: без аккаунта, облака и лишних настроек, достаточно открыть порт 53317. croc выручает, когда устройства в разных сетях или на сервере нет графики: короткий код, докачка и свой relay покрывают большинство рабочих ситуаций. Выбирайте инструмент по расстоянию между устройствами, а не по привычке, и проверяйте контрольную сумму после передачи.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте