GNU/Linux >> Znalost Linux >  >> Debian

Jak nainstalovat Syncthing na plochu/server Debianu

Tento tutoriál vám ukáže, jak nainstalovat Syncthing na Debianu. Syncthing je bezplatný program pro nepřetržitou synchronizaci souborů typu peer-to-peer, který vám umožňuje synchronizovat soubory mezi více zařízeními a je k dispozici pro Linux, BSD, macOS, Windows, Android a Solaris.

Je to open-source alternativa k populární Resilio Sync (dříve známé jako BitTorrent Sync ) aplikace. Vytváření, úprava nebo mazání souborů na jednom počítači bude automaticky replikováno do vašich ostatních zařízení. Syncthing nenahrává vaše soubory na centrální server, jako je Nextcloud , ale vyměňujte si data přímo mezi vašimi zařízeními. Všechna vaše data jsou šifrována pomocí TLS při přenosu mezi vašimi zařízeními.

Nainstalujte Syncthing na Debian prostřednictvím oficiálního úložiště Deb

Použijte curl stáhněte si klíč GPG a poté klíč importujte pomocí apt-key .

sudo apt-get install curl

curl -s https://syncthing.net/release-key.txt | sudo apt-key add -

Pokud vidíte OK v terminálu, to znamená, že GPG klíč byl úspěšně importován. Poté přidejte oficiální úložiště deb pomocí následujícího příkazu.

echo "deb https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list

Protože toto úložiště používá https, musíme nainstalovat apt-transport-https balíček, takže správce balíčků APT může navázat https spojení s tímto úložištěm.

sudo apt-get install apt-transport-https

Aktualizujte místní index balíčků a nainstalujte synchronizaci na Debian.

sudo apt-get update

sudo apt-get install syncthing

Použití Systemd k nastavení synchronizace jako systémové služby

Oficiální deb balíček Syncthing se dodává s potřebným souborem služby systemd. Pod /lib/systemd/system/ adresář, najdete [email protected] soubor. Povolte synchronizaci pro automatické spuštění při spouštění spuštěním níže uvedeného příkazu. Nahraďte username s vaším skutečným uživatelským jménem.

sudo systemctl enable [email protected]username.service

Výše uvedený příkaz vytvoří symbolický odkaz, který ukazuje na [email protected] soubor.

Created symlink from /etc/systemd/system/multi-user.target.wants/[email protected] to /lib/systemd/system/[email protected]

Nyní můžeme spustit službu Syncthing pomocí následujícího příkazu.

sudo systemctl start [email protected]username.service

Zkontrolujte stav

systemctl status [email protected]username.service

Výstup:

Tip:Pokud se výše uvedený příkaz okamžitě neukončí, stiskněte Q získat zpět kontrolu nad terminálem.

Vidíme, že automatické spouštění Syncthing je povoleno a běží.

Služba syncthing systemd vytváří konfigurační soubory pod /home/username/.config/syncthing/ a složku /home/username/Sync jako výchozí synchronizační složku. Hlavní konfigurační soubor je /home/username/.config/syncthing/config.xml .

Nainstalujte Syncthing na jiný operační systém

Přejděte na stránku pro stažení Syncthing a nainstalujte Syncthing do jiných operačních systémů, jako jsou Windows, macOS, BSD, Android.

Otevřete port 22000 v bráně firewall

Syncthing používá port 22000 ke komunikaci s partnery. Pokud váš počítač nebo server aktivoval UFW firewall, musíte povolit port 22000 pomocí následujícího příkazu.

sudo ufw allow 22000/tcp

Přístup k webovému rozhraní Debian Syncthing

Ve výchozím nastavení služba Syncthing naslouchá na 127.0.0.1:8384. Nyní do adresního řádku webového prohlížeče zadejte 127.0.0.1:8384 pro přístup k webovému rozhraní Syncthing. Můžete přidat další zařízení Syncthing a sdílet s nimi složky.

Pokud nainstalujete Syncthing na vzdálený server Debianu, můžete povolit vzdálený přístup k webovému rozhraní Syncthing úpravou konfiguračního souboru.

nano /home/username/.config/syncthing/config.xml

Najděte následující dva řádky.

    <gui enabled="true" tls="false" debugging="false">
        <address>127.0.0.1:8384</address>

