Synology VPN Client automatisch verbinden

In diesem Artikel möchte ich auf ein ganz konkretes Problem / Bedürfnis eingehen wofür es leider im Netz kaum schlaue Lösungen gibt. Es geht darum, dass ich einige Synologys an externen Orten betreibe und diese gerne alle zentral verwalten und Daten sicher austauschen möchte. Dazu eignet sich bestehns die VPN Technologie. Synology bietet dafür einen VPN Server, dieser wird auf der Haupt-Synology bei mir Zuhause installiert. Anschliessend kann ich auf allen Aussenstellen, die mit der Zentrale verbunden werden sollen den internen VPN Client benutzen. Soweit alles mit Bordmitteln möglich und absolut kein Problem zum Einrichten.

Wenn nun die Verbindung unterbrochen wird (Neustart Synology, Netzwerkausfall) dann wird die VPN Verbindung nicht automatisch (beim Starten der Synology) hergestellt. Dies können wir mit einem kleinen Bash-Script bewerkstelligen. In diesem Beispiel für OpenVPN Verbindungen.

Update: Mittlerweile gibt es ein überarbeitetes Script für DSM 5 und 6. Dafür benötigt ihr nebst dem VPN Namen noch die Config Nummer oXXXXXXX.Diese lässt sich leider nur via SSH auslesen. Man baut zuerst die VPN Verbindung von Hand auf. Dann loggt man sich ein und gibt den Befehl  ps|grep client_o ein. Anschliessend erhält man einen Auszug der laufenden Dienste und sieht die Config ID.

Dabei muss nur der NAMEVPNPROFIL mit der Bezeichnung im Synology VPN Client geändert werden. In unserem Beispiel ist das HomeVPN

SynoVPNClient_autoconnect

Das Script anschliessend in ein Verzeichnis der Synology laden und den Pfad im Aufgabenplaner eintragen und das Script jede Stunde ausführen.

SynoVPNClient_autoconnect_2

Wird nun die Verbindung unterbrochen, wird spätestens nach einer Stunde die Verbindung wieder hergestellt. Somit hat man jederzeit Zugriff zu seinen Synologys im VPN Betrieb.

11 Gedanken zu “Synology VPN Client automatisch verbinden

  1. Hallo und Danke dafür!
    ..leider fragen dazu 😉
    – Kann ich das script auch in ein unterverzeichnis des admin users legen?
    wie muss dann hier der pfad dazu lauten?
    – laut deinem letzten screen schreibst du nicht die dateiendung .sh in das feld „befehl ausführen“ weshalb ist das nicht erforderlich?
    besten dank!

    • Hallo Chris

      Du kannst das Script an einem beliebigen Ort ablegen, du musst nur den Pfad zum Verzeichnis kennen. Für den Admin User wäre das wohl /volume1/homes/admin/VPNSCRIPT
      Ich habe keine Endung gewählt, weil meine Datei auch keine hat. Selbstverständlich kannst du deine Datei auch mit Endung .sh speichern und dann den Pfad entsprechend anpassen.

      Ich hoffe ich konnte dir damit helfen.

  2. Hallo, vielen Dank für das Script, das Problem habe ich auch. Kann ich das Script auch für eine PPTP Verbindung nutzen?
    Freundliche Grüße
    Christoph Neis

    • Hallo Christoph

      PPTP ist nicht mehr sicher und kann mit einfachen Mitteln ausgehebelt werden.

      Habe folgendes Script im Netz gefunden, kann dir aber nicht sagen, ob es funktioniert.


      if echo
      ifconfig ppp0 | grep -q "Link encap:Point-to-Point Protocol"
      then
      echo "VPN up"
      else
      echo 1 > /usr/syno/etc/synovpnclient/vpnc_connecting
      synovpnc reconnect --protocol=pptp --name=Connection
      fi
      exit 0

  3. if echo ifconfig tun0 | grep -q „00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00“
    then
    echo „VPN up“
    else
    echo conf_id=o1380223815 > /usr/syno/etc/synovpnclient/vpnc_connecting
    echo conf_name=NAMEVPNPROFIL >> /usr/syno/etc/synovpnclient/vpnc_connecting
    echo proto=openvpn >> /usr/syno/etc/synovpnclient/vpnc_connecting
    synovpnc reconnect –protocol=openvpn –name=NAMEVPNPROFIL
    fi
    exit 0

    find the conf_id by issueing (when openvpn is connected):
    > ps|grep openvpn

  4. Hallo
    Super Anleitung. Leider erzeugt der Befehl ps|grep client_o bei mir am client keine ausgabe in putty was mache ich falsch? Und was von der Ausgabe wäre dan die ID?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.