Syncthing synchronizuje wybrany folder między Linuksem a Androidem po sparowaniu urządzeń i udostępnieniu folderu. To rozwiązanie dla osób, które chcą mieć te same pliki na komputerze i telefonie bez ręcznego przenoszenia ich kablem lub przez konto w chmurze.
Zanim zaczniesz
Przygotuj komputer z Linuksem, telefon z Androidem i folder, który chcesz synchronizować. Na komputerze zainstalujesz Syncthing z repozytorium swojej dystrybucji. Na telefonie użyj Syncthing-Fork: repozytorium projektu kieruje do jego wydań lub F-Droid i odróżnia je od przestarzałej oficjalnej wersji aplikacji na Androida.
Zainstaluj i uruchom Syncthing w Linuksie
- Zainstaluj Syncthing z repozytorium dystrybucji. W systemie z
aptużyj:sudo apt install syncthingW dystrybucji korzystającej zpacman, takiej jak Arch Linux, polecenie brzmi:sudo pacman -S syncthing - Uruchom usługę systemd, jeśli korzystasz z jednostki przypisanej do użytkownika. Przykładowe polecenie włącza ją przy starcie systemu i uruchamia od razu:
sudo systemctl enable --now syncthing@myuser.serviceZastąpmyusernazwą swojego konta w Linuksie. - Otwórz lokalny interfejs Syncthing. W przeglądarce na komputerze przejdź pod adres
http://127.0.0.1:8384. Znajdziesz tam identyfikator urządzenia i kod QR potrzebny do parowania.
Przygotuj Androida, sparuj urządzenia i udostępnij folder
- Zainstaluj Syncthing-Fork i skonfiguruj wymagane uprawnienia. W opisanej konfiguracji Androida aplikacja potrzebuje dostępu All Files Access oraz powiadomień. Ekran uprawnienia All Files Access informuje, że może ono pozwolić aplikacji odczytywać, modyfikować i usuwać pliki na telefonie lub podłączonych nośnikach. Przyznawaj ten szeroki dostęp świadomie. Wyłącz też optymalizację baterii dla aplikacji, aby Android jej nie zatrzymywał w tle.
- Sparuj telefon z komputerem. Zeskanuj telefonem kod QR wyświetlony w interfejsie Linuksa, a następnie zaakceptuj dodanie urządzenia po obu stronach. Samo zeskanowanie kodu nie kończy parowania.
- Udostępnij wybrany folder. Wskaż folder w Syncthing i wybierz sparowane urządzenie jako odbiorcę. Na drugim urządzeniu zaakceptuj udostępnienie i wskaż miejsce, w którym ma znaleźć się zsynchronizowany folder.
Sprawdź, czy synchronizacja działa
- Przetestuj folder nieszkodliwym plikiem. Zapisz go w udostępnionym folderze na jednym urządzeniu i sprawdź, czy pojawi się w odpowiadającym mu folderze na drugim. To prosty sposób na sprawdzenie, czy urządzenia są sparowane, a właściwy folder został udostępniony.
Przed zakończeniem konfiguracji sprawdź, czy usługa Linuksa ma startować automatycznie, oba urządzenia zaakceptowały połączenie, a testowy plik dotarł do drugiego folderu.
Ogranicz dostęp do plików i włącz wersjonowanie
W przypadku usługi systemowej w Linuksie znaczenie ma także lokalna maska uprawnień, czyli ustawienie wpływające na uprawnienia nowo tworzonych plików. ArchWiki ostrzega, że domyślna maska może pozostawić nowe pliki odebrane przez usługę czytelne dla wszystkich lokalnych użytkowników. Jako restrykcyjny przykład podaje wpis UMask=0077 w rozszerzeniu konfiguracji systemd. Dotyczy to nowych plików; istniejące uprawnienia trzeba sprawdzić osobno.
Synchronizacja kopiuje zmiany między urządzeniami, dlatego warto rozważyć osobny mechanizm odzyskiwania wcześniejszych wersji. Linuxiac zaleca Simple File Versioning z zachowaniem trzech wersji. To rekomendacja konfiguracji, a nie ustawienie wymagane do działania Syncthing.
Gdy Linux i Android nie widzą się w sieci lokalnej
Sprawdź, czy router nie izoluje urządzeń klienckich, czy komputer i telefon są w tej samej podsieci oraz czy mogą się wzajemnie osiągnąć. Przyjrzyj się też regułom zapory i multicastowi, czyli rozsyłaniu komunikatów do urządzeń w sieci lokalnej.
W jednym przypadku opisanym na forum Syncthing ręczne wpisanie adresów urządzeń rozwiązało problem z połączeniem. Można potraktować to jako kolejny trop, jeśli podstawowe kontrole nie pomogą, a nie jako uniwersalną naprawę.