Pull to refresh

Comments 81

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

Думаю tonsky понравилось бы синхронизировать файлы ещё больше с tailscale.io — хоть и стартап, но какой-то хакерских дух у них ещё живёт. Просто сеть из своих девайсов. Просто L2 доступ ко всем компьютерам (включая карманные компьютеры и компьютеры в облаке и компьютеры типа распбери), как в старые добрые времена, просто по IP (dns по желанию), со всеми броадкастами и открытыми портами. Просто работает всегда и через минимальное количество хопов (в одной вай-фай сети? Работаем напрямую. Переключился на мобильный? Работаем через мобильный. Девайс за тремя натами в гостинице? Работаем через прокси).

так они файлы умеют? по сайту какой-то vpn

Не, файлы не умеют, делают только сеть между компами. Как VPN да, но решил упомянуть их, потому что они работают в том же духе, как описана в статье разница между Syncthing и Dropbox — просто сеть между всеми твоими девайсами, где бы они не находились, без всего этого "файрволы, открыть порты, опенвпн, сертификаты, ключи ssh, обратный туннель к серверу в aws, бля почему всё равно не работает, роутер режет мультикасты, провайдер лочит udp, как дать доступ другу к одной машине". Трудно описать, сеть как в старые добрые времена локалок на одном кольце или концентраторе, только безопасно, шифровано и всё такое.

понял, круто, спасибо!
Чтобы «без этого всего» нужно иметь серверные мощности(можно даже без диска, просто нужен доступный всем посредник) снаружи, доступные отовсюду в том или ином виде. Врятли это бесплатно.
Возможно, это что-то вроде DHT-сети и тогда её работоспособность и пропускная способность зависит от массовости использования, лунного цикла и погоды на марсе и возникают накладные расходы — транзитный траффик, хорошо если настоящий безлимит. С внедрением IPv6 эта проблема просто должна перестать существовать.

Если вы про tailscale, то там серверные мощности нужны только для координации, весь трафик идёт p2p между вашими девайсами (не чьими-то ещё). Там не DHT, там wireguard как транспортный уровень + обвязка для управления ключами/идентификацией + чуток инфраструктуры, чтобы наты пробивать — для этого трафик минимальный и кратковременный, релеи используются только в крайнем случае и составляют минимальный процент общего трафика..


Про IPv6 — это конечно наше прекрасное светлое будущее, прямо как коммунизм, но работать хочется сейчас. И опять же, не уверен, что я хотел бы даже в этом светлом будущем выставлять все свои устройства голыми айпишниками в интернет.

Дело в том что P2P по схеме NAT-сеть-NAT в целом не работает и нужен посредник. Все мобильные операторы за редчайшим исключением клиентов держат за NAT-ом с одним внешним IP который периодически меняется. И даже чаще чем хотелось бы. Например, при обыденном переходе из соты в соту.
А насчет «выставлять зад» на IPv6 так там изначально в протокол введено что-то вроде NAT-а, пока приложение не попросит траффик извне на порт не пойдёт, и это предполагается базовой функциональностью любого роутера поддерживающего IPv6. Там еще несколько механизмов позволяющих обойтись без DNS внутри локальной сети, чтобы наконец отвязаться от IP-адресов даже в домашней локалке. И это на уровне протокола, а не костылей привязанных к операционке вроде SMB и NETBIOS.

Практика использования показывает, что навалив всех возможных способов пробива, большинство натов таки пробиваются и на релеи фолбечится довольно редко.


Я не против IPv6 как такового, просто не ожидаю, что это всё заработает как надо в ближайшее будущее. Увы, с добавлением IPv6 в конкретную сеть проблемы не складываются, а умножаются, что приводит к тому, что у каждого отдельного пользователя/оператора и т.д. есть стимул его отключать, пока совсем не припрёт и люди это делают. Надеюсь лет через 20 мы посмотрим на эти комментарии и скажем — блин, как замечательно, что мы наконец-то ушли от этого IPv4 и всех проблем двойного стека и вообще это обсуждение звучит как давно забытые проблемы. Но я бы не ставил на это много денег :)

а на своих мощностях я могу это развернуть?
а то давать полный доступ к своим девайсам неизвестному сервису…

Клиент опенсорсный, как я понимаю, трафик шифрованный e2e, через координатор только публичные ключи летают, аутентификацию они сторонним сервисам аутсорсят (гуглу/майкрософту).

