[INFO] opendd, ein DynDNS-Client

Hallo!

Ich habe den DynDNS-Anbieter gewechselt und bin jetzt bei TwoDNS.
Leider funktioniert die Aktualisierung nicht:

Code:
root@net1-FB7570:/var/mod/root# opendd -v -c /var/mod/etc/opendd.conf 
-- running OpenDD 0.7.9 in normal mode
dyndns() : Can't read external IP file!
main() : cannot get IP address for update

Woran kann es liegen?

Meine Konfig sieht folgendermassen aus:
Code:
root@net1-FB7570:/var/mod/root# cat /var/mod/etc/opendd.conf
##do not change
cert_path = /tmp/flash/opendd/opendd.pem
runasdaemon = 0
pidfile_path = /var/run/opendd.pid
use_syslog = 1

##accounts
servername = https://update.twodns.de/update?hostname=<domain>&ip=<ipaddr>
hostname = all 
username = [email protected] 
password = <istgeheim> 

##advanced
wildcard = 0
backupmx = 0
offline = 0
 
Ich bekomme die gleiche Fehlermeldung bei spdns.de.
Meine open.cfg
Wäre nett wenn jemand helfen könnte.

Code:
do not change
cert_path = /tmp/flash/opendd/opendd.pem
runasdaemon = 0
pidfile_path = /var/run/opendd.pid
use_syslog = 1

##accounts
servername = https://update.spdns.de/nic/update?hostname=&myip=
hostname = meiedomain.firewall-gateway.com
username = meinedomain
password = 1234567

##advanced
wildcard = 0
backupmx = 0
offline = 0

##depends on make!
use_ssl = 1
 
Ich bekomme die gleiche Fehlermeldung bei spdns.de.
Meine open.cfg
Code:
servername = https://update.spdns.de/nic/update?hostname=&myip=

Versuch mal mit:
Code:
servername = update.spdns.de

EDIT:

