Dynv6: Automatisiertes IP Update über "Update API"

#S3TT3#

Cadet 3rd Year
Registriert
Nov. 2016
Beiträge
34
Guten Tag,

ich Verwende in meinem Privaten Netzwerk einen Rapberry Pi 4, auf welchem ich via Docker, verschiedene Dienste wie z.B Bitwarden laufen lasse. Diesen habe ich über einen Reverse Proxy und den DDNS Anbieter Dynv6 aus dem Internet erreichbar gemacht. Ich habe mehrere verschiedene Domains welche ich jederzeit erreichen möchte.

Das Problem ist das nach dem Wechsel der öffentlichen IP Adresse durch den ISP, die Domains nicht mehr erreichbar sind bis sie manuell Editiert werden. Dynv6 bietet hierfür eine API an, welche es ermöglicht die öffentliche IP Adresse automatisch zu Updaten.

Hierzu muss man eine http/s Anfrage mitsamt zuvor erstellten Token und dem Domainname an eine bestimmte Website gestellt werden. Ich habe mich also dran gemacht und meine spezielle URL konfiguriert, danach habe sie Testweise im Firefox aufgerufen. Ergebnis: Seite gibt aus = "addresses updated" > Richtige Öffentliche IP wurde beim DDNS Anbieter geändert. (IP vorher bei Dynv6 verfälscht)

Infolge dessen habe ich es auf dem Raspi mit wget und curl versucht.
(Selbe Adresse wie im Firefox)

------------------------------------------------------------------------------------------------
Ausgabe curl

*@raspberrypi-200:~ $curl *ttps://ipv4.dynv6.com/api/update?token=MeinToken&hostname=MeineDomain.dynv6.net
[1] 32473

*@raspberrypi-200:~ $ zone missing
[1]+ Done curl *ttps://ipv4.dynv6.com/api/update?token=CiEyWUcas55gQS5PULnpibbQgsJB8Q

------------------------------------------------------------------------------------------------
(Gleiche Aussage kommt wenn ich im Firefox den hostname aus der URL entferne ansonsten funktionierte Sie)
*ttps = https ;)
------------------------------------------------------------------------------------------------
Ausgabe wget

2022-09-07 19:56:49-- *ttps://ipv4.dynv6.com/api/update?zone=MeineDomain.dynv$
Resolving ipv4.dynv6.com (ipv4.dynv6.com)... 159.69.43.243, 95.216.144.82, 5.45$
Connecting to ipv4.dynv6.com (ipv4.dynv6.com)|159.69.43.243|:443... connected.
HTTP request sent, awaiting response... 401 Unauthorized

Username/Password Authentication Failed.

------------------------------------------------------------------------------------------------
(Username/Password wird in der Dokumentation von Dynv6 nicht benötigt)
------------------------------------------------------------------------------------------------
Meine Frage nun:

Habe ich bei der Verwendung der Befehle einen Fehler gemacht oder liegt es gar an etwas ganz anderem (komplett falscher Befehl etc.) das die Anfrage nur auf dem Pi nicht funktioniert?
Hat jemand vllt. die gleichen Probleme gehabt, wenn ja wie konnten Sie behoben werden?
Gibt es Alternativen bei welchem es schöner gelöst ist?
Was könnte ich noch probieren.

Ich hoffe ich habe das Thema im richtigen Thread aufgemacht und bedanke mich im voraus für die Hilfe.
Mit freundlichen Grüßen
Sette
 
Lösung
#S3TT3# schrieb:
*@raspberrypi-200:~ $curl *ttps://ipv4.dynv6.com/api/update?token=MeinToken&hostname=MeineDomain.dynv6.net
[1] 32473
das & in token=MeinToken&hostname=MeineDomain.dynv6.net schiebt das kommando in den hintergrund, d.h. du rufst effektiv nur curl *ttps://ipv4.dynv6.com/api/update?token=MeinToken auf. deshalb siehst du auch [1] 32473 in der ausgabe, das ist die pid deines curl-aufrufs. setz die url in anführungszeichen, dann wird es funktionieren.

edit: du solltest dein token in deinem post besser löschen. eigentlich müsstest du ein neues erstellen :)
#S3TT3# schrieb:
*@raspberrypi-200:~ $curl *ttps://ipv4.dynv6.com/api/update?token=MeinToken&hostname=MeineDomain.dynv6.net
[1] 32473
das & in token=MeinToken&hostname=MeineDomain.dynv6.net schiebt das kommando in den hintergrund, d.h. du rufst effektiv nur curl *ttps://ipv4.dynv6.com/api/update?token=MeinToken auf. deshalb siehst du auch [1] 32473 in der ausgabe, das ist die pid deines curl-aufrufs. setz die url in anführungszeichen, dann wird es funktionieren.

edit: du solltest dein token in deinem post besser löschen. eigentlich müsstest du ein neues erstellen :)
 
  • Gefällt mir
Reaktionen: #S3TT3#
0x8100 schrieb:
setz die url in anführungszeichen, dann wird es funktionieren.

edit: du solltest dein token in deinem post besser löschen. eigentlich müsstest du ein neues erstellen :)
Vielen lieben dank,
ich musste das "&" tatsächlich nicht einmal entfernen. Es hat gereicht die URL in Anführungszeichen zu setzten.
Für mein Verständnis: Was verändert sich durch die Anführungszeichen bei der Abfrage?

Ja das mit dem Token ärgert mich auch, den einen hatte ich leider vergessen zu entfernen.😅
 
das & verknüpft in der url die beiden parameter "token" und "hostname" zu einem string. die shell, in der du curl/wget ausführst, interpretiert dieses zeichen jedoch so, als ob alles, was davor steht, in einer subshell im hintergrund ausgeführt werden soll. damit das & von der shell ignoriert wird, muss die url in anführungszeichen angegeben werden, damit curl/wget die komplette url bekommt.
 
  • Gefällt mir
Reaktionen: #S3TT3# und mae1cum77
#S3TT3# schrieb:
ich musste das "&" tatsächlich nicht einmal entfernen. Es hat gereicht die URL in Anführungszeichen zu setzten.
Ist auch besser ;). Ohne funktioniert der Link nicht. Ich nutze in meinem Dockerstack ein Image für die Updates über die DuckDNS-API, da ist der Link sehr ähnlich.
 
  • Gefällt mir
Reaktionen: #S3TT3#
Zurück
Oben