Открыть сервис

Snapdrop: веб-сервис для передачи файлов

Snapdrop — это бесплатный веб-сервис с открытым исходным кодом для мгновенной передачи файлов и сообщений между устройствами, находящимися в одной локальной сети. Сервис работает по принципу peer-to-peer (P2P) и не требует установки программного обеспечения, регистрации учетной записи или подключения к внешним серверам для передачи данных. Snapdrop часто называют веб-альтернативой проприетарной функции Apple AirDrop, поскольку он позволяет обмениваться файлами между устройствами на разных операционных системах, включая Windows, macOS, Linux, Android и iOS.

История и создатель

Проект был создан немецким разработчиком Робином Линцем (Robin Linz) в декабре 2017 года. Первоначально сервис задумывался как эксперимент по использованию современных веб-технологий, в частности WebRTC (Web Real-Time Communication), для организации прямого соединения между браузерами. Линц опубликовал исходный код на платформе GitHub под лицензией GPLv3, что позволило сообществу разработчиков создавать собственные инстансы (копии) сервиса и дорабатывать его функциональность.

Название сервиса образовано от английских слов «snap» (мгновенный щелчок) и «drop» (бросать), что отражает основную идею — быстрое «перебрасывание» данных между гаджетами. С момента запуска проект приобрел значительную популярность: к началу 2020-х годов число пользователей исчислялось миллионами, а код проекта получил тысячи звезд на GitHub.

Технология работы

Принцип соединения

Основой Snapdrop является технология WebRTC, которая позволяет браузерам устанавливать прямое соединение друг с другом без промежуточных серверов. Когда пользователь открывает сайт snapdrop.net, его устройство начинает поиск других активных клиентов в той же подсети. Обнаружение происходит через сервер сигнализации, который передает только служебную информацию о доступных пирах (IP-адреса, идентификаторы сессий), но не участвует в передаче самих файлов.

Передача данных

После того как два устройства находят друг друга, между ними устанавливается защищенное соединение по протоколу DTLS (Datagram Transport Layer Security). Передача файлов осуществляется напрямую между устройствами, что обеспечивает высокую скорость, ограниченную лишь пропускной способностью локальной сети или Wi-Fi. Для шифрования данных используется протокол SCTP поверх DTLS, гарантирующий конфиденциальность передаваемой информации.

Резервный канал

В случае, если прямое соединение не может быть установлено (например, из-за строгих настроек сетевого экрана или NAT), Snapdrop автоматически использует серверы TURN (Traversal Using Relays around NAT) для ретрансляции данных. В этом случае трафик проходит через промежуточный сервер, что может снизить скорость, но сохраняет работоспособность сервиса в сложных сетевых условиях.

Функциональные возможности

Основные функции

Интерфейс Snapdrop минималистичен и интуитивно понятен. Главная страница отображает список доступных устройств в сети, обозначенных иконками и произвольными именами. Пользователь может:

  • отправлять файлы любого размера и типа;
  • передавать текстовые сообщения в режиме реального времени;
  • обмениваться буфером обмена (текстом, скопированным на одном устройстве);
  • отправлять изображения непосредственно с камеры мобильного устройства.

Кроссплатформенность

Главное преимущество Snapdrop перед аналогичными решениями — отсутствие привязки к экосистеме производителя. В отличие от AirDrop (только устройства Apple) или Nearby Share (только Android), Snapdrop работает на любом устройстве с современным браузером, поддерживающим WebRTC (Chrome, Firefox, Safari, Edge). Это делает сервис универсальным инструментом для смешанных сетей, где используются устройства разных производителей.

Дополнительные возможности

В веб-версии доступны настройки, позволяющие изменить имя устройства, выбрать цветовую тему интерфейса, а также включить режим совместимости со сторонними реализациями протокола (например, с проектом PairDrop). Некоторые инстансы Snapdrop, развернутые третьими лицами, добавляют расширенные функции: историю передач, ограничение размера файлов, интеграцию с облачными хранилищами.

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

Технические ограничения

Основным ограничением Snapdrop является необходимость нахождения устройств в одной локальной сети (под одним IP-адресом маршрутизатора). Для передачи файлов через интернет между устройствами в разных сетях требуется использование специализированных форков, таких как PairDrop, которые добавляют промежуточные серверы для ретрансляции данных. Кроме того, сервис не поддерживает передачу целых папок — только отдельные файлы.

Вопросы конфиденциальности

Поскольку соединение устанавливается напрямую между устройствами, файлы не хранятся на сторонних серверах, что снижает риск перехвата данных третьими лицами. Однако открытый характер сети означает, что любое устройство в той же локальной сети (например, в общественном Wi-Fi) может увидеть активные сессии и попытаться установить соединение. Разработчики рекомендуют использовать Snapdrop только в доверенных сетях и не передавать через него критически важную конфиденциальную информацию.

Альтернативные проекты

На основе кода Snapdrop создано несколько форков, расширяющих его функциональность:

  • PairDrop — наиболее популярный форк, добавляющий поддержку передачи файлов через интернет, создание комнат и постоянные идентификаторы устройств;
  • ShareDrop — аналогичный сервис, работающий по схожему принципу, но с более ранней историей разработки;
  • LocalSend — десктопное и мобильное приложение, использующее схожие принципы обнаружения устройств, но не требующее браузера.

Применение

Snapdrop используется в различных сценариях: для быстрой пересылки фотографий со смартфона на компьютер, обмена документами между офисными устройствами, передачи установочных файлов на несколько компьютеров в учебном классе. Сервис особенно востребован в ситуациях, когда отсутствует доступ к интернету, но есть локальная сеть, или когда установка специализированного программного обеспечения нежелательна или невозможна.

Загружаем BFOmetr…