Změňte tls="false" na tls="true" , takže provoz HTTP bude šifrován. A změňte 127.0.0.1 na veřejnou IP adresu serveru Debian. Uložte a zavřete soubor. Restartujte synchronizaci, aby se změny projevily.

sudo systemctl start [email protected]username.service

Nyní zadejte server-ip-address:8384 ve webovém prohlížeči pro přístup k webovému rozhraní Syncthing. Samozřejmě musíte použít skutečnou IP adresu serveru Debian. Budete požádáni o nastavení uživatelského jména a hesla pro ochranu webového rozhraní Syncthing.

Můžete také nastavit reverzní proxy s Nginx nebo Apache pro přístup k webovému uživatelskému rozhraní, což je vysvětleno dále v tomto tutoriálu.

Začněte synchronizovat soubory mezi vašimi zařízeními

Jakmile budeme mít dvě zařízení se systémem Syncthing, můžeme mezi nimi začít synchronizovat soubory.

Ve webovém rozhraní Syncthing klikněte na Akce> Zobrazit ID v pravém horním rohu. Uvidíte ID zařízení, což je dlouhý řetězec písmen a číslic. QR kód, který je zároveň ID zařízení, se používá pro konfiguraci Syncthing na chytrých telefonech.

Zkopírujte ID zařízení, otevřete webové rozhraní Syncthing druhého zařízení a klikněte na Přidat vzdálené zařízení v pravém dolním rohu. Poté vložte ID zařízení a pojmenujte zařízení. Klikněte na tlačítko Uložit.

Nyní se druhé zařízení pokusí připojit k prvnímu zařízení. Obnovte webové rozhraní na prvním zařízení, zobrazí se následující zpráva. Klikněte na Přidat zařízení pro přidání druhého zařízení do seznamu zařízení prvního zařízení.

Nyní jsou obě zařízení připojena.

V levém podokně webového rozhraní je výchozí složka pro synchronizaci (/home/username/Sync ). Klikněte na Add Folder tlačítko pro přidání nové složky. Dejte této složce popisný štítek a nastavte cestu ke složce.

Syncthing běží jako váš vlastní uživatelský účet, takže musíte mít oprávnění k zápisu do sdílené složky. Pokud se při sdílení složky zobrazí následující chybová zpráva, znamená to, že do této složky nemáte oprávnění k zápisu.

2020-06-21 20:05:49: Failed to create folder marker: mkdir .stfolder: read-only file system

Oprávnění k zápisu můžete udělit pomocí setfacl .

sudo apt install acl
sudo setfacl -R -m u:username:rx /folder/path/

V části Sharing vyberte své druhé zařízení Syncthing.

V Advanced můžete zvolit typ složky, interval opětovného skenování atd.

Klepnutím na tlačítko Uložit zahájíte synchronizaci. Ve webovém rozhraní druhého zařízení se zobrazí zpráva. Klikněte na Přidat přijímat soubory.

Nyní obě zařízení synchronizují soubory. Na pravé straně můžete vidět rychlost stahování, rychlost odesílání, velikost místní složky atd.

Nastavit reverzní proxy

Protože naslouchá na 127.0.0.1:8384, webové rozhraní Syncthing je dostupné pouze pro připojení ze stejného počítače. Abychom mohli přistupovat k webovému rozhraní Syncthing ze vzdáleného počítače, můžeme nastavit reverzní proxy pro Syncthing s Nginx nebo Apache.

Nginx

Nginx je velmi oblíbený webový server a reverzní proxy. Pokud dáváte přednost použití Nginx, spusťte následující příkaz a nainstalujte jej.

sudo apt install nginx

Poté vytvořte konfigurační soubor serveru.

sudo nano /etc/nginx/conf.d/syncthing.conf

Přidejte do tohoto souboru následující obsah. Nahraďte syncthing.example.com s vaším preferovaným názvem domény. Měli byste také přidat záznam DNS A pro tuto subdoménu. Pokud nemáte skutečný název domény, doporučuji přejít na NameCheap a koupit si ho. Cena je nízká a poskytují ochranu soukromí whois doživotně zdarma.

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. Otestujte konfiguraci Nginx a znovu načtěte Nginx.

sudo nginx -t

sudo systemctl reload nginx

Poté, co nasměrujete název své domény na IP adresu Debianu, zadejte název své domény do adresního řádku prohlížeče a měli byste vidět webové rozhraní Syncthing.

