Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    DynDNS per bestimmten curl-Befehl

    Scheduled Pinned Locked Moved Deutsch
    12 Posts 3 Posters 1.2k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • U
      un1que
      last edited by

      Hallo, kann mir jemand sagen, ob die pfSense es irgendeine auf die Reihe bekommen könnte, einen DynDNS Eintrag per folgendem curl-Befehl zu aktualisieren?

      curl -X PUT --user {USER}:{PASSWORD} https://*****/dns/custom/{HOSTNAME}
      

      Der "custom" Eintrag hat bei mir leider nicht funktioniert.

      1 Reply Last reply Reply Quote 0
      • ?
        A Former User
        last edited by

        Ich würde hierfür einen Cronjob einrichten.

        1 Reply Last reply Reply Quote 0
        • U
          un1que
          last edited by

          Hmm, ich habe mich mit Cronjobs noch nie beschäftigt. Gibt es dort eine Möglichkeit die Sache über ein bestimmtes Interface (nicht das Standard Gateway) ausführen zu lassen?

          1 Reply Last reply Reply Quote 0
          • ?
            A Former User
            last edited by

            @un1que:

            Hmm, ich habe mich mit Cronjobs noch nie beschäftigt. Gibt es dort eine Möglichkeit die Sache über ein bestimmtes Interface (nicht das Standard Gateway) ausführen zu lassen?

            Nö, Cronjobs sind an sich ja nur zeitgesteuerte Aufgaben. ;)
            Bei curl kannst du bspw. mit dem Parameter "–interface <name>" ein Interface mitgeben, welches genutzt werden soll.

            –interface <name>Perform an operation using a specified interface. You can enter interface name, IP address or host name. An example could look like:

            curl --interface eth0:1 https://www.example.com/

            If this option is used several times, the last one will be used.</name></name>

            1 Reply Last reply Reply Quote 0
            • U
              un1que
              last edited by

              Top, danke! Curl mit dem Interface-Parameter funktioniert schon mal, jetzt muss ich mich nur noch einlesen, wie die Einrichtung der Cronjobs funktioniert.

              1 Reply Last reply Reply Quote 0
              • ?
                A Former User
                last edited by

                @un1que:

                […], jetzt muss ich mich nur noch einlesen, wie die Einrichtung der Cronjobs funktioniert.

                Du kannst dir über die GUI-Paketverwaltung (System -> Package Manager) das Paket "cron" installieren.
                Dann kannst du bequem via Services -> Cron.. deine Cronjobs pflegen. :)

                1 Reply Last reply Reply Quote 0
                • U
                  un1que
                  last edited by

                  Ja, das Paket habe ich schon mal vor längerem gesehen und deswegen gleich installiert. Allerdings gestaltet sich die Sache für mich etwas schwieriger, da man ja nicht einfach so den curl-Befehl eingeben kann, sondern irgendwie erst eine Datei mit bestimmter Formatierung(?) erstellen muss, und auf diese dann verlinken soll?

                  1 Reply Last reply Reply Quote 0
                  • ?
                    A Former User
                    last edited by

                    @un1que:

                    Allerdings gestaltet sich die Sache für mich etwas schwieriger, da man ja nicht einfach so den curl-Befehl eingeben kann, sondern irgendwie erst eine Datei mit bestimmter Formatierung(?) erstellen muss, und auf diese dann verlinken soll?

                    Nö, du kannst auch direkt dein curl-Commando dort eintragen.
                    Hierbei musst du nur darauf achten, dass du den absoluten Pfad zum curl-Binary angibst.

                    /usr/local/bin/curl -X PUT –user meinbenutzer:meinpasswort https://example.com/dns/custom/meinhostname

                    Im Anhang findest du einen Beispiel-Cron, welcher zur jeder vollen Stunde läuft, egal welcher Tag und/oder Monat es ist.

                    Sprich:
                    03.03.2018 00:00:00 UTC
                    03.03.2018 01:00:00 UTC
                    03.03.2018 02:00:00 UTC
                    03.03.2018 03:00:00 UTC
                    etc.

                    Sofern dir der Output des Kommandos egal ist, kannst du ans Ende noch ein >/dev/null 2>&1 dranhängen.
                    Somit leitest du stdin/stdout/stderr (Siehe https://en.wikipedia.org/wiki/Standard_streams) nach /dev/null um. Sprich es wird nichts auf der Shell ausgegeben.

                    Möchtest du die Ausgabe gerne irgendwo speichern (Bspw. in /test.txt), so hänge folgendes an: > test.txt

                    cron.png
                    cron.png_thumb

                    1 Reply Last reply Reply Quote 0
                    • U
                      un1que
                      last edited by

                      Ach, so einfach war das ;D
                      Super, jetzt läuft es rund! Danke nochmal für die schnelle Hilfe!

                      1 Reply Last reply Reply Quote 0
                      • JeGrJ
                        JeGr LAYER 8 Moderator
                        last edited by

                        Das Ganze mit einem Cron zu machen ist aber schon Kanonen auf Spatzen zu werfen!? :o

                        Der DynDNS Service hat ja eine Einstellung für "Custom Service". Die ist ja nicht umsonst da. Nur weil es in irgendwelchen Anleitungen steht, dass die das mit CURL machen, muss das ja nicht zwangsläufig so gemacht werden. Es wird nur ein Zugriff auf die entsprechende URL benötigt, und das kann pfSense mit dem DynDNS Service selbst erledigen, das muss kein händischer CURL Aufruf sein. Zudem hat dein Cron leider keinerlei Möglichkeit, zu sehen, wann das Interface sich aktualisiert und kann nur störrisch alle 5/10min laufen - viele DynDNS Services haben aber was gegen zu häufige Aktualisierung. Daher lieber das richtige Werkzeug nehmen, nicht nur den Hammer auspacken, weil man den kennt und jedes Problem "nageln" :D

                        Gruß

                        Don't forget to upvote 👍 those who kindly offered their time and brainpower to help you!

                        If you're interested, I'm available to discuss details of German-speaking paid support (for companies) if needed.

                        1 Reply Last reply Reply Quote 0
                        • U
                          un1que
                          last edited by

                          Ok, magst Recht haben, aber bei mir hat der custom DynDNS Eintrag nicht funktioniert. Wenn du eine Idee hast, wie und was genau ich anpassen könnte, um es lauffähig zu machen, dann würde ich es auch gerne so umsetzen.

                          1 Reply Last reply Reply Quote 0
                          • JeGrJ
                            JeGr LAYER 8 Moderator
                            last edited by

                            Dazu müsste ich erstmal wissen, WAS an deinem Custom Eintrag nicht funktioniert hat ;)

                            Alles was ich sehe ist:

                            {USER}:{PASSWORD} https://*****/dns/custom/{HOSTNAME}

                            User/Pass sieht mir in dem Kontext nach HTAccess Zugriffsbeschränkung. Wenn du die ***** rein machst, kann man natürlich nicht sagen, was es für ein Dienstleister ist o.ä., daher wird das schwer ohne etwas mehr Info. Ansonsten:

                            Services / Dynamic DNS / Dynamic DNS Clients / Edit

                            • Service Type: Custom
                            • Interface to monitor: WAN
                            • Send updates from: WAN
                            • Verbose logging on
                            • Username: {USER}
                            • Password: {PASSWORD}
                            • Update URL: https://*****/dns/custom/{HOSTNAME}

                            Je nachdem was beim manuellen Aufruf von https://*****/dns/custom/{HOSTNAME} ausgegeben wird, kann man ResultMatch noch mit einstellen, aber das wars.

                            Don't forget to upvote 👍 those who kindly offered their time and brainpower to help you!

                            If you're interested, I'm available to discuss details of German-speaking paid support (for companies) if needed.

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post
                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.