Ubuntu discosrv Global Discovery Server Syncthing installieren
Aus znilwiki
Siehe auch: http://docs.syncthing.net/users/discosrv.html
Herunterladen und installieren
Versionsnummer ggf. anpassen! letzte Version findet Ihr auf dieser Seite: https://github.com/syncthing/discosrv/releases
cd /usr/src wget https://github.com/syncthing/discosrv/releases/download/v0.12.1/discosrv-linux-amd64.tar.gz tar xvzf discosrv-linux-amd64.tar.gz cp /usr/src/discosrv-linux-amd64/discosrv /usr/bin
Konfiguration
Zunächst einmal starten:
cd \ discosrv
Wartet 10 Sekunden und beendet das Programm per STRG + C bzw. CTRL + C wieder.
Er hat nun unter
/var/discosrv
seine Dateien angelegt.
Konfiguriert wird der discosrv über Parameter beim Start. Das machen einfach im Init-Skript mit dem wir das ganze auch als Dienst starten.
Start als Dienst mit Parametern
nano /etc/init.d/discosrv
mit folgendem Inhalt:
#!/bin/sh
### BEGIN INIT INFO
# Provides: syncthing
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Should-Start: $network
# Should-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Global Discovery Server for Syncthing
# Description: Starts the discosrv daemon
### END INIT INFO
DAEMON=/usr/bin/discosrv
PID=/tmp/discosrv.pid
PORT=22026
STATSINTERVALL=60
case "$1" in
start)
echo "Starting discosrv Syncthing Global Discovery Server on Port $PORT ..."
## start-stop-daemon --start --oknodo --pidfile $PID --exec $DAEMON
start-stop-daemon --background --oknodo --pidfile $PID --make-pidfile --chuid root --user root --exec $DAEMON --start -- -listen=":$PORT" -stats-intv=$STATSINTERVALL
## start-stop-daemon --background --oknodo --pidfile $PID --make-pidfile --chuid root --user root --exec $DAEMON --start -listen=":$PORT" -stats-intv=$STATSINTERVALL
##sleep 6
;;
stop)
echo "Stopping syncthing ..."
start-stop-daemon --stop --pidfile $PID --chuid root --user root --retry=TERM/10/KILL/5 && exit 0
start-stop-daemon --stop --oknodo --exec $DAEMON --name syncthing --retry=TERM/10/KILL/5
;;
restart|force-reload)
$0 stop
$0 start
;;
*)
echo "Usage: discosrv {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
Über den Parameter PORT=22026
könnte Ihr den zu verwendenen Port festlegen bzw. ändern.
STATSINTERVALL=60
schreibt alle 60 Sekunden Statiskdaten über die Verwendung in die Datei
/var/discosrv/stats
Das ist dann also eine Datei die pro Minute um eine Zeile wächst. Setzt man den Intervall auf 0
so werden keine Daten geschrieben.
Lässt man ihn wie bei mir auf 60 Sekunden sollte man das ganze ins logrotate aufnehmen:
nano /etc/logrotate.d/discosrv
mit folgendem Inhalt:
/var/discosrv/stats { daily size 1M nocompress notifempty missingok maxage 7 rotate 1 }
Jetzt noch das Init-Skript ausführbar machen und zum Autostart hinzufügen:
chmod +x /etc/init.d/discosrv update-rc.d discosrv defaults
Ab jetzt könnt Ihr per
service discosrv start service discosrv stop service discosrv reload
den Dienst beenden und starten.
Firewall
In eurer Firewall eures Netzwerkes müsst ihr nun folgednes einrichten:
- IPv4 eine Port-Weiterleitung / NAT auf den Port des Dienstes (Default 22026) für TCP und UDP
- IPv6 eine Regel / Rule für den Datenverkehr auf Port 22026 für TCP und UDP
Ich habe mir dazu noch Subdomains eingerichtet (beim Domain Provider) die ich dann auf meine Server zeigen lassen.
discosrv1.znil.net IPv4: 213.168.209.191 IPv6: 2001:470:1f0b:f2c:192:168:99:10 Port: 22026 discosrv2.znil.net IPv4: 91.121.143.96 IPv6: 2001:470:1f0b:fe5:192:168:42:10 Port: 22026
Eintragen am Client
Wir gehen bei unseren Syncthing Geräten in die Einstellungen.
Unten links finden wir die Einstellungen für die
- Globale(r) Indexserver
- Global Discovery Server
Per Default steht hier der Standardwert
udp4://announce.syncthing.net:22026, udp6://announce-v6.syncthing.net:22026
drin. Ich ändere dies nun auf meinen privaten Server ab:
udp4://discosrv1.znil.net:22026, udp6://discosrv1.znil.net:22026
Man kann aber auch mehrere Server angeben, einfach per Komma getrennt:
udp4://discosrv1.znil.net:22026, udp6://discosrv1.znil.net:22026, udp4://discosrv2.znil.net:22026, udp6://discosrv2.znil.net:22026
Wenn Ihr kein IPv6 nutzt so lasst die udp6 Einträge einfach weg.