Kein Update mit ddclient und DynDns[gelöst]

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
waeschdl
Beiträge: 34
Registriert: 17.02.2007 11:39:19

Kein Update mit ddclient und DynDns[gelöst]

Beitrag von waeschdl » 02.12.2007 16:33:00

Hi Forum,

ich weiss, dass das Thema schon oft durchgekaut wurde.
Ich habe schon viele Beiträge gelesen aber bisher leider keine Lösung gefunden.
Mein Problem sieht wie folgt aus:

1. Ich habe ddclient über apt-get installiert und eingerichtet.
2. Mein Config in ddclient.conf sieht so aus:

Code: Alles auswählen

# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf
pid=/var/run/ddclient.pid
syslog=yes
daemon=600
protocol=dyndns2
use=web
server=members.dyndns.org
login=xxx
password=xxx
xxx.dyndns.org
3.Mein Rechner steht hinter einem Router.
4.Ich sehe im LOG meine Router zugriffe auf die DynDns Seite, aber die IP wird nicht aktualisiert.
5.Im Syslog sehe ich keine Einträge.

Vielleicht habt ihr noch eine Idee, was ich machn kann.
Danke

Gruß
waeschdl
Zuletzt geändert von waeschdl am 05.12.2007 16:11:30, insgesamt 2-mal geändert.

Benutzeravatar
brill
Beiträge: 354
Registriert: 04.02.2005 10:37:34
Lizenz eigener Beiträge: GNU General Public License

Beitrag von brill » 02.12.2007 17:07:42

kann nicht dein ROuter einfach die Dyndns aktuallisierung übenehmen ?

Brill

Benutzeravatar
Baer
Beiträge: 373
Registriert: 08.09.2004 17:09:13
Wohnort: Zürich

Beitrag von Baer » 02.12.2007 17:12:25

hallo waeschdl

Ich kann dir leider auch nicht weiter helfen, aber ich würde die Zugangsdaten zu deinem dd Account nicht Publizieren.

Grüässli Urs

waeschdl
Beiträge: 34
Registriert: 17.02.2007 11:39:19

Beitrag von waeschdl » 02.12.2007 17:32:03

Ups, wie blöd von mir. Naja, hab die Daten geändert.
Mein Router kann zwar ein DynDNS-Abgleich, aber ich habe kein DSL sondern einen KabelBW-Zugang.
Bei KabelBW bekommt man nur alle paar Wochen einen neu IP und so ist mein DynDns-Account immer
deaktiviert worden. Deshalb möchte ich per ddclient die Aktualisierung per Hand anstossen.
Aber momentan geht garnix!

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 02.12.2007 18:01:19

hi,

starte ddclient doch mal von Hand mit der -debug Option,
Eigentlich ist der doch recht gesprächig.
Beware of programmers who carry screwdrivers.

waeschdl
Beiträge: 34
Registriert: 17.02.2007 11:39:19

Beitrag von waeschdl » 02.12.2007 18:09:17

hi cosmac,

auf diese Idee bin ich noch nicht gekommen.
Was noch komisch ist, mit ddclient stop kann ich den Client nicht stoppen.
Ich kann ihn nur mit kill stoppen. Wenn ich dann ddclient -debug eingebe,
dann bekomme ich leider keine Debug-Meldungen.

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 02.12.2007 18:36:56

seltsames Teil :? Das stoppen vertagen wir mal.

Beim -debug hatte ich vergessen, dass er als daemon läuft.
So sollte er Meldungen nach /var/log/syslog schreiben:

Code: Alles auswählen

# ddclient -debug -syslog -priority debug
Beware of programmers who carry screwdrivers.

waeschdl
Beiträge: 34
Registriert: 17.02.2007 11:39:19

Beitrag von waeschdl » 02.12.2007 18:47:39

Soll ich dies in die ddclient.conf einfügen?
# ddclient -debug -syslog -priority debug

Ich habe ja schon syslog=yes in der Conf stehe.
Wenn ich ddclient mit kill beende, dann sehe ich folgenden Eintrag in der Syslog:
ddclient[2323]: WARNING: caught SIGTERM; exiting

Vielleicht sagt euch das etwas??

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 02.12.2007 22:28:41

das sagt mir: ja aber?! (wtf sagt man ja nicht).
Da müssen doch noch mehr Meldungen im syslog sein.
Vielleicht in einem älteren? syslog.0, syslog.1.gz?

Die Zeile
# ddclient -debug -syslog -priority debug
war so als Kommandozeile gedacht, '#' steht für den root-Prompt.
Keine Ahnung, wie man das in ddclient.conf angibt.
Beware of programmers who carry screwdrivers.

waeschdl
Beiträge: 34
Registriert: 17.02.2007 11:39:19

Beitrag von waeschdl » 02.12.2007 23:12:34

Ok, ich habe es jetzt hinbekommen.
Allerdings habe ich kurzer Hand den Client neu installiert.
Jetzt funktioniert auch der Debug-Modus und die aktualisierung.
Wenn ich aber in der Conf den Eintrag daemon=300 mache, geht nix mehr!

Hab ich noch ne andere Möglichkeit das Update zeitlich zu steuern?

