Aktionen

Ubuntu discosrv Global Discovery Server Syncthing installieren

Aus znilwiki

Siehe auch: http://docs.syncthing.net/users/discosrv.html

1 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




2 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.



3 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.


4 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




5 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.



6 Kommentare


Kommentar hinzufügen
znilwiki freut sich über alle Kommentare. Sofern du nicht anonym bleiben möchtest, trage deinen Namen oder deine Email-Adresse ein oder melde dich an. Du kannst das Feld auch einfach leer lassen.