Ddclient: Unterschied zwischen den Versionen
Yehudi (Diskussion | Beiträge) (→Konfiguration von ddclient: interne Links) |
Yehudi (Diskussion | Beiträge) (→Konfiguration von ddclient: interner Link) |
||
Zeile 45: | Zeile 45: | ||
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, so dass man erst mal gar nicht weiss, wo man anfangen soll. | 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, so 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 öffnet man das gute Stück indem man in der Konsole als | Mein Tipp wäre erst mal die Datei in einen Ordner im z.B. homeverzeichnis zu sichern. Nun öffnet man das gute Stück indem man 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 muss man erst mal in das Verzeichnis /etc/ browsen. In erstem Fall öffnet man die Datei ddclient.conf mit "bearbeiten". Im zweiten Fall klickt mit der rechten Maustaste drauf und öffnet sie mit [Kate]. Den Inhalt kann man einfach mal komplett löschen und dann folgendes einsetzen: | + | [[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 muss man erst mal in das Verzeichnis /etc/ browsen. In erstem Fall öffnet man die Datei ddclient.conf mit "bearbeiten". Im zweiten Fall klickt mit der rechten Maustaste drauf und öffnet sie mit [[Kate]]. Den Inhalt kann man einfach mal komplett löschen und dann folgendes einsetzen: |
Version vom 13. Juni 2007, 06:25 Uhr
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 Perl-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 kleine Hilfsprogramm wird heute von den meisten Linux Distributionen mitgeliefert, ist jedoch dort nicht immer auf dem aktuellsten Stand. Daher kann man es auch oft in alternativen Software-Repositories für diverse Paketmanager 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 verwendeter 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
Man braucht eine Adresse für seine Webseite, die auf dem eigenen Rechner im Apache liegt, und die zugewiesene IP ändert sich ständig, weil der genutzte Provider in regelmäßigen Abständen, z. B. alle 24 Stunden, die Verbindung vom Netz trennt. Ein Script zur Wiedereinwahl und einen Cron-Job dafür ist vorhanden oder ddclient wird als daemon genutzt.
Also geht man auf https://www.dyndns.com/ und legt einen Benutzernamen mit Passwort an. Unter "Add Host Services" > "Add Dynamic DNS Host" wählt man sich einen Namen für die Webadresse aus.
Unter "My Services" > runter scrollen > "Host Level Services" ist jetzt die gewählte Adresse zu finden. Dort klickt man auf den Link "Dynamic DNS" Und dort ist die derzeitige IP des Rechners und die IP, mit welcher die Webadresse zur Zeit verbunden ist. Mit Modify Host" kann man die IP aktualisieren. Wenn man nun in einem neuen Browserfenster die vorhin gewählte Adresse eingibt, zeigt der Browser die auf dem lokalen Webserver liegende index.html Datei an. Da man aber nicht immer um 4:00Uhr Nachts aufstehen will um per Hand die Ip zu aktualisieren, gibt es z.B. ddclient.
Installation von ddclient
Woher nun ddclient nehmen? Wenn man openSUSE hat, gibt es den Weg dieses Programm über YaST von der DVD/CD zu installieren, oder die schnellere Möglichkeit, über apt/Synaptic das Programm recht schnell zu installieren. Bei Debian oder damit verwandten Linux Distributionen sollte das auch über apt gehen.
Über die grafischen Oberflächen braucht einfach nur "ddclient" eingegeben werden oder in der Konsole als root
apt-get install ddclient
oder
smart install ddclient
eingeben und auf Enter drücken.
Alternativ kann man sich auch den tarball von http://ddclient.sourceforge.net herunterladen und gemäß dem beiliegenden Readme-File in den beannten Pfad des Systems kopieren und konfigurieren und dann ebenso nutzen wie die per DPKG/RPM/APT/smart/YaST instalierte von dritten Personen fertig gepackte Version.
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, so 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 öffnet man das gute Stück indem man 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 muss man erst mal in das Verzeichnis /etc/ browsen. In erstem Fall öffnet man die Datei ddclient.conf mit "bearbeiten". Im zweiten Fall klickt mit der rechten Maustaste drauf und öffnet sie mit Kate. Den Inhalt kann man 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, den Login-Namen, das Passwort und die DynDNS Adresse (alles aus der Anlage des Accounts auf dyndns.com, was im übrigen mit dyndns.org identisch ist). Das wars dann auch schon.
Der Eintrag
use=web, web=checkip.dyndns.org/, web-skip='IP Address' # found after IP Address
oder
use=web # via web
dient dazu, um von aussen zu gucken, welche "Hausnummer" also IP der Rechner von außen hat. Alle anderen Einträge würden nachgucken, welche "Hausnummer" - IP der 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 der Provider über den man ins Netz geht einen solchen Router so kann es auch Probleme geben, denn da würde eventuell immer die Homepage-Adresse auf den ggf. zum Zuge ommenden Proxyserver des Providers laufen statt auf den eigenen mit der Funktion ja anvisierten Rechner.
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äkchen, 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
Weitere Quellen und Links
- Offizielle ddclient Projekthomepage
- Startscript für ddclient unter SUSE/openSUSE - Modifikation des obigen Scriptes falls die Neu- oder Wiedereinwahl per smpppd Probleme mit der Aktualisierung macht.
Einige unterstützte DynDNS Serviceanbieter
Die Liste stammt aus der Dokumentation von ddclient, den tests nach ist die Aktualität aber nicht wirlich gegeben:
- DynDNS.org (bis zu 5 kostenlose DynDNS Domains,auch statische, wer mehr Domains braucht muss zahlen)
- DNSPark.com
- OrgDNS.org (offenbar nicht mehr aktiv, hat nun wohl andere Inhalte als DynDNS betreffende)
- DSLReports (scheint auch nicht mehr mit den ursprünglichen Diensten aktiv zu sein,zumindest war DynDNS dort nicht diret zu finden)
- Hammernode (offenbar nicht mehr aktiv)
- EasyDNS
- ZoneEdit (bietet ebenso kostenlose DynDNS Domains)
Weiter DynDNS Dienstanbieter die eigene Software statt ddclient nutzen
- SelfHost.de (bietet kostenpflichtig auch .de Domains an, nutzt dazu jedoch ein eigenes Updatetool, welches für Linux, Windows und MacOS erhältlich ist)