Если у вас есть своё устройство с выделенным IP, можно в устройствах указать его IP
Плюс можно посмотреть сюда, тут вроде описано, как сделать своё рэле

А ещё есть yggdrasil. Просто у вас в системе появляется ещё один интерфейс с IPv6 адресом. И будь вы хоть за десятью NAT-ами, ваше устройство, в сети yggdrasil будет доступно. Разумеется весь трафик, между двумя произвольными узлами сети, шифруется.

Скажите, а вы пробовали Zerotier? По описанию все тоже самое, не пойму в чем тогда преимущество у tailscale.

Нет, не пробовал. Может быть и всё тоже самое, круто если так. Просто я случайным блужданием наткнулся на tailscale, а на zerotier не наткнулся.

Я пробовал и то и то, остановился на zerotier. Функциональность примерно одинаковая, но zerotier работает на l2, как следствие ему не нужны страшные правила в iptables. А tsilscale работает на l3, потому что wireguard. Он довольно неаккуратно пытается настраивать файрвол и если правила уже нетривиальные (напр. сервер с кучей частично изолированных, частично взаимозависимых контейнеров и несколькими аплинками до кучи) шанс что что-нибудь сломается по моему опыту велик. Обратная сторона что у zerotier теоретически хуже криптография, но это не точно.

Я щас уточнил, у Zerotier из коробки нет dns (можно отдельно поставить).

mDNS никто не отменял… поверх zerotier он нормально работает.

Всё же задачи несколько разные.
syncthing — это чистая синхронизация
а всякие дропбоксы — это ещё и хранение файлов на сервере владельца сервиса, зачастую с историей изменений.

syncthing поддерживает несколько стратегий версионирования

Я знаю, пользовался.
Но хранит-то он их все равно у вас на компьютерах.
Запускаете его на сервере — и вот Вам хранение в том числе и на сервере :) У меня он так и работает — синхронизация настроена сразу на рабочем компе, домашнем компе и на сервере. Причем с трехуровневой историей версий файлов для важных папок.
Сервер — это тоже ваш компьютер.
Можно арендовать сервер и поставить на него Syncthing. И возможно тогда даже никто не будет ворошить ваши совместные фотки на предмет социальных связей. По крайней мере, вероятность этого заметно снижается.
Можно. Но админить-то всё равно самому. А дропбокс всё за вас делать будет. И конфеты есть.
Это совсем небольшая плата за преимущества, которые дает свой сервер в целом и Syncthing на нем в частности :)
А это уже зависит от вашей квалификации. Лично я могу админить сервер, но штукатурить стену — приглашу кого-то другого. А тот, кто мне штукатурит стену, притащит мне свой комп винду переустановить. Потому что ему проще штукатурить, а не винды устанавливать.

Так и с дропбоксами.
Я согласен в целом с этой позицией. Но вот когда штукатуры приходят и говорят что-то типа «Я буду штукатурить только северные стены и только в стиле морской волны», то приходится искать другие варианты :)
А поднять свой VPS с уже установленной операционкой сейчас вообще дело 15 минут, включая регистрацию в сервисе. Еще 10-30 минут на поднятие Syncthing. И доступно все это даже тем, кто линуксы до этого ни разу в глаза не видел :)
Если вы вообще не штукатур, то придётся выбирать среди имеющихся предложений. И подстраиваться под них — к примеру, делать все стены в доме северными.

Потому что большинство людей не то, что линукс в глаза не видели, они и файл-то с трудом разархивируют.
Ну вот я вообще ни разу не штукатур, однако у меня не возникло никаких сложностей с тем, чтобы зарегиться на DigitalOcean, выбрать там недорогой вариант, ткнуть кнопку «Хочу чтобы стояла Centos» и по одному из многочисленных мануалов в сети установить и настроить Syncthing :)
Потому что большинство людей не то, что линукс в глаза не видели, они и файл-то с трудом разархивируют.

Ну таким людям и Дропбокса будет с головой достаточно. А может быть даже и он будет для них не нужен :)
В моем случае сервер — это компьютер в датацентре где-то в Великобритании (кажется) :)

Кто вам мешает купить VPS/VDS «где-нить в Великоритании», поставить на него Syncthing и радоваться жизни?

Вообще-то я именно так и сделал, о чем и написал выше :)
Мне кажется вы слишком далеки от ЦА дропбокса. Это люди которым необходимо напоминать, что пылесос нужно вытряхивать, иначе они понесут его в сервис. Им действительно необходимо столько окон и шагов, иначе всё сломается в самый неподходящий момент. Вообще чем размытее ЦА тем интереснее истории на саппорте)
Но с точки зрения программизма, пожалуй гляну Syncthing.