Pokud se váš prohlížeč nemůže připojit k webovému rozhraní Syncthing, možná budete muset otevřít port 80 ve bráně firewall. Pokud například používáte UFW, spusťte následující příkaz.

sudo ufw allow 80/tcp

Apache

Apache je známý webový server, který lze také použít jako reverzní proxy. Pokud dáváte přednost Apache před Nginx, nainstalujte jej pomocí:

sudo apt install apache2

Spusťte Apache a povolte automatické spouštění.

sudo systemctl start apache2

sudo systemctl enable apache2

Chcete-li používat Apache jako reverzní proxy, musíme povolit proxy moduly a modul záhlaví.

sudo a2enmod proxy proxy_http headers proxy_wstunnel

Nyní vytvořte soubor virtuálního hostitele pro Syncthing.

sudo nano /etc/apache2/sites-available/syncthing.conf

Zkopírujte a vložte následující řádky do souboru. Nahraďte syncthing.example.com s vaším skutečným názvem domény. Měli byste také přidat záznam DNS A pro tuto subdoménu. Pokud nemáte skutečný název domény, doporučuji přejít na NameCheap a koupit si ho. Cena je nízká a poskytují ochranu soukromí whois doživotně zdarma.

<VirtualHost *:80>
   ServerName syncthing.example.com
   ErrorDocument 404 /404.html

   ProxyPass / http://127.0.0.1:8384/
   ProxyPassReverse / http://127.0.0.1:8384/

   ErrorLog ${APACHE_LOG_DIR}/syncthing_error.log
   CustomLog ${APACHE_LOG_DIR}/syncthing_access.log combined

</VirtualHost>

Uložte a zavřete soubor. Poté povolte tohoto virtuálního hostitele.

sudo a2ensite syncthing.conf

Restartujte Apache

sudo systemctl restart apache2

Nyní máte přístup k webovému uživatelskému rozhraní přes syncthing.example.com .

Pokud se váš prohlížeč nemůže připojit k webovému rozhraní Syncthing, možná budete muset otevřít port 80 ve bráně firewall. Pokud například používáte UFW, spusťte následující příkaz.

sudo ufw allow 80/tcp

Zabezpečte webové uživatelské rozhraní Syncthing pomocí protokolu HTTPS

Chcete-li šifrovat provoz HTTP při návštěvě webového uživatelského rozhraní Syncthing prostřednictvím názvu domény, můžeme povolit HTTPS instalací bezplatného certifikátu TLS vydaného z Let’s Encrypt. Nejprve otevřete port 443 ve bráně firewall.

sudo ufw allow 443/tcp

Poté spusťte následující příkaz a nainstalujte klienta Let’s Encrypt (certbot).

sudo apt install certbot

Pokud používáte Nginx, musíte si také nainstalovat plugin Certbot Nginx.

sudo apt install python3-certbot-nginx

Dále spusťte následující příkaz pro získání a instalaci certifikátu TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d syncthing.example.com

Pokud používáte Apache, nainstalujte si plugin Certbot Apache.

sudo apt install python3-certbot-apache

A spusťte tento příkaz, abyste získali a nainstalovali certifikát TLS.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d syncthing.example.com

Kde

  • --nginx :Použijte plugin nginx.
  • --apache :Použijte plugin Apache.
  • --agree-tos :Souhlas se smluvními podmínkami.
  • --redirect :Vynutit HTTPS přesměrováním 301.
  • --hsts :Přidejte hlavičku Strict-Transport-Security do každé odpovědi HTTP. Vynucení prohlížeče, aby pro doménu vždy používal TLS. Chrání před odstraněním SSL/TLS.
  • --staple-ocsp :Umožňuje sešívání OCSP. Platná odpověď OCSP je přišita k certifikátu, který server nabízí během TLS.

Certifikát by nyní měl být získán a automaticky nainstalován.

Obnovte své grafické uživatelské rozhraní Syncthing, zjistíte, že připojení HTTP je automaticky přesměrováno na zabezpečené připojení HTTPS.

Povolit ověření uživatele

Ve výchozím nastavení má kdokoli přístup k vašemu webovému rozhraní Syncthing po nastavení reverzního proxy. Pro omezení přístupu můžeme povolit ověření uživatele. Klikněte na Akce v pravém horním rohu a poté vyberte Nastavení -> GUI.

