Syncthing je nástroj s otevřeným zdrojovým kódem používaný pro synchronizaci souborů mezi dvěma nebo více počítači v síti. Využívá architekturu peer-to-peer a vyměňuje si vaše data přímo mezi vašimi zařízeními. Všechna data přenášená mezi více zařízeními jsou šifrována pomocí TLS. Kdykoli vytvoříte, upravíte nebo odstraníte jakákoli data na jednom počítači Syncthing, budou automaticky replikována na jiné servery. Lze jej nainstalovat do všech hlavních operačních systémů včetně Linuxu, Windows, Mac OS X atd.
V této příručce vám ukážeme, jak nainstalovat a nastavit server Syncthing na Ubuntu 20.04.
Předpoklady
- Dva servery se systémem Ubuntu 20.04.
- Platný název domény s adresou IP vašeho serveru.
- Na obou serverech je nakonfigurováno heslo uživatele root.
Začínáme
Nejprve aktualizujte systémové balíčky na aktualizovanou verzi spuštěním následujícího příkazu:
apt-get update -y
Jakmile jsou všechny balíčky aktualizovány, můžete přejít k dalšímu kroku.
Instalovat Syncthing Server na oba servery
Ve výchozím nastavení není balíček Syncthing součástí výchozího úložiště Ubuntu 20.04. Takže budete muset přidat úložiště Syncthing do APT.
Nejprve nainstalujte všechny požadované závislosti na oba servery pomocí následujícího příkazu:
apt-get install gnupg2 curl apt-transport-https -y
Dále stáhněte a přidejte uvolňovací klíč pomocí následujícího příkazu:
curl -s https://syncthing.net/release-key.txt | apt-key add -
Dále přidejte úložiště Syncthing do APT pomocí následujícího příkazu:
echo "deb https://apt.syncthing.net/ syncthing release" > /etc/apt/sources.list.d/syncthing.list
Dále aktualizujte úložiště a nainstalujte server Syncthing pomocí následujícího příkazu:
apt-get update -y
apt-get install syncthing -y
Po dokončení instalace ověřte verzi Syncthing pomocí následujícího příkazu:
syncthing --version
Měli byste získat následující výstup:
syncthing v1.18.0 "Fermium Flea" (go1.16.5 linux-amd64) [email protected] 2021-06-21 20:53:50 UTC [noupgrade]
V tomto okamžiku je Syncthing nainstalován na obou serverech. Nyní můžete přejít k dalšímu kroku.
Vytvoření souboru Systemd Unit na obou serverech
Dále budete muset vytvořit soubor systemd unit pro správu služby Syncthing. Můžete jej vytvořit na obou serverech pomocí následujícího příkazu:
nano /etc/systemd/system/[email protected]
Přidejte následující řádky:
[Unit] Description=Syncthing - Open Source Continuous File Synchronization for %I Documentation=man:syncthing(1) After=network.target [Service] User=%i ExecStart=/usr/bin/syncthing -no-browser -gui-address="0.0.0.0:8384" -no-restart -logflags=0 Restart=on-failure SuccessExitStatus=3 4 RestartForceExitStatus=3 4 [Install] WantedBy=multi-user.target
Po dokončení uložte a zavřete soubor. Poté znovu načtěte démona systemd, abyste použili konfiguraci:
systemctl daemon-reload
Dále spusťte službu Syncthing pomocí následujícího příkazu:
systemctl start [email protected]
Chcete-li ověřit stav služby Syncthing, spusťte následující příkaz:
systemctl status [email protected]
Měli byste vidět následující výstup:
? [email protected] - Syncthing - Open Source Continuous File Synchronization for root Loaded: loaded (/etc/systemd/system/[email protected]; disabled; vendor preset: enabled) Active: active (running) since Fri 2021-07-09 04:40:12 UTC; 5s ago Docs: man:syncthing(1) Main PID: 2878 (syncthing) Tasks: 14 (limit: 2353) Memory: 44.2M CGroup: /system.slice/system-syncthing.slice/[email protected] ??2878 /usr/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0 ??2889 /usr/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0 Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: QUIC listener ([::]:22000) starting Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: Loading HTTPS certificate: open /root/.config/syncthing/https-cert.pem: no such file or d> Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: Creating new HTTPS certificate Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: Completed initial scan of sendreceive folder "Default Folder" (default) Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: GUI and API listening on [::]:8384 Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: Access the GUI via the following URL: http://127.0.0.1:8384/ Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: My name is "node1" Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] WARNING: Syncthing should not run as a privileged or system user. Please consider using a norma> Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: quic://0.0.0.0:22000 detected NAT type: Not behind a NAT Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: quic://0.0.0.0:22000 resolved external address quic://45.58.35.6:22000 (via stun.syncthin>
V tomto okamžiku je spuštěna služba Syncthing a naslouchá na portu 8384. Můžete to zkontrolovat pomocí následujícího příkazu:
ss -antpl | grep 8384
Měli byste vidět následující výstup:
LISTEN 0 4096 *:8384 *:* users:(("syncthing",pid=2889,fd=12))
Přístup k webovému rozhraní synchronizace
Dále otevřete webový prohlížeč a přejděte do webového rozhraní Syncthing pomocí adres URL http://first-server-ip:8384 a http://first-server-ip:8384.
Měli byste vidět následující obrazovku:
Klikněte na Nastavení pro definování uživatele a hesla správce, jak je uvedeno níže:
Zadejte své uživatelské jméno, heslo a klikněte na Uložit tlačítko pro použití změn. Budete přesměrováni na přihlašovací stránku Syncthing:
Zadejte své uživatelské jméno a heslo správce a klikněte na Přihlásit se knoflík. Měli byste vidět následující obrazovku:
Dále budete muset přidat ID zařízení každého serveru na jiný server, abyste mohli synchronizovat soubory mezi oběma servery. Chcete-li tak učinit, klikněte na Akce> Zobrazit ID tlačítko na obou serverech. Měli byste vidět následující obrazovku:
Na prvním serveru klikněte na Přidat vzdálené zařízení . Měli byste vidět následující obrazovku:
Zadejte ID zařízení druhého serveru a klikněte na Uložit tlačítko.
Na druhém serveru klikněte na Přidat vzdálené zařízení . Měli byste vidět následující obrazovku:
Zadejte ID zařízení prvního serveru a klikněte na Uložit knoflík. Měli byste vidět následující obrazovku:
Nyní budete muset přidat a sdílet složku, kterou chcete synchronizovat s druhým serverem. Klikněte na Přidat složku knoflík. Měli byste vidět následující obrazovku:
Zadejte štítek složky, cestu ke složce a klikněte na Sdílení tab. Měli byste vidět následující obrazovku:
Zaškrtněte druhý server a klikněte na Uložit knoflík. Měli byste vidět následující obrazovku:
Dále přejděte na druhý server a klikněte na Znovu vyhledat Vše knoflík. Měli byste vidět následující obrazovku:
Klikněte na Přidat přidat složku Backup sdílenou na prvním serveru. Měli byste vidět následující obrazovku:
Nyní, kdykoli vytvoříte nebo upravíte jakékoli soubory ve složce Backup na prvním serveru, budou automaticky synchronizovány s druhým serverem.
Nakonfigurujte Nginx jako reverzní proxy pro synchronizaci
Můžete také nastavit Nginx jako reverzní proxy pro přístup k serveru Syncthing přes port 80.
Nejprve nainstalujte server Nginx pomocí následujícího příkazu:
apt-get install nginx -y
Dále vytvořte konfigurační soubor virtuálního hostitele Nginx pomocí následujícího příkazu:
nano /etc/nginx/conf.d/syncthing.conf
Přidejte následující řádky:
server { listen 80; server_name syncthing.example.com; access_log /var/log/nginx/syncthing.access.log; error_log /var/log/nginx/syncthing.error.log; location / { proxy_pass http://127.0.0.1:8384; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
Uložte a zavřete soubor a poté pomocí následujícího příkazu ověřte, zda Nginx neobsahuje nějakou chybu syntaxe:
nginx -t
Měli byste získat následující výstup:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Poté znovu načtěte Nginx, abyste použili změny.
systemctl reload nginx
Stav Nginx můžete také zkontrolovat pomocí následujícího příkazu:
systemctl status nginx
Měli byste vidět následující výstup:
? nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2021-07-09 05:01:36 UTC; 21s ago Docs: man:nginx(8) Main PID: 3394 (nginx) Tasks: 2 (limit: 2353) Memory: 6.2M CGroup: /system.slice/nginx.service ??3394 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ??3395 nginx: worker process Jul 09 05:01:36 node1 systemd[1]: Starting A high performance web server and a reverse proxy server... Jul 09 05:01:36 node1 systemd[1]: Started A high performance web server and a reverse proxy server.
Nyní můžete přistupovat k serveru Syncthing pomocí adresy URL http://syncthing.example.com.
Závěr
Gratulujeme! úspěšně jste nainstalovali a nakonfigurovali Syncthing na dvou serverech Ubuntu 20.04 a nastavili synchronizaci mezi oběma servery. Doufám, že vám tento návod pomůže se zálohováním vašeho serveru.