Was ist dynamisches DNS?
Nehmen wir ein allgemeines Beispiel für ein DNS-Setup. Ihre Domain ist example.comund Sie haben " A" Datensätze für server1.example.comund server2.example.com. Server1 wird in Vultr gehostet, aber Server2 wird in einem lokalen Netzwerk gehostet, z. B. in Ihrem Unternehmen oder als Entwicklungsmaschine in Ihrem Zuhause. In der Regel werden diesen lokalen Umgebungen öffentliche IP-Adressen von Ihrem Internetdienstanbieter (ISP) dynamisch zugewiesen und können sich unerwartet ändern. Dies würde dazu führen, dass Server2 plötzlich auf eine falsche IP-Adresse verweist, was den Dienst erheblich beeinträchtigen könnte. In diesem Artikel erfahren Sie, wie Sie Ihren eigenen dynamischen DNS-Dienst einrichten, der auf einem lokalen Computer ausgeführt wird und den Eintrag für server2 in Vultr DNS nach einer öffentlichen IP-Änderung automatisch aktualisieren kann.
Während Clients einige DNS-Anbieter mögen ddclientund inadynfür diese arbeiten, unterstützt Vultr diese derzeit nicht und verwendet stattdessen eine eigene benutzerdefinierte API. Dieser Dienst wird lokal auf Ihrem Computer ausgeführt und verwendet GET- und POST-Anforderungen zusammen mit Ihrem Zugriffsschlüssel.
Voraussetzungen
- Zugriff auf Ihr Vultr-Konto, um DNS einzurichten und Zugriffsschlüssel zu verwalten.
- Möglichkeit, eine Verbindung zu dem lokalen Computer mit einer dynamischen IP-Adresse herzustellen (oder auf einen anderen Computer im selben Netzwerk zuzugreifen).
Installation und Einrichtung
Einrichten Ihrer Domain für die Verwendung des DNS-Dienstes von Vultr
- Wenn Sie den DNS-Dienst von Vultr für Ihre Domain nicht verwenden, befolgen Sie diesen Artikel , um Ihre Nameserver für die Verwendung mit Vultr zu ändern.
- Wechseln Sie nach dem Einrichten von Vultr DNS zur DNS-Verwaltungsseite unter "Server -> DNS -> [Ihr Domainname]".
- Hier finden Sie alle für Ihre Domain eingerichteten Datensätze. Notieren Sie sich, welche Datensätze Sie ändern möchten, da Sie diese später benötigen.
- Von
Adiesem Dienstprogramm werden nur " " Datensätze unterstützt. Wenn Sie mehrere " A" Datensätze haben, die auf dieselbe IP-Adresse aktualisiert werden sollen, ändern Sie sie in " CNAME" Datensätze und verweisen Sie sie auf einen " A" Datensatz. Dies vereinfacht die Dinge auf lange Sicht und wird als die richtige Methode zum Konfigurieren von DNS angesehen.
Installieren der erforderlichen Werkzeuge
- Stellen Sie eine Verbindung zu Ihrem lokalen Server her. Dies kann direkt oder über SSH erfolgen.
- Für dieses Tool ist Python 3 erforderlich. Die meisten Linux-Distributionen enthalten vorinstalliertes Python. Für den Fall, dass es nicht in Ihrer Umgebung installiert ist, finden Sie Anweisungen im offiziellen Python-Wiki hier:
- Für diesen Vorgang ist auch Git erforderlich, das Sie mit den folgenden Anweisungen installieren können:
Herunterladen des Dynamic DNS-Clients
Verwenden Sie Git, um das Repository zu klonen, das den Python-DDNS-Client enthält. Sie sollten dies in einem sicheren Verzeichnis tun, auf das Sie vollen Zugriff haben. Ihr Home-Ordner sollte ausreichend sein. Führen Sie den folgenden Befehl aus:
git clone https://github.com/andyjsmith/Vultr-Dynamic-DNS.git vultrddns && cd vultrddns
Generieren eines persönlichen Zugriffstokens
Generieren Sie ein persönliches Zugriffstoken in Vultr. Dies kann unter "Konto -> API -> Persönliches Zugriffstoken" erfolgen. Auf derselben Seite müssen Sie unter "Zugriffssteuerung" auf die Schaltfläche "Alle IPv4 zulassen" klicken, da Sie die IP Ihres lokalen Servers nicht jedes Mal kennen, daher der Punkt des dynamischen DNS.
Konfigurieren des Tools für Ihren Server
- Lesen Sie die
config.json.exampleDatei durch, um ein Beispiel dafür zu erhalten, wie Ihre Konfigurationsdatei aussehen sollte.
- Öffnen Sie die
config.jsonDatei mit Ihrem bevorzugten Texteditor und geben Sie die Werte basierend auf Ihrem spezifischen Server-Setup ein.
-
Die Datei sollte Folgendes enthalten:
{
"api_key": "",
"domain": "",
"dynamic_records": [
""
]
}
-
Geben Sie Ihr Zugriffstoken in das Feld ein api_key.
- Geben Sie Ihre Basisdomain in das
domainFeld ein. Zum Beispiel example.com.
- Geben
ASie nun die " " Datensätze, die Sie ändern möchten, in das dynamic_recordsFeld ein. Im vorherigen Beispiel würden Sie eingeben server2, um server2die IP-Adresse automatisch zu ändern . Sie können mehrere Subdomains eingeben. Wenn Sie den Basisdatensatz Afür Ihre Domain ändern möchten (im Allgemeinen als @Datensatz bezeichnet, der reagiert, wenn Sie direkt zu navigieren example.com), lassen Sie einfach leere Anführungszeichen.
-
Eine richtige Konfigurationsdatei könnte folgendermaßen aussehen, in der Sie die IP für example.comund dynamisch ändern möchten server2.example.com:
{
"api_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"domain": "example.com",
"dynamic_records": [
"",
"server2"
]
}
-
Speichern Sie nun diese Änderungen und Ihre Datei sollte einsatzbereit sein!
Testen Sie Ihre Konfiguration
- Testen Sie das Skript und die Konfiguration, indem Sie ausführen
python3 ddns.py. Wenn dies keine Fehler zurückgibt, ist Ihre Konfiguration nominal und Sie können den Automatisierungsprozess starten.
Automatisierung
Nach Abschluss der Grundeinstellung ist es wichtig, eine wiederkehrende Aufgabe einzurichten, da das Skript dies standardmäßig nicht ausführt. Stellen Sie eine Verbindung zu Ihrem lokalen Computer her und führen Sie die folgenden Schritte basierend auf Ihrem Betriebssystem aus.
Linux und Mac OSX
Unter Linux und Mac ist das cronDienstprogramm bereits installiert, mit dem Sie Skripts angeben können, die nach festgelegten Zeitplänen ausgeführt werden sollen.
- Suchen Sie den vollständigen Pfad der
ddns.pyDatei, realpath ddns.pywährend Sie sich noch im vultrddnsVerzeichnis befinden.
- Führen Sie aus
crontab -e, um Ihre Crontab zu bearbeiten.
-
Fügen Sie am Ende der Datei die folgende Zeile hinzu und fügen Sie den tatsächlichen Pfad zur ddns.pyDatei hinzu:
*/30 * * * * python3 [full path to ddns.py] > /dev/null 2>&1
-
Dadurch wird das Skript alle 30 Minuten ausgeführt und die gesamte Ausgabe an umgeleitet /dev/null.
- Speichern und beenden Sie den Texteditor. Die crontab-Datei wird automatisch installiert und Ihre IP wird jetzt automatisch aktualisiert.
Windows
Erstellen Sie im Taskplaner eine Aufgabe, die alle 30 Minuten ausgeführt wird. Befolgen Sie die Microsoft-Anleitung zur Erstellung grundlegender Aufgaben.
- Öffnen Sie den Taskplaner und klicken Sie auf "Aufgabe erstellen ...".
- Geben Sie ihm einen Namen und erstellen Sie einen neuen Auslöser.
- Klicken Sie auf "Täglich". Klicken Sie unter "Erweiterte Einstellungen" auf, um die Aufgabe alle 30 Minuten zu wiederholen und "für eine Dauer von" in "Auf unbestimmte Zeit" zu ändern.
- Fügen Sie eine neue Aktion hinzu, um ein Programm zu starten und zu Ihrer ausführbaren Python-Datei zu navigieren. Fügen Sie das
ddns.pySkript als Argument hinzu.