Ich versuche, den dynamischen DNS-Client auf meinem Router mit der Firmware dd-wrt (v24-sp2) zu konfigurieren, damit die IP-Adresse in einem der DNS-Einträge dynamisch geändert wird. Leider bin ich auf ein Problem gestoßen ... Hier ist eine Beispielanforderung von ihrer ddclient-Konfiguration :
https://www.cloudflare.com/api.html?a=DIUP&u=<my_login>&tkn=<my_token>&ip=<my_ip>&hosts=<my_record>
Es funktioniert, wenn ich es im Browser verwende, aber in dd-wrt erhalte ich folgende Ausgabe:
Tue Jan 24 00:36:47 2012: INADYN: Started 'INADYN Advanced version 1.96-ADV' - dynamic DNS updater.
Tue Jan 24 00:36:47 2012: I:INADYN: IP address for alias '<my_record>' needs update to '<my_ip>'
Tue Jan 24 00:36:48 2012: W:INADYN: Error validating DYNDNS svr answer. Check usr,pass,hostname! (HTTP/1.1 303 See Other
Server: cloudflare-nginx
Date: Mon, 23 Jan 2012 14:36:48 GMT
Content-Type: text/plain
Connection: close
Expires: Sun, 25 Jan 1981 05:00:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Location: https://www.cloudflare.com/api.html?a=DIUP&u=<my_login>&tkn=<my_token>&ip=<my_ip>&hosts=<my_record>
Vary: Accept-Encoding
Set-Cookie: __cfduid=<id>; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.cloudflare.com
Set-Cookie: __cfduid=<id>; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.www.cloudflare.com
You must include an `a' paramiter, with a value of DIUP|wl|chl|nul|ban|comm_news|devmode|sec_lvl|ipv46|ob|cache_lvl|fpurge_ts|async|pre_purge|minify|stats|direct|zone_check|zone_ips|zone_errors|zone_agg|zone_search|zone_time|zone_grab|app|rec_se
Die URL von "Ort" funktioniert einwandfrei und der Parameter "a" ist enthalten. Was ist das Problem?
router
ddns
cloudflare
römisch
quelle
quelle
Antworten:
Ich glaube nicht, dass Sie es dort einrichten können, wo DD-WRT CloudFlare direkt aufruft. Ich habe es so konfiguriert, dass DD-WRT ein PHP-Skript auf einem Remote-Webserver aufruft, das dann die Client-IP erkennt und die Aktualisierungsanforderung über deren API an CloudFlare sendet.
DD-WRT DDNS-Einstellungen
cloudflare_update.php
Anstatt die HTTP-Basisauthentifizierung zu verwenden, verwende ich nur einen zufälligen Schlüssel.
Stellen Sie sicher, dass Sie den DNS-Eintrag für den Domainnamen erstellen, den Sie in CloudFlare aktualisieren möchten. Der Aktionsparameter DIUP aktualisiert nur die IP für einen Eintrag, der bereits vorhanden ist.
quelle
Wenn Sie das Update von Ihrem Router aus ausführen möchten, führt kein Weg daran vorbei, dass Sie in der Mitte ein kleines zusätzliches "Etwas" benötigen, um Ihren Anruf in das CloudFlare-Format zu konvertieren (wenn nur DNS-O-Matic sie hinzufügen würde ihre unterstützten Dienste ...). Anstatt selbst ein Zwischenskript hosten zu müssen, können Sie einfach Google AppEngine (kostenlos) verwenden, um diese erneute Veröffentlichung für Sie durchzuführen. Ich benutze das:
https://cloudflare-updater.appspot.com/
Okay, Sie müssen immer noch etwas anderes als CloudFlare aufrufen, um das Update herauszugeben, aber zumindest müssen Sie keinen zusätzlichen Host oder VPS usw. ausführen, um es selbst zu tun. Es ist vollständig transparent - das einzige Problem ist, dass Sie keine Fehler zurückerhalten, sodass Sie überprüfen müssen, ob es selbst funktioniert. Sobald es funktioniert, sollte es einfach laufen und laufen.
quelle
Zu bemerken, dass dies alles veraltet ist und jetzt v4-API-Code benötigt, um zu funktionieren.
oben getestet und es schlägt fehl - schlechter Benutzer, bestanden, xxxx Info.
Überprüfen dieser Methode https://github.com/ScottHelme/CloudFlareDDNS
quelle
Es gelang, dies zum Laufen zu bringen: https://github.com/dcerisano/Cloudflare-dynamic-dns
Sobald Sie Ihr Cloudflare-Konto eingerichtet haben, sind die erforderlichen Informationen leicht zu finden:
Sie benötigen: Zonen-ID
Autorisierungsschlüssel (auch bekannt als Global API Key)
A-Record-ID für Ihre Domain (diese wird durch Ausführen des Skripts cloudflare-dns-id.sh erhalten) Ich musste das Skript ein wenig kürzen, damit es funktioniert.
curl -X GET " https://api.cloudflare.com/client/v4/zones/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx / dns_records?type=A&name=dynamic" \ -H "X-Auth-E-Mail: you@" "X-Auth-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ -H "Inhaltstyp: application / json"
Ich habe beide Skripte in / jffs gespeichert, damit sie ausführbar sind.
In Bezug auf die Cloudflare-Seite richte ich gemäß diesem Handbuch nur die Cloudflare-Domäneneinträge ein:
https://support.opendns.com/hc/en-us/community/posts/115000937008-How-to-set-up-DNS-O-MATIC-for-Cloudflare-and-the-other-way-around- und-a-FritzBox
Bei Cloudflare müssen Sie folgende Datensätze festlegen:
Typ: A | Name: dynamisch | Wert: "Ihre WAN-IP" ***
Typ: CNAME | Name: "yourdomain.xyz" | Wert: dynamisch. ”Yourdomain.xyz”
Typ: CNAME | Name: www | Wert: "yourdomain.xyz"
Ich habe einen Cron-Job eingerichtet, um cloudflare-ddns.sh alle 5 Minuten auszuführen und nach IP-Änderungen zu suchen.
Mein DD-WRT-Router aktualisiert Cloudflare jetzt automatisch, wenn die WAN-IP geändert wird ...
Die Einrichtung dauert ungefähr 10 Minuten.
quelle