Synchronizacja — Syncthing

Synchronizacja
Synchronizacja logo
Synchronizacja logo
Synchronizacja interfejsu internetowego 1.7.1.png
Synchronizowanie interfejsu internetowego
Pierwotny autor (autorzy) Jakob Borg
Deweloper(zy) Jakob Borg i in.
Pierwsze wydanie 2013-12-15
Wersja stabilna 1.18.1 (3 sierpień 2021
(2 miesiące temu)
) [±] ( 2021-08-03 )
Wersja zapoznawcza 1.18.2-rc.3 (24 sierpnia 2021
(50 dni temu)
) [±] ( 2021-08-24 )
Magazyn
Napisane w Udać się
System operacyjny Linux , OS X , Windows , Android , BSD , Solaris
Dostępne w 38 języków
Lista języków
angielski, niemiecki, grecki, hiszpański, francuski, włoski, polski, portugalski, rosyjski, szwedzki, norweski
Rodzaj Synchronizacja plików
Licencja MPL 2.0
Strona internetowa synchronizacja .net

Syncthing to bezpłatna , otwarta aplikacja do synchronizacji plików peer-to-peer dostępna dla systemów Windows, macOS, Linux, Android, Solaris, Darwin i BSD. Może synchronizować pliki między urządzeniami w sieci lokalnej lub między urządzeniami zdalnymi przez Internet. Bezpieczeństwo danych i bezpieczeństwo danych są wbudowane w projekt oprogramowania.

Technologia

Syncthing jest napisany w Go i implementuje własny, równie bezpłatny Block Exchange Protocol.

Syncthing to model chmury BYO, w którym użytkownicy zapewniają sprzęt, na którym działa oprogramowanie. Obsługuje IPv6, a w przypadku sieci IPv4 oferowane jest przebijanie i przekazywanie NAT . Urządzenia łączące się ze sobą wymagają wyraźnej zgody (chyba że korzystamy z funkcji Introducer), co zwiększa bezpieczeństwo siatki . Wszystkie dane, czy to przesyłane bezpośrednio między urządzeniami, czy za pośrednictwem przekaźników, są szyfrowane za pomocą protokołu TLS .

Konflikty są obsługiwane przez zmianę nazwy starszego pliku z sufiksem „konflikt synchronizacji” (wraz ze znacznikiem czasu i daty), co pozwala użytkownikowi zdecydować, jak zarządzać dwoma lub większą liczbą plików o tej samej nazwie, które zostały zmienione między synchronizacjami. Opakowania GUI mogą używać tych plików, aby zaprezentować użytkownikowi metodę rozwiązywania konfliktów bez konieczności uciekania się do ręcznej obsługi plików.

Wydajna synchronizacja jest osiągana poprzez kompresję metadanych lub wszystkich przesyłanych danych, ponowne wykorzystanie bloków i lekkie skanowanie w poszukiwaniu zmienionych plików, po obliczeniu i zapisaniu pełnego skrótu . Synchronizacja oferuje typy folderów tylko do wysyłania i tylko do odbierania, w których aktualizacje z urządzeń zdalnych nie są przetwarzane, różne typy wersjonowania plików (kosz na śmieci, wersjonowanie proste lub stopniowe, a także przekazywanie wersji do zewnętrznego programu lub skryptu) oraz ignorowanie plików/ścieżek wzory. Obecnie obsługiwane są dwie różne implementacje skrótu SHA256 , z których szybsza będzie używana dynamicznie po krótkim benchmarku podczas uruchamiania. Przenoszenie i zmiana nazwy plików i folderów odbywa się sprawnie, a funkcja Syncthing inteligentnie przetwarza te operacje, zamiast pobierać dane od zera.

Infrastruktura

Wykrywanie urządzeń odbywa się za pośrednictwem publicznie dostępnych serwerów wykrywania hostowanych przez twórców projektu, wykrywania lokalnego (LAN) za pośrednictwem wiadomości rozgłoszeniowych, historii urządzenia i statycznej nazwy/adresowania hosta. W ramach projektu przewidziano również program Syncthing Discovery Server do hostowania własnych serwerów wykrywania, które mogą być używane równolegle lub jako zamiennik serwerów publicznych.

