Ddclient

Aus Linupedia.org
Wechseln zu: Navigation, Suche

Autor: Yehudi

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.


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 Konsole

Code:

apt-get 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:

Code:

######################################################################
##
## 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 Code:

use=web, web=checkip.dyndns.org/, web-skip='IP Address' # found after IP Address

oder Code:

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 Code:

wildcard=yes                       # add wildcard CNAME?

dabei muss diese Zeile Code:

use=web               # via web

verwendet werden.

Die Datei sollte zwecks des Passwortes nur rootrechte haben, dazu geben wir in der Konsole Code:

chmod -Rc a-rwx /etc/ddclient.conf

als root ein.


4. Schritt - Starten von ddclient Unter root in der Konsole geben wir Code:

ddclient start

ein. Damit startet ddclient.

Weitere Befehle sind:

Code:

ddclient stop
killall -9 ddclient

Starten von ddclient bei Systemstart

dazu folgen wir oc2pus seinen Anweisungen:

1.) dieses script nach /etc/init.d/ddclient kopieren

Code:

#!/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

Schritt 5 stammt von oc2pus aus diesem Thread: http://www.linux-club.de/viewtopic.php?p=90597

6. Schritt - Suche von Fehlerquellen

Hierzu können zwei Befehle genutzt werden: Code:

cat /etc/ddclient.cache


und

Code:

tail -20 /var/log/messages

--Yehudi 01:03, 16. Aug 2006 (CEST)