Zadejte uživatelské jméno do GUI Authentication User zadejte heslo do pole GUI Authentication Password . Poté nastavení uložte.

Upozorňujeme, že nemusíte zaškrtávat možnost Použít HTTPS pro grafické uživatelské rozhraní box, který umožňuje Syncthing používat certifikát s vlastním podpisem. Již jsme nainstalovali platný certifikát v Apache/Nginx, kterému důvěřují běžné webové prohlížeče.

Jakmile změny uložíte, restartujte službu Syncthing systemd, jinak se při opětovném načítání stránky může zobrazit chybná chyba brány 502.

sudo systemctl restart [email protected]username.service

Nyní se přihlaste do webového rozhraní Syncthing se svým novým uživatelským jménem a heslem.

Složky pouze pro odesílání a pouze pro příjem

Při sdílení složky v Syncthing můžete přejít na kartu Upřesnit a vybrat jeden ze tří typů složek:

  • Odeslat a přijmout (výchozí)
  • Pouze odeslat
  • Pouze příjem

Možná budete chtít vybrat pouze odesílání nebo pouze příjem. Pokud máte například 3 počítače:A, B a C a chcete agregovat složky na počítači A a B do jedné složky na počítači C. Pak můžete nastavit typ složky na pouze pro příjem na počítači C. Tímto způsobem bude mít počítač C všechny soubory v jedné složce. Počítač A a B má stále původní soubory. Nic více a nic méně.

Když použijete stejnou cestu ke složce na počítači C, Syncthing vás může varovat, že „tato cesta je podadresářem existující složky“. Toto upozornění můžete ignorovat, protože máte složku pouze pro příjem. Stávající soubory ve složce nebudou smazány.

Synchronizace přes přenosové servery

Pokud se dvě instance Syncthing nemohou vzájemně propojit, pokusí se Syncthing k přenosu souborů použít přenosový server.

Častým důvodem, proč se k sobě nemohou připojit, je to, že jeden z nich je za zařízením NAT a nenakonfiguroval přesměrování portů. Jakmile nakonfigurujete předávání portů, můžete zakázat přenosové servery. Zde je návod. Klikněte na Edit a vyberte Advanced Změňte adresu z dynamic na tcp://ip-address:22000 . Samozřejmě musíte použít svou skutečnou IP adresu.

Odstraňování problémů

Pokud se vaše instance Syncthing nemohou navzájem propojit, můžete použít ss (socket stats) pro kontrolu, zda Syncthing naslouchá na TCP portu 22000.

sudo ss -lnpt | grep syncthing

Jak můžete vidět na snímku obrazovky níže, můj Syncthing naslouchá na portu 8384 (webové rozhraní) a 22000 (připojení peer to peer).

Pokud ne, můžete upravit konfigurační soubor.

nano ~/.config/syncthing/config.xml

Najděte následující řádek.

<listenAddress>default</listenAddress>

Změnit default na tcp://your-IP-address .

<listenAddress>tcp://12.34.56.78</listenAddress>

Uložte a zavřete soubor. Poté restartujte Syncthing.

sudo systemctl restart [email protected]username.service

Chybí soubor .stfoler

.stfoler soubor vyžaduje Syncthing, aby fungoval. Toto je prázdný soubor. Není třeba k tomu nic dodávat. Pokud .stfolder ve vaší synchronizační složce chybí soubor, synchronizace se zastaví. Pro automatické vytvoření souboru můžete vytvořit následující úlohu Cron.

@hourly touch /path/to/sync/folder/.stfolder

Dotykový příkaz vytvoří soubor, pokud chybí. Pokud soubor již existuje, aktualizuje časové razítko souboru.


Debian
  1. Jak nainstalovat Redis Server na Debian 11

  2. Jak nainstalovat MySQL 8.0 / 5.7 na Debian 11 / Debian 10

  3. Jak nainstalovat ProFTPD na Debian 8

  1. Jak nainstalovat Minecraft Server na Debian 9

  2. Jak nainstalovat Xrdp Server (Remote Desktop) na Debian 10

  3. Jak nainstalovat MySQL Server na Debian 9

  1. Jak nainstalovat SuiteCRM na Debian 9

  2. Jak nainstalovat MySQL 8 na Debian 10

  3. Jak nainstalovat XFCE Desktop na Debian 11