Мне нравится ваша категоричность оценок пользователей дропбокса.
В чём проблема хранения там зашифрованых блобов, если настолько сильна паранойя, что вашу информацию прочитают из запароленого пдф, базы keepass?
Не у всех ксть возможность/время/скидлы поднимать свои альтернативи и заниматься доступностью и прочим.

Вроде я ничего такого не говорил) Ни про шифрование, ни про скилы, ни про блобы.
Хорошие сапоги, надо брать!
Вот ещё тема на 4PDA живая.
И вот ещё от Meklon`а мануал нашёлся подробный.
В ближайший выходной буду щупать, спасибо за полезную статью.
Главное — аккуратно с кнопками «Rescan» и «Revert Local Changes» — неосторожное нажатие может прибить половину архива :).

Нарвался при настройке синхронизации «только-туда» — чтобы можно было потереть мусор на ноуте, но он остался на сервере. Деталей не помню, по получилось, что при рескане он начал тереть данные на «основном» хранилище.

В итоге телефон перевел на RSync Wrapper (android), а ноут допиливал условиями, но так до конца ни не доделал — что-то не синхронизируется регулярно…
Начал использовать для бэкапа фото, записей разговоров и контактов со смарта на рабочий и домашний компы. Прикольно, батарейку на теле вроде не ест почти, хотя разрешена работа и по мобильной сети. Местами похоже, что его писали чужие для хищников, но пока вроде, ттт, всё работает как мне и надо было. Выбор произвольных папок для синхронизации — маст хэв.
Если про Rsync, то скоро год как работает без проблем. Чуть подбешивает, что перенесенные в галерее фотки (порой) дублируются в двух местах, но «это rsync, бро!»

А с Syncthing — вспомнил — там флаг «игнорировать удаление» запрятан в «advanced» с красным предупреждением, что «сам дурак, если что». И с его включением все удалённые локально файлы висят как не синхронизированные… Трогать «боюсь», что-то же оно передаёт там.

… Это второй подход к Syncthing за пару лет. Первый провалился из-за жора батреи телефона, сейчас, вроде, нормально, но появились свои «хотелки» :)
Про Syncthing.
Прикольно видеть, как запись разговора влетает со смарта на комп через несколько секунд после того, как положил трубку:))
Использую Mega для удалённой синхронизации файлов и Syncthing для локальной синхронизации — между 7ю компьютерами в учебном классе (больше двух лет). Мега нравится за то что хранит старые версии файлов. С Syncthing есть пару нюансов — несколько файлов уже давно как удалены на всех компьютерах, а Syncthing всё равно думает что они где-то хранятся и пытается найти. Второй момент — когда открывается один и тот же Word'вский файл на разных компьютерах одновременно, Word создаёт временные файлы и они не всегда корректно удаляются со всех компьютеров. Иногда Syncthing не может запуститься — приходится удалять конфиг-файл. Но в целом Syncthing хорош.
Клиент Mega для браузера жрёт два гига оперативки. Два гига чтобы просто показать вам список ваших файлов хранящихся у них на сервере!
Ещё он регулярно зависает на больших файлах — не может их отправить.
И клиент для Windows потребляет заметное количество CPU, до 10%, а иногда ещё из-за него начинает тормозить файловый менеджер.
Для пользователя вроде бы ничего не значит. Просто мне не нравится, что портабельная версия весит 225 мегабайт, и только сам файл syncthing.exe занимает 23 мегабайта. Хотя там делов-то обратиться к диску, к интернету и синхронизировать.
UFO landed and left these words here
Когда-то так делал. Но дропбокс видел изменения только после перезапуска. Т.е. «живой» синхронизации не происходило. Тоже когда-то использовал дропбокс и было хорошо и удобно, пока не начались «улучшения». В какой-то момент устал от всего этого и перешёл на ownCloud, который мне тоже напомнил старый добрый дропбокс до всех «улучшений». Уже не помню причину, которая вынудила меня начать искать другое решение и я тогда перепробовал кучу разных синхронизаторов и остановился на меге. Но вот, спустя несколько лет, мега тоже начала вести себя странно. Съесть все доступные ресурсы проца и зависнуть в итоге — пожалуйста. Съесть 200ГБ оперативки (и не важно, что у меня столько нету, своп наше всё) — да легко. Возможно, пришло время попробовать Syncthing :)
Основной минус всяких централизованных коммерческих синхронизировалок не сколь в интерфейсе или излишествах, сколь в накинутой на ваши яйца файлы удавки и контроля её с их стороны.
Потому хранить файлы в облаке нельзя. Должна всегда быть оффлайновая копия за пределами папки синхронизации облачного клиента.
Mega предоставляет открытый и свободный (The 2-Clause BSD License) консольный клиент MEGAcmd разрешая хранить шифрованное содержимое. Как один из нескольких хранилищ резервного копирования можно использовать. Можно сделать вполне надёжно и безопасно.
Так и не понял, как Syncthing по «магическому» айдишнику пробьёт NAT с двух сторон? И пробьёт ли?

Не знаю как конкретно Syncthing магически пробивает NAT'ы, но если интересно как это на практике можно реализовать, то есть вот этот, очень детальный гайд.

Должен быть сервер-координатор с реальным IP. Есть публичные, но можно и свой поднять.
1. Пробивает
2. Есть внешние Syncthing relay servers через которые ищут друг друга точки, если в разных сетях, трафик идёт напрямую p2p

Какие-то макопроблемы. На винде вандрайву можно всегда было подсунуть синхронизировать рабочий стол и вообще любую папку. И устанавливать ничего не надо, и регистрироваться дополнительно нигде — сразу в системе есть из коробки и приложение, и аккаунт.
Ещё есть киллер фича в виде смартфайлов уже кучу лет есть, это когда в файловой системе компа лишь призрак файла не занимающий в ней место, но при этом расползающийся программами как настоящий файл на диске и скачиваются по запросу к нему.
Есть ли такое у Syncthing?

UFO landed and left these words here
И устанавливать ничего не надо, и регистрироваться дополнительно нигде

В смысле? И устанавливать надо (я же его снёс), и без учётки в МС он не работает (я же её не создавал).
Есть ли такое у Syncthing?

Конечно нету.
Мне в плане удобства работы больше всего нравился BTSync, когда он ещё был именно Bittorent Sync, а не Resillio Sync как сейчас. Там можно просто выбрать папку, отсканировать, и полученный криптохэш отправить другому человеку (компании/агенству). То есть это максимально похоже на передачу магнет (или любой другой) ссылки: вот вам хэш, там нужные вам файлы, enjoy.

А вот у Syncthing логика какая-то извращённая: все эти добавления компьютеров друг другу в друзья и потом выборочная синхронизация папок между этими «друзьями» может и удобна для синхронизации рабочих каталогов типа /fonts, но совершенно не катит если нужно просто поделится с кем то (не айтишниками) файлами проекта. Проекты у меня от 30-ти до 2000 гигабайт, вот и приходится между Яндекс Диском и Resillio бегать, а так бы хотелось какой-нибудь open-source.

Bittorrent Sync в своё уделывал Syncthing и по простоте и по функциональности. Но у продукта было две пути:


  1. Стать очередным похороненным проектом Bittorrent Inc (помните Project Maelstrom и мессенджер Bleep?)
  2. Стать самостоятельной компанией и начать копировать поведение существующих централизованных продуктов (что они и сделали).
насколько замечательными могут быть продукты, когда их производителям не нужно заниматься корпоративной ерундой
Вот бы сами корпорации это поскорее услышали!
Есть маленькая ложка дегтя. По информации с их форума функция ignoredelete теперь deprecated без замены чем либо новым. Т.к. авторы считают это функцией бэкапа, а это противоречит главной концепции.

А мне так нравится пересылать фотки со смартфона на NAS практически в реальном времени «в один конец». И судя по форуму я не один такой.
Оппа!
Спасибо за инфу. Как раз самая полезная фича для фоток с телефона )) чтоб архив на сервере, а на ноуте только избранное…

На текущей 1.14.0 опция присутствует и, вроде, работает. Но обновляться теперь поостерегусь…
UFO landed and left these words here
Я использую syncthing на всех своих компьютерах, но не считаю таким идеальным как описал автор. Не все настройки очевидны даже с документацией. Одно время дико жрал батарейку на ноутбуках (вроде сейчас получше). И главное — логика спаривания устройств какая-то своеобразная, не знаю как описать это словами — не интуитивно это всё как-то. Действительно идеальным продуктом был btsync, уже упомянутый в каментах, но неожиданный приступ амфибогенной асфиксии у авторов, фактически похоронил проект.
Пользуюсь syncthing постоянно. К сожалению проблемы время от времени возникают. На десктопе можно посмотреть по логу с каким файлом проблема и вручную исправить. Но на android почему-то нет. Еще на android syncthing не может писать на microsd (если переформатировать как во внутреннюю память то телефон иногда «теряет» карту, поэтому не вариант). Немного не понимаю, почему одни приложения на android спокойно пишут туда данные, а разработчики других говорят что это невозможно.
Немного не понимаю, почему одни приложения на android спокойно пишут туда данные, а разработчики других говорят что это невозможно.

Одни используют старые АПИ, пока это возможно, другие не темнят и пользуются новыми, с ограничениями. Впрочем да, по идее, в новых API всё есть и на карту писать должна быть возможность. Но тут сам Google зарезает возможности карт памяти, производители смартфонов их ставят всё реже.
У меня Syncthing спокойно пишет на сд-карту
А, у меня Android 11 как раз, видимо там пофиксили
Он уже много лет как resilioSync.
Штука очень неплохая, как по мне. Но я заметил, что есть некоторая проблема с большими файлами. Да передаётся файл быстро (в локальке например), на пределе скорости сети, НО, по какой-то неведомой причине индексация файла прежде чем начнётся передача занимает огромное количество времени. Архив ~ 100гб индексится 15-20минут.
Плюс за выборочную синхронизацию (а зачем мне бекап в 100гигов на телефоне?) они хотят денег. Да, есть НЕ подписочная модель, но там ~150$, вроде
У меня как и у автора статьи не так много устройства — комп, телефон, сервак, ноут.
И в этом случае, релисио не выглядит выигрышно.
Есть какая-то большая сеть, где новый поинт надо быстро проапдетить на синхронность — наверное, да.
На телефон он по умолчанию ничего не качает, вроде из коробки все выборочно.

Но компе да, платно, но если вам не лень, то можно вручную редактировать скрытый файл с исключениями и там можно задавать что качать выборочно. Бесплатно и без смс. Хоть бы кто уже написал утилитку какую для легкого редактирования этого файла…
по поводу платно — наверно и судя по сайту это так и согласен с теми косяками что описали выше… НО по факту синхронизируется все, у меня сейчас 32 папки в синхронизации, а настройка проста как дважды два…
Добавлю и я ложку дёгтя в эту бочку мёда
Ни в коем случае не нужно задумываться, «а сработает ли это так, как я захочу?»?

Постоянно приходится. Если файл менялся на более чем 1 устройстве, то будь добр, выбери единственно правильную версию, имея на руках размер и дату изменения.
Да и этих двух устройств тупо нет. Вот у меня есть рабочий ПК и домашний. Друг друга они не видели ни разу, потому что я не могу быть одновременно на работе и дома. Итого у меня мобильный служит флешкой, и об этом тоже приходится задумываться.
Папки — самый яркий пример того, как другие облачные хранилища постоянно портят самые простые вещи. Syncthing может синхронизировать любую папку на вашем диске, расположенную где угодно.

Зато с симлинками на Windows работает примерно никак, а баг на гитхабе закрыт со словами «Мне надоело править там баги, вот каталог с кодом, кому надо, делайте пулл реквест».

Хотя да, сейчас это самое лучшее предложение «на рынке».

В тему бесплатных утилит:
Rclone хорошая утилита если хочется в облако файлы класть.
Создаешь диск на backblaze или там AWS S3 и синхронизируешься :)


Насчет ненужных features у платных продуктов, есть мысль что это по неумению получается, это не стратегия.


Я, например, видел сценарий когда product owner приходит из outsource компания в продуктовую и начинает делать как можно больше новых features.


Не потому что это хорошо и вписывается в продукт, а потому что это то что он умеет, за как можно больше features его хвалили в outsource компании.

Двоичный файл — в смысле установщик? А с Dropbox-то все-таки что не так?
А с Dropbox-то все-таки что не так?

Что нельзя задать синхронизацию нужных папок. Хочешь синхронизировать какой-то проект/документы/каталог — создавай/храни их в папке Дропбокса и нигде больше.
А в чем собссно проблема, я до сих пор не понимаю, он же для каждого утюга доступен, отредактировал на компе — просматривай и редактируй хоть на мобиле потом.
А в чем собссно проблема, я до сих пор не понимаю

Значит, скорее всего, Вам преимущества Syncthing и не нужны, Вам хватает Дропбокса. Мне и многим другим — нет :)
Ахахахаха, скорее всего так и есть :)
Only those users with full accounts are able to leave comments. Log in, please.