Teil 1.5: Server über das Internet erreichbar machen – Dynamic DNS einrichten

Nun wollen wir den Server auch von unterwegs aus ansprechen können. Das ist einerseits nötig, um sich über SSH einzuloggen, andererseits, um die installierten Services je nach Wunsch von überall aus benutzen zu können.

Achtung: Eine IPV4-Adresse ist dafür zwingend notwendig! Je nach Internet-Anbieter (bspw. Kabel Deutschland) werden teilweise nur noch DS-Lite Verbindungen vergeben. Dabei bekommt man zwar eine fixe IPV6-Adresse zugeordnet, teilt sich die IPV4-Adresse jedoch mit anderen Nutzern, was das Ansprechen des Servers von außerhalb (derzeit) unmöglich macht. Eine Alternative wäre ein Anschluss mit einer festen IPV4-Adresse, diese sind jedoch meistens recht teuer. Oft (und so war es bei mir) reicht jedoch auch ein Anruf bei dem Anbieter mit der Bitte um eine IPV4-Adresse.

Während der Server jetzt schon im Heimnetzwerk über die intern vergebene IP-Adresse erreichbar ist, so ist er dies theoretisch auch schon über die öffentliche IPV4-Adresse, mit welcher sich der Router sozusagen im Internet identifiziert.

Da sich diese IP-Adresse jedoch öfter mal ändert (bspw. bei jedem Reconnect des Routers), und man sie sich sowieso nicht merken kann oder will, soll der Server auch über eine eigene Domain erreichbar sein.

Dynamic DNS mit ddclient

Unter Ubuntu gibt des das Tool ddclient, welches die sich ändernde IPV4-Adresse automatisch an den Anbieter der Domain sendet, wodurch diese dann auch die richtige Adresse weiterleiten kann.

Dieser Prozess wird auch DynDNS oder DDNS genannt. Viele Router, bspw. die AVM Fritz!Boxen oder Telekom Speedports unterstützen diese Funktion bereits von Haus aus.

Sollte der Router diese Funktion nicht unterstützen (wie in meinem Fall), hilft dann eben ein Tool wie ddclient.

Wir installieren ddclient mit

sudo apt-get install ddclient

Nach dem Download werden wir direkt in das Setup geworfen. Folgende Einstellungen funktionieren mit meinem Anbieter gut (All-Inkl), müssen jedoch an den eigenen Domain-Provider angepasst werden:

  • Protokoll: dyndns2
  • IP Erkennungsmethode: web
  • Server: Der DynDNS-Server des Anbieters (bei All-Inkl ist das „dyndns.kasserver.com“)
  • Login, Passwort & Domain: Wie eingerichtet

Nach Abschluss der Einrichtung sollte die Weiterleitung über die Domain ein paar Minuten später bereits funktionieren.

Testen lässt sich dies, indem man den SSH-Client öffnet, und sich anstatt mit

ssh Benutzer@InterneIP

nun mit

ssh Benutzer@Domain

einloggt. Gelingt dies ist ddclient korrekt eingerichtet.

Möchte man später noch etwas an der Konfiguration ändern, kann man dies direkt in der Konfigurationsdatei von ddclient tun, welche sich im Ordner /etc/ befindet. Hierzu öffnen wir diese über den SSH-Client mit

sudo nano /etc/ddclient.conf

Dort sehen wir bereits unsere ursprünglichen Eingaben, und können diese wie gewünscht ändern.

protocol=dyndns2
use=web
server=dns-server-adresse
login=angelegter-login
password='angelegtes-password'
domain

Mit Strg+O wird die Datei gespeichert, mit Strg+X verlassen wir Nano.

Hier können wir nun auch noch weitere Hoster hinzufügen. So kann man bspw. mehrere Subdomains gleichzeitig anlegen und updaten lassen. Dass sieht dann bspw. so aus:

use=web

protocol=dyndns2
server=dns-server-adresse
login=angelegter-login
password='angelegtes-password'
sub1.domain.de

protocol=dyndns2
server=dns-server-adresse
login=angelegter-login
password='angelegtes-password'
sub2.domain.de

protocol=dyndns2
server=dns-server-adresse
login=angelegter-login
password='angelegtes-password'
sub3.domain.de

Mit Strg+O wird die Datei gespeichert, mit Strg+X verlassen wir Nano.

Damit ddclient im Daemon-Modus läuft (also permanent im Hintergrund läuft und die IP-Adresse aktualisiert), öffnen wir nun die zweite Konfigurationsdatei mit

sudo nano /etc/default/ddclient

Dort stellen wir die folgenden Zeilen ein

run_ipup="false"
run_daemon="true"

Das Intervall für die Updates kann man wie gewünscht einstellen. Bei mir steht es auf 3600 Sekunden, also jede Stunde.

Um ganz sicher zu gehen, dass ddclient die IP-Adresse aktualisiert, richten wir noch einen Cronjob dafür ein, welcher ein Mal pro Tag läuft:

sudo crontab -e

Dort tragen wir in der letzten Zeile ein:

45 04 * * * /usr/sbin/ddclient --force

Nun wird per ddclient jeden Tag morgens um 4:45 Uhr die IP aktualisiert.

Ein Neustart des Servers sollte spätestens jetzt alle Dynamic Domains automatisch updaten. Will man sich Debug-Informationen anzeigen lassen macht man das mit

ddclient -daemon=0 -debug -verbose -noquiet