Ddclient
Wer die SuFu verwendet hat, der wird wahrscheinlich festgestellt haben, dass er sich durch zig Einträge kämpfen muss, und seine Konfiguration trotzdem nicht funktioniert. Also werde ich hier ein recht kurzes HOWTO anlegen, welches gerne erweitert werden kann, da es immer Einzelfälle gibt, die nicht berücksichtigt worden sind.
Inhaltsverzeichnis
Über ddclient selbst
Das im Titel aus technischen Gründen nicht komplett kleingeschriebene Programm ddclient dient als Daemon im Hintergrund gestartet dazu, einem DynDNS Serviceanbieter die Änderung der eigenen IP mitzuteilen, damit der dortige DNS-Servereintrag entsprechend automatisch aktualisiert werden kann. Dieses keline Hilfsprogramm wird heute von den meisten Linux Distributionen mitgeiefert, ist jedoch dort nicht immer auf dem aktuellsten Stand. Daher kann man es auch oft in alternativen Software-Repositories für diverse Paetmanager in aktuelleren Versionen finden, z.B. für openSUSE im Guru-Repository oder sich bei den meisten DynDNS-Anbietern auch über die dortige Liste der unterstützten IP-Abgleich-Clients als Tarball herunterladen um es dann manuell zu installieren.
Konfiguration
Die Konfiguration von ddclient erfolgt je nach distribution über die Anpassung der Datei
/etc/ddclient.conf
oder
/etc/ddclient/ddclient.conf
die durch die bereits in ihr selbst enthaltenen Kommentare im Auslieferungszustand ausreichend dokumentiert sein dürfte um die entsprechenden Anpassungen durchführen zu können. Als Beispiel wird hier der DNS-Serviceprovider DynDNS.org aufgeführt.
Webadresse
Du brauchst eine Adresse für Deine Webseite, die auf Deinem Rechner im Apache liegt, und Deine IP ändert sich ständig, weil Dein Provider Dich alle 24 Stunden vom Netz trennt. Ein Script zur Wiedereinwahl und einen Cron-Job dafür hast Du.
Also gehst Du auf https://www.dyndns.com/ und legst einen Benutzernamen, mit Passwort für Dich an. Unter "Add Host Services" > "Add Dynamic DNS Host" wählst Du Dir einen Namen aus.
http://www.noreasontodie-music.com/linux/DynDNS.jpg
Es sei darauf hingewiesen, dass ich nicht Besitzer des Accountes "yehudi" bei DynDNS bin, und dieser genauso wie meine IP ausgeblendet ist.
Unter "My Services" > runter scrollen > "Host Level Services" ist jetzt Deine gewählte Adresse zu finden. Dort klickst Du auf den Link "Dynamic DNS" Und dort ist Deine derzeitige IP und die IP, mit welcher Deine Webadresse verbunden ist. Mit Modify Host" kannst Du die IP aktualisieren. Wenn Du nun in einem neuen Browserfenster die von Dir gewählte Adresse eingibst, zeigt der Browser Dir die auf Deinem Webserver liegende index.html Datei an. Da Du aber nicht immer um 4:00Uhr Nachts aufstehen willst, um per Hand die Ip zu aktualisieren gibt es z.B. ddclient.
Installation von ddclient
Woher nun ddclient nehmen? Wenn Du SuSE hast, gibt es die Weg das über YAST von der DVD/CD zu installieren, oder die schnellere Möglichkeit, über apt/Synaptic das Programm mal schnell zu installieren. Bei Debian oder Verwandten Linuxen sollte das auch über apt gehen.
Über die grafischen Oberflächen braucht einfach nur "ddclient" eingegeben werden oder bei der mit Konsole als root
apt-get install ddclient
oder
smart install ddclient
und enter.
Konfiguration von ddclient
Ein Umsteiger mag nun erwarten, dass er über die Taskleiste ein Programm findet, welches "ddclient" heißt. Um möglichen Enttäuschungen vorzubeugen, weise ich darauf hin, dass wir uns hier mit einer steril aussehenden Konfigurationsdatei /etc/ddclient.conf befassen müssen, die in diesem Fall bis zum oberen Rande mit Beispiel-Konfigurationen gefüllt ist, dass man erst mal gar nicht weiss, wo man anfangen soll. Mein Tipp wäre erst mal die Datei in einen Ordner im z.B. homeverzeichnis zu sichern. Nun öffnen wir das gute Stück in dem wir in der Konsole als root mit dem Befehl "mc", oder aber wie ich das momentan gerne mache, den Konqueror auch als root mit dem Befehl "konqueror" öffnen. In beiden Fällen müssen wir erst mal in das Verzeichnis /etc/ browsen. In erstem Fall öffnen wir die Datei ddclient.conf mit bearbeiten. Im zweiten Fall mit der rechten Maustaste und öffne mit Kate. Den Inhalt einfach mal komplett löschen, und dann folgendes einsetzen:
###################################################################### ## ## Define default global variables with lines like: ## var=value [, var=value]* ## These values will be used for each following host unless overridden ## with a local variable definition. ## ## Define local variables for one or more hosts with: ## var=value [, var=value]* host.and.domain[,host2.and.domain...] ## ## Lines can be continued on the following line by ending the line ## with a \ ## ###################################################################### daemon=300 # check every 300 seconds syslog=yes # log update msgs to syslog #mail=root # mail all msgs to root #mail-failure=root # mail failed update msgs to root pid=/var/run/ddclient.pid # record PID in file. # #use=watchguard-soho, fw=192.168.111.1:80 # via Watchguard's SOHO FW #use=netopia-r910, fw=192.168.111.1:80 # via Netopia R910 FW #use=smc-barricade, fw=192.168.123.254:80 # via SMC's Barricade FW #use=netgear-rt3xx, fw=192.168.0.1:80 # via Netgear's internet FW #use=linksys, fw=192.168.1.1:80 # via Linksys's internet FW #use=maxgate-ugate3x00, fw=192.168.0.1:80 # via MaxGate's UGATE-3x00 FW #use=elsa-lancom-dsl10, fw=10.0.0.254:80 # via ELSA LanCom DSL/10 DSL Router #use=elsa-lancom-dsl10-ch01, fw=10.0.0.254:80 # via ELSA LanCom DSL/10 DSL Router #use=elsa-lancom-dsl10-ch02, fw=10.0.0.254:80 # via ELSA LanCom DSL/10 DSL Router #use=alcatel-stp, fw=10.0.0.138:80 # via Alcatel Speed Touch Pro #use=xsense-aero, fw=192.168.1.1:80 # via Xsense Aero Router #use=allnet-1298, fw=192.168.1.1:80 # via AllNet 1298 DSL Router #use=3com-oc-remote812, fw=192.168.0.254:80 # via 3com OfficeConnect Remote 812 #use=e-tech, fw=192.168.1.1:80 # via E-tech Router #use=cayman-3220h, fw=192.168.0.1:1080 # via Cayman 3220-H DSL Router # #fw-login=admin, fw-password=XXXXXX # FW login and password # ## To obtain an IP address from FW status page (using fw-login, fw-password) #use=fw, fw=192.168.1.254/status.htm, fw-skip='IP Address' # found after IP Address # ## To obtain an IP address from Web status page (using the proxy if defined) #use=web, web=checkip.dyndns.org/, web-skip='IP Address' # found after IP Address # #use=ip, ip=127.0.0.1 # via static IP's #use=if, if=eth1 # via interfaces ##Funktioniert nicht mit dem ip Update #use=if, if=ppp0 # für DSL use=web # via web protocol=dyndns2 # Standardprotokoll server=members.dyndns.org # Standardserver login=Dein Login # Standard-Login für den DynDNS-Account password=Dein Passwort # Standard-Passwort wildcard=yes # add wildcard CNAME? server=members.dyndns.org, \ protocol=dyndns2, \ Deine dyndns Adresse
Im Prinzip brauchen hier nur Drei Einträge vollzogen werden, Dein Login, Dein Passwort und Deine DynDNS Adresse. Das wars.
Der Eintrag
use=web, web=checkip.dyndns.org/, web-skip='IP Address' # found after IP Address
oder
use=web # via webdient
dazu, um von aussen zu gucken, welche "Hausnummer" also IP Dein Rechner von außen hat. Alle anderen Einträge würden nachgucken, welche "Hausnummer" - IP Dein Rechner von innen hat.
Diese Konfiguration funktioniert wenn der Rechner per Ethernet über ein DSL Modem im Netz hängt.
Andere Konfigurationen können gerne an dieser Stelle eingefügt werden. z.B. über einen Router. Nutzt Dein Provider einen gibt es auch Probleme, denn da würde immer die Homepage-Adresse auf den Proxyseerver laufen.
Um http://yehudi.de auch unter http://www.yehudi.de erreichbar zu machen müssen zwei Punkte beachtet werden. Einmal oben in der Grafik bei "Enable Wildcard" ein Häckchen, und die Option
wildcard=yes # add wildcard CNAME?
dabei muss diese Zeile
use=web # via web
verwendet werden.
Die Datei sollte zwecks des Passwortes nur rootrechte haben, dazu geben wir in der Konsole
chmod -Rc a-rwx /etc/ddclient.conf
als root ein.
Starten von ddclient
Unter root in der Konsole geben wir
ddclient start
ein. Damit startet ddclient.
Weitere Befehle sind:
ddclient stop killall -9 ddclient
Starten von ddclient bei Systemstart
Normalerweise wird in den gängigen Linux Distributionen bereits ein entsprechendes Startscript mitgeliefert, ebenso wie in den Versionen aus den diversen Drittanbieter-Repositories. Für openSUSE (oder nach entsprechender Anpassung auch anderen Linux Distributionen) kann man auch folgendes Startscript nutzen, dazu folgen wir oc2pus seinen Anweisungen:
1.) dieses script nach /etc/init.d/ddclient kopieren
#!/bin/sh # # init.d/ddclient # ### BEGIN INIT INFO # Provides: ddclient # Required-Start: $named $network # Required-Stop: # Default-Start: 3 5 # Default-Stop: # Description: ddclient provides support for updating dynamic DNS services. ### END INIT INFO . /etc/rc.status rc_reset [ -f /etc/ddclient.conf ] || exit 0 PATH=/usr/sbin:${PATH} COLUMNS=9999 export PATH COLUMNS program=ddclient case "$1" in start) echo -n "Starting ddclient: " # ddclient -daemon 300 ddclient -v rc_status -v ;; stop) echo -n "Shutting down ddclient: " kill `ps -aef | awk '/[ \/]perl.*ddclient/ { print $2}'` rc_status -v ;; restart) $0 stop $0 start rc_status ;; status) pids=`ps -aef | awk '/[ \/]perl.*ddclient/ { print $2}'` if test "$pids" then for p in $pids do echo "$program (pid $p) is running" done else echo "$program is stopped" fi rc_status -v1 ;; *) echo "Usage: ddclient {start|stop|restart|status}" exit 1 esac exit 0
2.)
cd /etc/init.d insserv ddclient
3.)
cd /sbin ln -s ../etc/init.d/ddclient rcddclient
jetzt wird der ddclient in runlevel 3 und 5 gestartet oder mit rcddclient start
Dieser Abschnitt stammt von oc2pus aus diesem Thread: http://www.linux-club.de/viewtopic.php?p=90597
Suche von Fehlerquellen
Hierzu können zwei Befehle genutzt werden:
cat /etc/ddclient.cache
und
tail -20 /var/log/messages