Code:
+  /* Get my IP from an /tmp/.opendd.ip */
+  file = fopen("/tmp/.opendd.ip", "r");
+  if (NULL == file) {
+    logmsg(LOG_ERR, "dyndns() : Can't read external IP file!");
Poste mal auch die Ausgaben von:
Code:
ls -la /tmp/.opendd.ip
opendd -v -c /var/mod/etc/opendd.conf
 
Zuletzt bearbeitet:
update.spdns.de
Habe ich eingetragen

Code:
ls -la /tmp/.opendd.ip
ls: /tmp/.opendd.ip: No such file or directory

Code:
opendd -v -c /var/mod/etc/opendd.conf

-- running OpenDD 0.7.9 in normal mode
dyndns() : Can't read external IP file!
main() : cannot get IP address for update
 
Zuletzt bearbeitet:
update.spdns.de
Habe ich eingetragen

Code:
ls -la /tmp/.opendd.ip
ls: /tmp/.opendd.ip: No such file or directory

OK, dann erstelle mal manuell mit touch oder echo (oder gleichwertig) die Datei "/tmp/.opendd.ip", trage in diese Datei mit einem geeigneten Editor (oder gleichwertig) z. B. die IP-Adresse 192.166.177.34 ein, ändere die Rechte dieser Datei mit/in "chmod 666 ..." und führe erneut "opendd -v -c /var/mod/etc/opendd.conf" aus.
 
Gesagt und getan:

ls -l /tmp/.opendd.ip

Code:
-rw-rw-rw-    1 root     root            14 Dec 25 23:40 /tmp/.opendd.ip

opendd -v -c /var/mod/etc/opendd.conf
Code:
-- running OpenDD 0.7.9 in normal mode
main() : getting my ip address : 84.144.114.15
getdyndnshostnames() : no need to update meine adresse.firewall-gateway.com with 84.144.114.15
main() : No hostname(s) to update

Ich habe dann den Router vor der Fritz neu verbinden lassen um eine neue Ip zu bekommen, aber opendd bekommt davon nichts mit obwohl get_ip die neue IP anzeigt.

Aber ich habe auch unter Dyndns von der Fritzbox die gleichen Daten eingetragen und da bekommt spdns die IP sofort mit sobald ich auf Übernehmen klicke und wenn sich die IP ändert dauert es 5-25 Minuten bis die neue IP bei spdns landet.

Aber unter Fritzoberfläche> Internet> Freigaben> Fritzbox Dienste> Internetzugriff> Internetzugriff auf die FRITZ!Box über HTTPS aktiviert > wird aber die interne IP angezeigt

Schon mal vielen Dank für deine Hilfe
 
Zuletzt bearbeitet:
Ich habe dann den Router vor der Fritz neu verbinden lassen um eine neue Ip zu bekommen, aber opendd bekommt davon nichts mit obwohl get_ip die neue IP anzeigt.
Auch kein Hinweis "no need to update", wenn Du opendd manuell ausführst?
Aber ich habe auch unter Dyndns von der Fritzbox die gleichen Daten eingetragen und da bekommt spdns die IP sofort mit sobald ich auf Übernehmen klicke ...
Naja, wenn Du in deinem (W)LAN zwei ddns-Clients für ein und den selben ddns-account benutzt, was soll da opendd noch updaten wenn der AVM-ddns-Client der FritzBox wegen der Konfiguration schneller ist?
... und wenn sich die IP ändert dauert es 5-25 Minuten bis die neue IP bei spdns landet.
Das könnte evtl. etwas mit dem TTL (time to live) zu tun haben, den dein ddns-Provider benutzt.
 
Auch kein Hinweis "no need to update", wenn Du opendd manuell ausführst?
.

Nein, kam die gleiche Ausgabe und jetzt kommt ein andere Fehlermeldung, siehe ganz unten.

Das mit dem Eintrag in der Fritzbox war nur Zufall, denn hatte vergessen zu löschen.

Aber wenn ich ihn deaktiviere wird die IP bei spdns nicht mehr aktualisiert.

Nun kommt noch dazu das die /tmp/.opendd.IP nach ein Reboot weg ist und nicht neu angelegt wird.
Das die .opendd.IP nach dem Reboot weg ist ist mir klar, ist schließlich ein tmp Verzeichnis.

Ich habe jetzt in der onlinechanged folgendes eingetragen:

Code:
sleep 60
   echo $(get_ip --stun) > >/tmp/.opendd.ip
   chmod 666 /tmp/.opendd.ip
   opendd  -c  /var/mod/etc/opendd.conf

unter Start und online und in der syslog finde ich das;
Code:
Jan  1 01:02:20 fritz user.notice ONLINECHANGED[2407]: [online] executing /etc/onlinechanged/20-opendd
Jan  1 01:02:21 fritz daemon.info opendd[3886]: -- running OpenDD 0.7.9 in normal mode
Jan  1 01:02:21 fritz daemon.info opendd[3886]: main() : getting my ip address : 84.144.126.52
Jan  1 01:02:21 fritz daemon.info opendd[3886]: dyndns() : Setting SSL trust certificate store to /tmp/flash/opendd/opendd.pem
Jan  1 01:02:21 fritz daemon.err opendd[3886]: dyndns() : cannot create socket : (null)
Jan  1 01:02:21 fritz daemon.err opendd[3886]: main() : dyndns() exit abnormally
Jan  1 01:02:21 fritz user.notice ONLINECHANGED[2407]: [online]  * Running OpenDD ... done.
Jan  1 01:02:21 fritz daemon.info opendd[3915]: -- running OpenDD 0.7.9 in normal mode
Jan  1 01:02:21 fritz daemon.info opendd[3915]: main() : getting my ip address : 84.144.126.52
Jan  1 01:02:21 fritz daemon.info opendd[3915]: dyndns() : Setting SSL trust certificate store to /tmp/flash/opendd/opendd.pem
Jan  1 01:02:21 fritz daemon.err opendd[3915]: dyndns() : cannot create socket : (null)
Jan  1 01:02:21 fritz daemon.err opendd[3915]: main() : dyndns() exit abnormally

Wenn ich jetzt den Befehl manuell ausführe kommt die gleiche Fehlermeldung:
Code:
opendd -v -c  /var/mod/etc/opendd.conf

-- running OpenDD 0.7.9 in normal mode
main() : getting my ip address : 84.144.126.52
dyndns() : Setting SSL trust certificate store to /tmp/flash/opendd/opendd.pem
dyndns() : cannot create socket : (null)
main() : dyndns() exit abnormally

Welche socket Datei wird hier vermißt und kann ich sie nicht manuell anlegen?
 
Zuletzt bearbeitet:
Code:
opendd -v -c  /var/mod/etc/opendd.conf

dyndns() : Setting SSL trust certificate store to /tmp/flash/opendd/opendd.pem
Poste mal die anonymisierte Ausgabe von:
Code:
cat /var/mod/etc/opendd.conf
und die Ausgabe von:
Code:
ls -la /tmp/flash/opendd/opendd.pem

EDIT:

Wenn Du auf deiner Box ldd installiert hast, dann poste auch die Ausgabe von:
Code:
ldd $(which opendd)
und wenn nicht, dann aus deinem Build-System, die Ausgabe von:
Code:
readelf -d ./opendd | grep -i needed
 
Zuletzt bearbeitet:
cat /var/mod/etc/opendd.conf
Code:
##do not change
cert_path = /tmp/flash/opendd/opendd.pem
runasdaemon = 0
pidfile_path = /var/run/opendd.pid
use_syslog = 1

##accounts
servername = update.spdns.de
hostname = meineip.firewall-gateway.com
username = meineip
password = 123456

##advanced
wildcard = 0
backupmx = 0
offline = 0

##depends on make!
use_ssl = 1
mailfrom = "opendd" 
##email
mailto = [email protected]
smtpservername = mail.gmx.net
smtpserverport = 465
smtpauthuser = [email protected]
smtpauthpwd = 123456
mailretry = 2
mailtimeout = 20

ls -la /tmp/flash/opendd/opendd.pem
Code:
-rw-r--r--    1 root     root             1 Dec 21 14:06 /tmp/flash/opendd/opendd.pem

readelf -d ./opendd | grep -i needed
Code:
0x00000001 (NEEDED)                     Gemeinsame Bibliothek [libcrypto.so.0.9.8]
 0x00000001 (NEEDED)                     Gemeinsame Bibliothek [libssl.so.0.9.8]
 0x00000001 (NEEDED)                     Gemeinsame Bibliothek [libgcc_s.so.1]
 0x00000001 (NEEDED)                     Gemeinsame Bibliothek [libc.so.0]
 
Zuletzt bearbeitet:
Code:
##depends on make!
use_ssl = 1
mailfrom = "opendd" <[email protected]>
##email
mailto = <####>@gmx.de
smtpservername = mail.gmx.net
smtpserverport = 465
smtpauthuser = [email protected]
smtpauthpwd = 123456
mailretry = 2
mailtimeout = 20
Versuch mal als Test, mit diesen config-Dateien:
Code:
##do not change
cert_path = /tmp/flash/opendd/opendd.pem
runasdaemon = 0
pidfile_path = /var/run/opendd.pid
use_syslog = 1

##accounts
servername = update.spdns.de
hostname = meineip.firewall-gateway.com
username = meineip
password = 123456

##advanced
wildcard = 0
backupmx = 0
offline = 0

##depends on make!
use_ssl = 1
#mailfrom = "opendd" <[email protected]>
##email
#mailto = <###>@gmx.de
#smtpservername = mail.gmx.net
#smtpserverport = 465
#smtpauthuser = [email protected]
#smtpauthpwd = 123456
#mailretry = 2
#mailtimeout = 20
und:
Code:
##do not change
cert_path = /tmp/flash/opendd/opendd.pem
runasdaemon = 0
pidfile_path = /var/run/opendd.pid
use_syslog = 1

##accounts
servername = update.spdns.de
hostname = meineip.firewall-gateway.com
username = meineip
password = 123456

##advanced
wildcard = 0
backupmx = 0
offline = 0

##depends on make!
use_ssl = 0
#mailfrom = "opendd" <[email protected]>
##email
#mailto = <####>@gmx.de
#smtpservername = mail.gmx.net
#smtpserverport = 465
#smtpauthuser = [email protected]
#smtpauthpwd = 123456
#mailretry = 2
#mailtimeout = 20
 
Zuletzt bearbeitet:
wärst so lieb in deinem Zitat und deinen Config Beispiele die Stelle zu ändern wo meine echte Email drin steht, hatte ich übersehen, Danke.

Emaileinträge auskommentieren hatte keinen Einfluss
Das SSL war Schuld, ohne bekomme ich diese erfreuliche Meldung:
Code:
-- running OpenDD 0.7.9 in normal mode
main() : getting my ip address : 79.242.82.03
dyndns() : connected to update.spdns.de:80
dyndns() : GET /nic/update?system=dyndns&hostname=meineip.firewall-gateway.com&wildcard=OFF&backmx=NO&offline=NO&myip=79.242.82.03 HTTP/1.0
listen_response() : HTTP/1.1 200 OK
listen_response() : Date: Fri, 26 Dec 2014 17:26:07 GMT
listen_response() : Server: Apache
listen_response() : Content-Location: update.php
listen_response() : Vary: negotiate,Accept-Encoding,User-Agent
listen_response() : TCN: choice
listen_response() : Set-Cookie: PHPSESSID=f22f0a526cb014182b64daacc19e2055; path=/
listen_response() : Expires: Thu, 19 Nov 1981 08:52:00 GMT
listen_response() : Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
listen_response() : Pragma: no-cache
listen_response() : Set-Cookie: PHPSESSID=d50e6946e8a30623e87a3f56bdfc7504; path=/
listen_response() : Strict-Transport-Security: max-age=3600;
listen_response() : Content-Length: 18
listen_response() : Connection: close
listen_response() : Content-Type: text/html
listen_response() : good 79.242.82.83
listen_response() : The update was successful, and the hostname is now updated.
listen_response() : cannot send mail report
dyndns() : connection closed
main() : dyndns() exit normally

Man, ich danke dir schon mal für deine Hartnäckigkeit, vielen Dank.

Aber die /tmp/.opendd.ip existiert weiterhin nicht, wenn ich sie vorher nicht selbst mit:
Code:
echo $(get_ip --stun)>/tmp/.opendd.ip
erzeuge, was ja auch logisch ist da sie von /etc/init.d/rc.opendd nach dem generieren und auslesen wieder gelöscht wird.

Ich habe die WAN-IP eben neu erzwungen und warte, wann opendd es spdns mitteilt.

Melde mich gleich wieder.

Edit:
Leider passiert nichts, aber nach ein Reboot der Box ist die neue IP bei spdns.
Ich werde jetzt mal folgende Befehl in die onlinechanged setzen.
Code:
/etc/init.d/rc.opendd cron
Und weiter berichten.
 
Zuletzt bearbeitet:
Das SSL war Schuld, ohne bekomme ich diese erfreuliche Meldung:
Code:
listen_response() : The update was successful, and the hostname is now updated.
dyndns() : connection closed
main() : dyndns() exit normally

Ich habe die WAN-IP eben neu erzwungen und warte, wann opendd es spdns mitteilt.

Leider passiert nichts, aber nach ein Reboot der Box ist die neue IP bei spdns.
Ich werde jetzt mal folgende Befehl in die onlinechanged setzen.

Hat das Erzwingen der WAN-IP das onlinechanged-Ereignis ausgelöst? Ich denke nicht, dass Du den Befehl in die onlinechanged-Datei eintragen musst. Warte mal ab bis dein ISP oder deine FritzBox die Zwangstrennung macht und Du eine neue WAN-IP bekommst, um festzustellen ob das onlinechanged-Ereignis ausgelöst und berücksichtigt wird.
 
Ich glaube vergessen zu erwähnen, das ich hinter einer Easybox hänge von meinen Vermieter und Fritzbox über Lan A dran hängt als Router, nicht als Client.

Und in dem Fall bringt der Eintrag in der onlinechanged nichts oder?

Zumal wird bis jetzt nicht die IP an spdns gesendet, wenn die sich ändert, erst nach ein Reboot der Fritzbox.

Könnte ich den Befehl
Code:
/etc/init.d/rc.opend cron

Reinsetzen wo er z.B. alle 5 Minuten abgesetzt wird?

Oder noch besser ein Script der alle 5 Minuten überprüft ob sich die WAN-IP geändert hat und wenn ja rc.opendd absetzt.
Aber dafür bin ich mittlerweile zu blöd für und vielleicht wäre jemand so nett und würde es mir mal eben schreiben.
 
Ich glaube vergessen zu erwähnen, das ich hinter einer Easybox hänge von meinen Vermieter und Fritzbox über Lan A dran hängt als Router, nicht als Client.
D. h., deine FritzBox hat gar keine externe/öffentliche IP-Adresse.
Und in dem Fall bringt der Eintrag in der onlinechanged nichts oder?
So ist es. Du solltest in diesem Fall, opendd für den daemon modus (... weil deine FritzBox kein "border device" ist) konfigurieren:
Code:
runasdaemon = 1
# Only use on Daemon mode
# Default : 300
pollfrequency = 300
 
Hat nichts gebracht nach ein Reboot waren die Änderungen wieder weg.

Ich habe festgestellt das Freetz erst nach ein Reboot in die /var/mod/etc/opendd.conf schreibt.

Was mich jetzt aber wundert ist warum der Dyndns in der Fritzbox die IP updatet, bevor ich opendd ins Image gepackt hatte ging das nicht.
 
Hat nichts gebracht nach ein Reboot waren die Änderungen wieder weg.
Hast Du für die zusätzlichen Eintragungen in die opendd.conf bzw. für die Konfiguration von opendd, das WEB-IF von Freetz verwendet und opendd nach den Änderungen in dessen Konfigurationsdatei, neu gestartet?
Ich habe festgestellt das Freetz erst nach ein Reboot in die /var/mod/etc/opendd.conf schreibt.
Meinst Du evtl., dass die Eintragungen in die "/var/mod/etc/opendd.conf" erst nach einem Reboot wirksam sind?
Was mich jetzt aber wundert ist warum der Dyndns in der Fritzbox die IP updatet, bevor ich opendd ins Image gepackt hatte ging das nicht.
Man sollte für ein und den selben ddns-Account keine zwei ddns-Clients auf der FritzBox verwenden. D. h. wenn der AVM-ddns-Client funktioniert, dann brauchst Du opendd nicht. Und wenn Du opendd verwenden bzw. testen willst, dann solltest Du den AVM-ddns-Client deaktivieren, denn Du weißt ja nicht wie dieser aktivierte AVM-ddns-Client, die Funktionsweise von opendd beeinflusst bzw. evtl. stört.
 
Der dyndns Account in der Fritzbox war jetzt die ganze Zeit deaktiviert.

Ich habe deine Vorschläge mit nano in die opendd.conf eingetragen, im Webif gibt es dafür keine Möglichkeit.


Wenn ich im Webif etwas eintrage und dann
cat /var/mod/etc/opendd.conf

ausführe werden die Änderungen nicht gelistet.

Ich habe Opendd mit ins Image gepackt, weil ich es so von hier verstanden habe, das es für Boxen im ATA Modus geeignet ist.

Der dyndns Account in der Fritzbox dürfte normalerweise gar nicht funktionieren im ATA Modus und bevor ich opendd mit reingepackt habe, würde auch immer die interne IP gemeldet.

Du hast Recht, wo es jetzt über die Fritzbox funktioniert, könnte ich mich zufrieden geben.
Aber mich nervt es wenn etwas nicht funktioniert und zweitens macht es Spaß was dazu lernen und das habe ich dank deiner Hilfe.

Ich werde jetzt mal mit zwei verschiedenen Accounts probieren und berichten.
 

Anhänge

  • uploadfromtaptalk1419669580613.jpg
    uploadfromtaptalk1419669580613.jpg
    61.7 KB · Aufrufe: 3
..., im Webif gibt es dafür keine Möglichkeit.
Lt. deinem angehängten screenshot, hast Du opendd nicht richtig konfiguriert. Dein opendd läuft z. Zt. nicht als Dienst (daemon). Das kannst Du auch in der Konsole der Box testen:
Code:
ps | grep opendd | grep -v grep
Die Option "das nach 25 Tagen ein Zwangsupdate" erfolgen soll, brauchst Du auch nicht. Das hat cuma damals für seinen Kabelanschluss (mit fast statischer externer IP-Adresse) eingeführt/aufgenommen, damit sein ddns-account von seinem ddns-Provider nicht deaktiviert/gekündigt wird. "email verschicken" kannst Du auch deaktivieren, weil gmx & Co. z. Zt. nur noch TLS/SSL-Verbindungen akzeptieren, was für opendd (noch) nicht vorgesehen ist.
 
Das mit den 25 Tagen hatte ich nur kurz getestet.

ps | grep opendd | grep -v grep

Gibt nichts aus und wo kann ich im Webif “als Dienst laufen“ aktivieren?
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.