fuzzy
Beiträge: 1021
Registriert: 04.10.2003 12:15:52

Beitrag von fuzzy » 03.12.2007 11:17:18

Hallo waeschdl,

so klappt das bei mir hinter einem Router:

Code: Alles auswählen

deb:/home/fuzzy# cat /etc/ddclient.conf

# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf

  syslog=yes
  pid=/var/run/ddclient.pid
  protocol=dyndns2
  use=web, web=checkip.dyndns.org/, web-skip='IP Address' # found after IP Address
  server=members.dyndns.org
  login=XXX
  password='yyy'
  ZZZ.dyndns.org

Code: Alles auswählen

deb:/home/fuzzy# grep daemon_  /etc/init.d/ddclient
daemon_interval=300
OPTIONS="-daemon $daemon_interval -syslog"
ist der daemon-Eintrag evetuell bei Dir doppelt und stört? ...oder habe ich eine ungewöhnliche Konfiguration?

Gruß fuzzy

waeschdl
Beiträge: 34
Registriert: 17.02.2007 11:39:19

Beitrag von waeschdl » 03.12.2007 22:14:45

Hallo Fuzzy,

danke für deine Hilfe.
Unsere Konfigs unterscheiden sich eigentlich nur durch folgende beiden Zeilen.
Die syslog-Zeile habe ich ergänzt. Bei der "use"-Zeile habe ich noch nichts geändert.
Das Update hat ja gestern einmal funktioniert.

Code: Alles auswählen

syslog=yes 
use=web, web=checkip.dyndns.org/, web-skip='IP Address' # found after IP Address 
Wie kann ich denn feststellen, ob das Teil als Deamon läuft?
Im Script /etc/init.d/ddclient sind alle Einträge nur einmal vorhanden und sehen so
aus wie deine.
Folgendes ist mir aber noch aufgefallen:

Code: Alles auswählen

# Evaluate the config for the Debian scripts
run_daemon=false
daemon_interval=300
Das "flase" habe ich auf "true" gesetzt.
Aber wie kann ich jetzt feststellen ob sich was geändert hat. Wenn ich "ddclient" eingebe passiert einfach
nix. Keine Negativmeldung oder keine Bestätigung. Kein Syslog-Eintrag!!

Danke für eure Hilfe.
Gruß
waeschdl

fuzzy
Beiträge: 1021
Registriert: 04.10.2003 12:15:52

Beitrag von fuzzy » 03.12.2007 23:33:23

Hallo waeschdl,

der run_daemon ist bei mir auf "true".
Also ich habe den ddclient einmal gestoppt, dann gestartet und kurz danach 2 mal mit "ps aux" geschaut:

Code: Alles auswählen

deb:/home/fuzzy# /etc/init.d/ddclient stop
Stopping dynamic DNS service update utility: ddclient.

deb:/home/fuzzy# /etc/init.d/ddclient start
Starting dynamic DNS service update utility: ddclient.

deb:/home/fuzzy# ps aux | grep [d]dclient
root      2957  0.0  2.4  24112  6244 ?        S    23:19   0:00 ddclient - sleeping for 300 seconds
deb:/home/fuzzy# ps aux | grep [d]dclient
root      2957  0.0  2.4  24112  6244 ?        S    23:19   0:00 ddclient - sleeping for 290 seconds
syslog:

Code: Alles auswählen

deb:/home/fuzzy# grep ddclient /var/log/syslog
Dec  3 10:39:28 deb ddclient[3979]: SUCCESS:  updating ZZZ.dyndns.org: good: IP address set to 111.222.333.444
Dec  3 16:25:08 deb ddclient[3979]: SUCCESS:  updating ZZZ.dyndns.org: good: IP address set to 222.333.444.555
Dec  3 23:19:10 deb ddclient[3979]: WARNING:  caught SIGTERM; exiting
Hilft Dir das ein wenig? bzw. ändert sich etwas durch /etc/init.d/ddclient [start|stop]? und "schlägt" sich das irgenwie in den Prozessen bzw. Logs nieder?

Gruß fuzzy

reox
Beiträge: 2558
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von reox » 03.12.2007 23:35:07

Ich hab mit dem Programm irgendwie keine guten Erfahrungen gemacht, aber mit einem kleinen Script schon

Code: Alles auswählen

#!/bin/bash
# robert tulke, rt@debianer.org

domain=user.sonstwas.org
user=xxxx
pass=yyyy

oldip=`ping -c 1 $domain | grep "PING" | awk '{print $3}' | sed 's/://;s/(//;s/)//'`
newip=`wget -q -O - http://checkip.dyndns.org/index.html | awk {'print $6'} | sed 's/<.*$//'`

if [ $oldip = $newip ]; then
        echo "No new IP ($newip)";
        exit 0
else
        echo "old IP $oldip";
        echo "new IP $newip";
        result=`wget -q http://$user:$pass@members.dyndns.org/nic/update?hostname=$domain -q -O - | awk {'print $2'}`
        echo "set IP $result"
        exit 0
fi
das läuft bei mir besser als jedes Programm^^[/quote]

waeschdl
Beiträge: 34
Registriert: 17.02.2007 11:39:19

