dynDNS
Zum Aktualisieren eines dynamischen DNS-Eintrags von DynDNS.com können Sie neben dem Programm inadyn auch das Perl-Skript ddclient verwenden. ddclient kann Ihre externe IP-Adresse direkt von der Hardware-Schnittstelle, von der Statusseite Ihres Routers oder mittels dem CheckIP Service von DynDNS.com ermitteln. Seit der Version 3.7.0 unterstützt ddclient auch das Updaten über HTTPS.
Wie funktioniert dyndns
Konto erstellen
Dazu auf die Seite http://www.dyndns.org/account/create.html gehen und dort ein Konto erstellen.
Nach der Aktivierung des Accounts legen wir uns zuerst einen Host (der Name, unter dem unsere Homepage gefunden werden soll) an. Falls noch nicht geschehen bitte mit den Userdaten bei http://www.dyndns.org einloggen (auf der Webseite oben rechts). Um einen neuen Host anzulegen, müssen wir in den Bereich „Services“ wechseln und dort „Add Host“ auswählen.
Im folgenden Formular können wir nun unseren gewählten Host-Namen eintragen und einer Domain zuweisen. Als dynDNS Name eine das angebotenen Domänen auswählen und bestätigen.
Installation und Konfiguration
Bei erweiterten Repositorys ist die Installation einfach:
yum install ddclient
Dieser Weg ist zu empfehlen. Ist dies nicht möglich, bleibt der Weg der manuellen Installation:
Wechseln Sie zuerst ins Verzeichnis /usr/src/ und laden den Quellcode herunter.
[root@centos ~]# cd /usr/src/ [root@centos src]# wget http://sourceforge.net/projects/ddclient/files/latest/download?source=filesNachdem Sie den Quellcode entpackt haben, wechseln Sie in das Verzeichnis ddclient-3.8.0.
[root@centos src]# tar xfz ddclient-3.8.0.tar.gz [root@centos src]# cd ddclient-3.8.0Da es vorkommen kann, dass sich die Installationsanweisung modernerer Versionen verändert, ist es ratsam ab hier zuerst die Datei README zu lesen.
Kopieren Sie ddclient in das Verzeichnis /usr/sbin/ und erstellen die Verzeichnisse /etc/ddclient und /var/cache/ddclient.
[root@centos ddclient-3.8.0]# cp ddclient /usr/sbin/ [root@centos ddclient-3.8.0]# mkdir /etc/ddclient /var/cache/ddclientAus Sicherheitsgründen sollten Sie ddclient unter einem eigenen Benutzer laufen lassen. Dazu erstellen Sie mit den folgenden zwei Befehlen eine Systemgruppe ddclient und einen Systembenutzer ddclient welcher zur Gruppe ddclient gehört und sich nicht am System anmelden kann.
[root@centos ddclient-3.8.0]# groupadd -r ddclient [root@centos ddclient-3.8.0]# useradd -r -m -g ddclient -s /bin/false -c "ddclient" ddclientAnschließend erstellen Sie die Konfigurationsdatei /etc/ddclient/ddclient.conf. Im Quellcode finden Sie die Beispiel-Konfigurationsdatei sample-etc_ddclient.conf.
[root@centos ddclient-3.8.0]# vi /etc/ddclient/ddclient.confEine minimale Konfiguration könnte wie folgt aussehen.
daemon=600 pid=/var/run/ddclient.pid syslog=yes use=web, web=checkip.dyndns.com/, web-skip='IP Address' login=Benutzername password=Passwort protocol=dyndns2 server=members.dyndns.org Hostname.dyndns.orgUm zu verhindern, dass alle Benutzer die Login-Daten lesen können, ändern Sie den Besitzer und die Zugriffsrechte der Konfigurationsdatei.
[root@centos ddclient-3.8.0]# chown ddclient:ddclient /etc/ddclient/ddclient.conf [root@centos ddclient-3.8.0]# chmod 0600 /etc/ddclient/ddclient.confErstellen Sie als nächstes das Init-Skript für ddclient.
[root@centos ddclient-3.8.0]# vi /etc/rc.d/init.d/ddclientDas folgende Skript ermöglicht das Starten, Stoppen und Neustarten des ddclient-Daemons. Kopieren Sie den Code in die Datei /etc/rc.d/init.d/ddclient.
#!/bin/sh # chkconfig: - 65 35 # description: ddclient provides support for updating dynamic DNS services. # Check that config file exist [ -f /etc/ddclient/ddclient.conf ] || exit 0 # Source function library . /etc/rc.d/init.d/functions # Source networking configuration . /etc/sysconfig/network # Check that networking is up [ "$NETWORKING" = "no" ] && exit 0 exec=/usr/sbin/ddclient lockfile=/var/lock/subsys/ddclient cache=/var/cache/ddclient/ddclient.cache pid=/var/run/ddclient.pid start() { echo -n "Starting ddclient: " [ -f $cache ] || touch $cache chown ddclient:ddclient $cache && chmod 0600 $cache || exit $? [ -f $pid ] || touch $pid chown ddclient:ddclient $pid && chmod 0600 $pid || exit $? daemon --user=ddclient --pidfile=$pid $exec retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval } stop() { echo -n "Stopping ddclient: " killproc $exec retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; status) status ddclient ;; *) echo "Usage: $0 {start|stop|restart|status}" ;; esac exit 0Nachdem das Init-Skript erstellt wurde, ändern Sie die Zugriffsberechtigungen der Datei.
[root@centos ddclient-3.8.0]# chmod 0755 /etc/rc.d/init.d/ddclientAnschließend wird der Service ddclient mit den folgenden Befehlen erstellt und im Runlevel 3 und 5 aktiviert.
[root@centos ddclient-3.8.0]# chkconfig --add ddclient [root@centos ddclient-3.8.0]# chkconfig --level 35 ddclient onDer soeben erstellte Service kann jetzt gestartet werden.
[root@centos ddclient-3.8.0]# service ddclient startSollten Sie Probleme mit dem Daemon haben, überprüfen Sie die Logdatei /var/log/messages nach möglichen Fehlermeldungen.
[root@centos ddclient-3.8.0]# tail -f /var/log/messagesÜbertragung der DNS-Updates mit SSL absichern
Wenn Sie die Übertragung der DNS-Updates mittels SSL absichern wollen, benötigen Sie das Perl-Modul IO::Socket::SSL. Dieses installieren Sie unter CentOS 5 mit dem folgendem Befehl.
[root@centos ddclient-3.8.0]# yum install perl-IO-Socket-SSLAnschließend müssen Sie die Konfigurationsdatei um die Option ssl erweitern.
[root@centos ddclient-3.8.0]# vi /etc/ddclient/ddclient.confFügen Sie die folgende Zeile in die Konfigurationsdatei ein.
ssl=yes </coe> Nachdem Sie die das Perl-Modul installiert und die Konfiguration angepasst haben, müssen Sie ddclient neu starten. <code/bash> [root@centos ddclient-3.8.0]# service ddclient restartOnline-Hilfe
Die Online-Hilfe von ddclient wird Ihnen durch die Option –help angezeigt. Da diese jedoch sehr umfangreich ist, sollten Sie diese an less weiterleiten.
[root@centos ddclient-3.8.0]# ddclient --help | less
Kurzanleitung
Installation
wget http://cdn.dyndns.com/ddclient.tar.gz tar -xzvf ddclient.tar.gz cd ddclient-3.7.3/ mkdir /etc/ddclient mkdir /var/cache/ddclient cp ddclient /usr/local/bin cp sample-etc_ddclient.conf cp sample-etc_rc.d_init.d_ddclient /etc/rc.d/init.d/ddclient chkconfig --add ddclient cd .. rm -rf ddclient-3.7.3/Now edit the /etc/ddclient/ddclient.conf file:
vim /etc/ddclient/ddclient.confso that it contains something like:
use=web login=yourdndnslogin password=yourdyndnspassword server=members.dyndns.org, \ protocol=dyndns2 \ yourhost.dyndns.domainNow start the ddclient daemon:
/etc/init.d/ddclient startYou can check status and troubleshoot using:
/etc/init.d/ddclient status /etc/init.d/ddclient stop tail /var/log/messages
Konfiguration mit Wenmin
Dazu unter www.webmin.org das Paket ddclient suchen und als neues Modul in Webmin installieren.
Die Konfiguration (/etc/ddclient/ddclient.conf) muss noch angepasst werden
Weitere Anwendungen
Alternativen zu DynDNS
Leider kostet der Dienst mitlerweile bei langfristiger Nutzung Geld. Alternativen sind:
- Selfhost ist eindeutig spendabler als DynDNS, was kostenlose Features betrifft. Ihr Hostname wird nicht gelöscht und Sie haben sogar Zugang zu beliebig vielen Subdomains. Praktischerweise wird der Anbieter schon von vielen Routermodellen unterstützt.
- SPDNS ist eine weitere deutsche Alternative zu DynDNS. Hier können Sie fünf Domainnamen wählen, zudem haben Sie aber die Auswahl aus acht Domains. Ein breites Angebot für einen kostenlosen Service. Als kleines Extra wird sogar erklärt, wie man den benutzerdefinierten Zugang im Interface der Fritz!Box einrichtet. Hierfür gibt es ein eigenes FAQ.
- MyFRITZ!. Wenn Sie stolzer Besitzer einer Fritz!Box sind, haben Sie Glück gehabt. Sie brauchen sich auf keiner alternativen Website registrieren und zurechtfinden. Sie können einfach den hauseigenen Service benutzen. Dazu wechseln Sie einfach auf der Weboberfläche der Fritz!Box zu „Internet“ → „MyFRITZ!“ und erstellen sich einen Account. Sie haben natürlich keine riesige Anzahl an Domains zur Verfügung, aber können sämtliche Vorteile der Fritz!Box aus der Ferne nutzen. Beispielsweise das Abhören des Anrufbeantworters.
Kurzanleitung SPDNS mit dyndns
- ein SPDNS-Account unter www.spdns.de erstellen
- dyndns installieren
- dyndns konfiurieren
daemon=600 # alle 600 Sekunden wird synchronisiert mail=deine@mail.adresse # für Info-Mails (alle 10 Minuten!) mail-failure=deine@mail.adresse # für Error-Mails pid=/var/run/ddclient.pid # PID-File cache=/tmp/ddclient.cache # Cache protocol=dyndns2 use=web, web=checkip.spdns.de wildcard=YES server=update.spdns.de #ssl=yes login=benutzername # Bitte ändern password='passwort' # auch ändern erster_Host.spdns.de,zweiter_Host.spdns.de # hier auch ändern
- Berechtigung an der conf-und pid-Datei anpassen
chown ddclient:ddclient /etc/ddclient/ddclient.conf chmod 0600 /etc/ddclient/ddclient.conf touch /var/run/ddclient.pid chown ddclient:ddclient /var/run/ddclient.pid
- ddclient starten
service ddclient start
- manuell synchronisieren
chmod 777 /tmp/ddclient.cache ddclient -daemon=0 -debug -verbose -noquietDie Rechteänderung am tmp-File ist nur nötig, da ddclient zuvor als Dämonn, und damit unter root, gestartet wurde.
ddclient-Bug beseitigen
Wenn ein ähnlicher Fehler
cannot connect to checkip.spdns.de:80 socket: IO::Socket::INET: Bad hostname 'checkip.spdns.de'
auftritt, ligt das an einem Namenauflösungsfehler. Dies kann man so beheben:
In die Datei /etc/ddclient.conf diese Zeile hinzu fügen:
use=cmd, cmd=/etc/checkip.sh, cmd-skip='IP Address' # found after IP Address
Jetzt dei Datei /etc/checkip.sh erstellen
#!/bin/sh # # A script to fill in for what ddclient # can't seem to do: reliably connect to checkip.dyndns.org. curl http://checkip.dyndns.org/und die Datei für alle ausführbar machen.
ddclient neu starten