Sieć serwerów przekazujących współtworzonych przez społeczność umożliwia urządzeniom znajdującym się za różnymi zaporami sieciowymi IPv4 NAT komunikowanie się poprzez przekazywanie zaszyfrowanych danych za pośrednictwem stron trzecich. Wykonywane przekazywanie ma charakter podobny do protokołu TURN , z ruchem szyfrowanym TLS end-to-end między urządzeniami (dlatego nawet serwer przekazujący nie widzi danych, tylko zaszyfrowany strumień). W razie potrzeby można również skonfigurować i skonfigurować przekaźniki prywatne, z przekaźnikami publicznymi lub bez nich. Synchronizacja automatycznie przełączy się z przekazywania na bezpośrednie połączenia urządzenie-urządzenie, jeśli wykryje, że połączenie bezpośrednie stało się dostępne.

Synchronizacja może być używana bez żadnego połączenia z serwerami projektu lub społeczności: aktualizacje, dobrowolne dane dotyczące użytkowania, wykrywanie i przekazywanie mogą być wyłączone i/lub skonfigurowane niezależnie, dzięki czemu siatka i jej infrastruktura mogą być uruchamiane w zamkniętym systemie dla prywatność lub poufność.

Konfiguracja i zarządzanie

Synchronizacja musi być skonfigurowana za pomocą przeglądarki internetowej lokalnie lub zdalnie (i obsługuje dostęp za pośrednictwem serwera proxy), interfejsów API REST i Events lub jednego z programów opakowujących współtworzonych przez społeczność. Łącza do obrazów platformy Docker znajdują się również na stronie wkładu społeczności, a także łącza do obsługiwanych rozwiązań do zarządzania konfiguracją, takich jak Puppet, Ansible i inne.

Przyjęcie

  • W odcinku 456 SecurityNow! , gospodarz Steve Gibson pochwalił Syncthing jako potencjalny zamiennik Open Source dla Bittorent Sync i ponownie odniósł się do niego w odcinkach 603, 698, 727, a bardziej szczegółowo w odcinkach 734 i 781.
  • Recenzent w LWN pisze: „Synchronizacja pozostawia pozytywne wrażenie. Wydaje się, że programiści wykonali pracę, aby stworzyć system, który jest wydajny, niezawodny, bezpieczny i działa dość dobrze. Ale wykonali również pracę, aby wszystko było łatwe do skonfigurowania i wykorzystania — miejsce, w którym wiele projektów bezpłatnego oprogramowania wydaje się upadać. Jest to atrakcyjne narzędzie dla każdego, kto chce przejąć kontrolę nad potrzebami synchronizacji i replikacji danych”.

Historia

Synchronizowanie historii wersji
Data Wersja Główne zmiany
2019-10-01 1.3.0
  • Nowy parametr do dostosowywania rozmiaru bazy danych
  • Lepsza wydajność bazy danych
2019-07-09 1.2.0
  • Nowy protokół transportowy (QUIC)
  • Automatyczne zgłaszanie awarii
2019-05-09 1.1.3
  • Poprawka do wydania, aby naprawić błąd paniki w systemie Windows
2019-04-02 1.1.1
  • Dodaj obsługę TLS1.3
2019-04-22 1.1.0
  • Własność użytkownika/grupy podąża za nadrzędnym dir
  • Napraw wydajność haszowania
2019-01-01 1.0.0
  • Ogranicz maksymalną liczbę jednoczesnych skanowań
  • Pokaż limit lokalnie zmienionych plików dla folderów tylko do odbioru
2016-06-19 0,14 „ważka dysprozowa”
  • nowy, rozszerzalny protokół synchronizacji (pełne ponowne mieszanie zawartości folderu nastąpi przy pierwszym ponownym uruchomieniu)