Beitrag von waeschdl » 04.12.2007 17:56:04

Hallo,

Vielen Dank erst mal für die vielen Tips. Folgendes habe ich jetzt versucht:

@fuzzy:
Ich habe den daemon auch auf true gesetzt.
Beim Stoppen des ddclient ist mir dann aufgefallen, dass er als daemon nicht gestoppt wird.
Mit ps -aux sehe ich ihn immer noch laufen und die sleeping Zeit herunterzählen.
Im Syslog sind witerhin noch keine Meldungen vom ddclient zu sehen!
Ich kapier's nicht!!

@reox:
Danke für den Tip mit dem Script.
Jetzt aber ne blöde Anfängerfrage: Wie führe ich das Teil aus?

Danke
Gruß
Waeschdl

waeschdl
Beiträge: 34
Registriert: 17.02.2007 11:39:19

Beitrag von waeschdl » 04.12.2007 18:02:01

Kleiner Nachtrag:

Ich habe das Script noch mal ein bissl genauer angeschaut und auch ausführen können.
Mein Problem ist aber, dass ich nur alle paar Wochen nen neue IP von meinem ISP zugewiesen
bekomme. Bis dahin ist meist mein DynDns-Account wieder deaktiviert.
Das Script schaut nun vor der Aktualisierung erst ob's ne neue IP gab und dann wird erst
aktualisiert.
Ich brauche etwas, dass regelmäßige meine IP bei DynDns einträgt, obwohl die IP sich nicht unbedingt
geändert hat. Ich meinte mit ddclient geht das. Korrigiert mich, wenn ich mich irre.

Danke
Gruß
waeschdl

fuzzy
Beiträge: 1021
Registriert: 04.10.2003 12:15:52

Beitrag von fuzzy » 05.12.2007 10:49:31

Hallo waeschdl,

mir würde sonst nur einfallen, in der /etc/ddclient.conf " use=web, ...." durch "use=if, if=eth0" zu ersetzen, dann

Code: Alles auswählen

/etc/init.d/ddclient restart
und wieder die "richtige" /etc/ddclient.conf" einzusetzen und wieder ddclient neustarten...
Sollte das per Hand klappen, kannst Du das ja auch automatisieren :wink:

syslog nach diesen Aktionen sieht bei mir so aus:

Code: Alles auswählen

deb:/home/fuzzy# grep ddcl /var/log/syslog

Dec  5 10:37:48 deb ddclient[1232]: WARNING:  caught SIGTERM; exiting
Dec  5 10:37:49 deb ddclient[26553]: SUCCESS:  updating ZZZ.dyndns.org: good: IP address set to 192.168.0.2
Dec  5 10:38:19 deb ddclient[26553]: WARNING:  caught SIGTERM; exiting
Dec  5 10:38:20 deb ddclient[26583]: SUCCESS:  updating ZZZ.dyndns.org: good: IP address set to 333.444.555.666
Das sollte aus meiner Sicht den DynDns-Account aktiv halten, oder liege ich da falsch?

Gruß fuzzy

waeschdl
Beiträge: 34
Registriert: 17.02.2007 11:39:19

Beitrag von waeschdl » 05.12.2007 11:37:59

Hallo Fuzzy,

super Idee so klappt es einwandfrei!
Ich mach den Restart jetzt mit "ddclient restart -file" und habe zwei Files.
Ein File mit use=if und ein File mit use=web.
Jetzt nur noch die Frage, wie packe ich die Zwei befehle in ein Scipt und
vorallem wie bekomme ich eine 30sek.-Pause zwischen den Updates.
Die Pause verlang nämlich Dyndns.

Gruß
waeschdl

fuzzy
Beiträge: 1021
Registriert: 04.10.2003 12:15:52

Beitrag von fuzzy » 05.12.2007 11:56:20

Code: Alles auswählen

deb:/usr/local/bin# cat test-script
#!/bin/sh

  /bin/date
  /bin/sleep 31s
  /bin/date

Code: Alles auswählen

deb:/usr/local/bin# test-script
Mi 5. Dez 11:52:16 CET 2007
Mi 5. Dez 11:52:47 CET 2007
:wink:
Gruß fuzzy

waeschdl
Beiträge: 34
Registriert: 17.02.2007 11:39:19

Beitrag von waeschdl » 05.12.2007 16:11:02

Hallo an alle Helfer!

Ich habe es endlich geschafft!
Dank fuzzy ist mein Problem endlich gelöst!
Ich habe nun zwei ddclient-Configs.
Eine ddclient_eth.conf bei der "use=if" eingestellt ist.
Eine ddclient_web.conf bei der "use=we" eingestellt ist.
Das Update führe ich dann als CronJob aus:

Code: Alles auswählen

# m h  dom mon dow   command
51 1 * * * ddclient restart -file /etc/ddclient_eth.conf
55 1 * * * ddclient restart -file /etc/ddclient_web.conf
Die Option "-file" ermöglicht die Angabe von Config-Files.

Das ganze Funktioniert einwandfrei!
Vielen Dank nochmals an alle Helfer.

Gruß
waeschdl

Antworten