Ddclient: Unterschied zwischen den Versionen
Yehudi (Diskussion | Beiträge) |
Yehudi (Diskussion | Beiträge) (→Starten von ddclient bei Systemstart: DHCP und DNS) |
||
Zeile 235: | Zeile 235: | ||
'''Code:''' | '''Code:''' | ||
tail -20 /var/log/messages | tail -20 /var/log/messages | ||
− | + | ||
+ | [[DHCP und DNS|zurück zu DHCP und DNS]] | ||
[[Category:DHCP und DNS]] | [[Category:DHCP und DNS]] |
Version vom 11. Januar 2007, 12:00 Uhr
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.
Inhaltsverzeichnis
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