2016-05-17 0,13 „Miedziany karaluch”
  • Wyświetlaj pliki podczas ich pobierania
  • Unikalny identyfikator folderu oddzielony od etykiety
2015-11-05 0.12 „Berylowa pluskwa”
  • Przekazywanie połączenia
  • Wykrywanie urządzeń przez HTTPS

Pierwsze publiczne wydanie binarne (v0.2) zostało wydane 30 grudnia 2013 roku.

W październiku 2014 roku pierwotny autor ogłosił, że Syncthing zmienia nazwę na „Pulse”. Jednak 17 listopada deweloper postanowił nie zmieniać Syncthing na Pulse i nie współpracuje już z ind.ie. Ind.ie's Pulse jest teraz oficjalnie usankcjonowanym widelcem Syncthing.

22 kwietnia 2015 r. wydano wersję 0.11.0, która wprowadziła obsługę konfliktów, wybór języka w interfejsie użytkownika, poprawę wykorzystania procesora i szybkości synchronizacji, obsługę długich nazw plików w systemie Windows, automatyczne ponowne uruchamianie, gdy wystąpi problem, na przykład brak dostępu do dysku oraz wsparcie dla zewnętrznego oprogramowania wersjonującego. 0.11 nie jest wstecznie kompatybilny ze starszymi wersjami Syncthing. Z powodu zmian w klientach REST API Syncthing, które były na 0.10.x, nie aktualizowały się automatycznie do 0.11, ponieważ nie były zgodne z wieloma integracjami innych firm w momencie jego wydania.

0.13.0, podobnie jak wiele starszych wersji Syncthing, jest niekompatybilny z klientami z wersją 0.12.x i niższą. 0.13.x oddziela identyfikatory folderów od etykiet folderów. Ma teraz również możliwość obsługi części pliku, które zostały już pobrane do innych klientów, podczas gdy nadal się pobiera.

1.0.0, o nazwie kodowej Erbium Earthworm, tak naprawdę nie przyniósł żadnych większych zmian w tabeli. Była to raczej refleksja deweloperów na temat powszechnego korzystania z programu i faktu, że w tym momencie był on już w fazie rozwoju od prawie 5 lat. Pomimo zmiany głównej liczby Jakob Borg, główny programista, stwierdził, że poza tym była identyczna z 0.14.55-rc.2

Wraz z wydaniem 1.0.0 zespół wprowadził nowy system wersjonowania podobny do serwera z następującymi kryteriami:

  • Nowa wersja, która jest niekompatybilna pod względem protokołu z poprzednią, stanowiłaby wersję główną.
  • Nowa wersja, która zawiera zmiany w REST API lub zmiany w bazie danych lub konfiguracji, które nie pozwalają na obniżenie wersji, stanowiłaby wersję drugorzędną.
  • Jeśli nie ma konkretnych obaw jak powyżej, jest to nowa wersja poprawki.

W wersji 1.1.0 synchronizacja przyjęła Go 1.12 i jako taka traci kompatybilność z Windows XP i Windows Server 2003

1.2.0 wprowadza wsparcie dla QUIC , może teraz wykonywać automatyczne raportowanie awarii i wycofuje małe/stałe bloki. W wersji 1.2.0 zrezygnowano również z obsługi komunikacji z klientami Syncthing z systemem 0.14.45 lub starszym.

1.8.0 dodaje eksperymentalną opcję folderu, która pozwala użytkownikom określić, w jaki sposób zmiany plików powinny być zapisywane w systemach plików typu „ kopiuj przy zapisie” , a także dodaje obsługę dziurkowania TCP.

W wersji 1.9.0 wprowadzono opcję, caseSensitiveFSktóra umożliwiała użytkownikom wyłączenie nowo dodanej obsługi dla systemów plików bez rozróżniania wielkości liter.

Wersja 1.10.0 dała użytkownikom możliwość wyboru, czy chcą, aby adresy IP LAN były rozgłaszane do globalnej sieci wykrywania.

Zobacz też

Bibliografia

Zewnętrzne linki