Zum Hauptinhalt springen

CLI & Entwickler-Tools

Installationsanleitung

Das NexDNS CLI ist eine einzelne Binärdatei ohne externe Abhängigkeiten. Wählen Sie die Installationsmethode, die zu Ihrer Umgebung passt.

Schnellinstallation (Linux / macOS)

curl -sL https://get.nexdns.tech/cli | sh

Homebrew

brew install nexdns/tap/nexdns-cli

Docker

docker pull nexdns/cli

Installation überprüfen

Bestätigen Sie nach der Installation, dass das CLI verfügbar ist, und prüfen Sie die Version:

nexdns version

Authentifizierung

Das CLI benötigt ein API-Token zur Kommunikation mit der NexDNS API. Sie können ein Token unter nexdns.tech/settings/api-keys erstellen.

Token in Konfiguration speichern

nexdns auth token nxd_xxxxxxxxxxxxxxxxxxxx

Umgebungsvariable (CI/CD)

export NEXDNS_TOKEN=nxd_xxxxxxxxxxxxxxxxxxxx

Authentifizierungsstatus prüfen

nexdns auth status

Konfigurationsdatei

Das Token wird in ~/.nexdns/config.yaml gespeichert. Das CLI löst Anmeldedaten in der folgenden Prioritätsreihenfolge auf:

  1. --token-Flag (höchste Priorität)
  2. Umgebungsvariable NEXDNS_TOKEN
  3. Konfigurationsdatei ~/.nexdns/config.yaml

Zonenverwaltung

Verwalten Sie DNS-Zonen über die Kommandozeile. Alle Zonenbefehle befinden sich unter dem Unterbefehl nexdns zone.

Zonen auflisten

nexdns zone list

Zone hinzufügen

nexdns zone add example.com --ns-group eu

Zoneninformationen

nexdns zone info example.com

Zone exportieren (BIND-Format)

nexdns zone export example.com

Zonendatei importieren

Verwenden Sie --dry-run, um Änderungen vor der Anwendung in der Vorschau zu sehen:

nexdns zone import example.com zone.txt --dry-run

Zonenexistenz sicherstellen

Erstellt die Zone nur, wenn sie noch nicht existiert (idempotent):

nexdns zone ensure example.com

Zonenstatus prüfen

nexdns zone check example.com

Zone löschen

nexdns zone delete example.com

Eintragsverwaltung

Verwalten Sie DNS-Einträge innerhalb einer Zone. Alle Eintragsbefehle befinden sich unter dem Unterbefehl nexdns record.

Einträge auflisten

nexdns record list example.com

Einträge hinzufügen

# A record
nexdns record add example.com A www 1.2.3.4 --ttl 300

# MX record with priority
nexdns record add example.com MX @ mail.example.com --priority 10

Eintrag aktualisieren

nexdns record update example.com <record-id> --content 5.6.7.8

Eintrag bei Fehlen anlegen

Legt den Eintrag nur an, wenn er noch nicht existiert (exakte Übereinstimmung von Typ, Name und Inhalt). Bestehende Einträge mit abweichendem Inhalt bleiben unangetastet – sicher für Round-Robin-Setups. Idempotent:

nexdns record ensure example.com A www 1.2.3.4

Eintrag löschen

nexdns record delete example.com <record-id>

DNSSEC

Verwalten Sie die DNSSEC-Signierung für Ihre Zonen.

DNSSEC-Status prüfen

nexdns dnssec status example.com

DNSSEC aktivieren

nexdns dnssec enable example.com

DS-Einträge abrufen

DS-Einträge abrufen, um sie bei Ihrem Domain-Registrar zu konfigurieren:

nexdns dnssec ds-records example.com

DNSSEC deaktivieren

nexdns dnssec disable example.com

DNS als Code

Definieren Sie Ihre DNS-Infrastruktur deklarativ in einer nexdns.yaml-Datei und verwalten Sie sie mit Versionskontrolle. Das CLI vergleicht Ihre lokale Konfiguration mit dem Live-Zustand und wendet nur die notwendigen Änderungen an.

Konfigurationsformat

zones:
  example.com:
    dnssec: true
    records:
      - type: A
        name: "@"
        content: "1.2.3.4"
        ttl: 300
      - type: CNAME
        name: www
        content: example.com

Änderungen vorschauen

Zeigt einen Diff der Änderungen an, ohne etwas anzuwenden:

nexdns apply

Änderungen anwenden

Wenden Sie die Änderungen nach der Überprüfung des Diffs an:

nexdns apply --confirm

Nur Diff

nexdns diff

Live-Zustand abrufen

Generieren Sie eine nexdns.yaml aus der aktuellen Live-DNS-Konfiguration:

nexdns pull example.com

Umgebungsvariablen-Substitution

Verwenden Sie die Syntax ${VARIABLE} in Ihrer Konfigurationsdatei. Das CLI ersetzt Umgebungsvariablen zum Zeitpunkt der Anwendung, sodass Konfigurationen einfach über verschiedene Umgebungen hinweg wiederverwendet werden können:

zones:
  ${DOMAIN}:
    records:
      - type: A
        name: "@"
        content: "${SERVER_IP}"

Docker

Das CLI ist als Docker-Image verfügbar. Übergeben Sie Ihr API-Token über die Umgebungsvariable NEXDNS_TOKEN.

Befehle ausführen

docker run --rm -e NEXDNS_TOKEN=nxd_xxx nexdns/cli zone list

Zonendatei importieren

Binden Sie ein lokales Verzeichnis ein, um Zonendateien in den Container zu übergeben:

docker run --rm -e NEXDNS_TOKEN=nxd_xxx \
    -v ./zones:/zones \
    nexdns/cli zone import example.com /zones/example.com.zone

Globale Flags

Die folgenden Flags sind bei allen Befehlen verfügbar:

Optionsflag Beschreibung
--token API-Token (überschreibt Konfigurationsdatei und Umgebungsvariable)
--api-url API-Basis-URL überschreiben (Standard: https://api.nexdns.tech/v1)
--output, -o Ausgabeformat: table (Standard), json, yaml, csv
--color Farbige Ausgabe erzwingen (auto, always, never)
--quiet, -q Nicht wesentliche Ausgaben unterdrücken
--verbose, -v Ausführliche Protokollierung aktivieren (nützlich für Debugging)
--dry-run Änderungen vorschauen, ohne sie anzuwenden
--timeout Anfrage-Timeout in Sekunden (Standard: 30)

Terraform

Der NexDNS Terraform-Provider ermöglicht die Verwaltung von Zonen und Einträgen als Terraform-Ressourcen. Installieren Sie den Provider aus der Terraform Registry und konfigurieren Sie ihn mit Ihrem API-Token.

provider "nexdns" {
  api_token = var.nexdns_token
}

resource "nexdns_zone" "main" {
  name     = "example.com"
  ns_group = "eu"
}

resource "nexdns_record" "www" {
  zone_id = nexdns_zone.main.id
  type    = "A"
  name    = "www"
  content = "1.2.3.4"
}

DNSControl-Integration

DNSControl ist ein DNS-as-Code-Tool von Stack Overflow. Verwenden Sie den NexDNS-Provider, um Ihre Zonen deklarativ zu verwalten.

creds.json

{
    "nexdns": {
        "TYPE": "NEXDNS",
        "api_token": "nxd_xxxxxxxxxxxxxxxxxxxx"
    }
}

dnsconfig.js

var REG_NONE = NewRegistrar("none");
var DSP_NEXDNS = NewDnsProvider("nexdns");

D("example.com", REG_NONE, DnsProvider(DSP_NEXDNS),
    A("@", "1.2.3.4"),
    A("www", "1.2.3.4"),
    MX("@", 10, "mail.example.com."),
    CNAME("blog", "example.com.")
);

OctoDNS

OctoDNS ist ein DNS-as-Code-Tool von GitHub. Installieren Sie den NexDNS-Provider und konfigurieren Sie ihn als Quelle oder Ziel in Ihrer OctoDNS-Konfiguration.

Provider installieren

pip install octodns-nexdns

Konfigurationsdatei config/production.yaml

providers:
  nexdns:
    class: octodns_nexdns.NexdnsProvider
    api_token: env/NEXDNS_TOKEN

zones:
  example.com.:
    sources:
      - config
    targets:
      - nexdns

Zonendatei zones/example.com.yaml

"":
  type: A
  value: 1.2.3.4
www:
  type: A
  value: 1.2.3.4
blog:
  type: CNAME
  value: example.com.

Wir verwenden Cookies, um das ordnungsgemäße Funktionieren dieser Website sicherzustellen und Ihre Nutzererfahrung zu verbessern. Einige Cookies sind für den Betrieb der Website zwingend erforderlich, andere sind optional.

Sie können alle Cookies akzeptieren oder Ihre Auswahl auf die zwingend erforderlichen beschränken. Weitere Informationen finden Sie in unserer Datenschutzerklärung und unserer Cookie-Richtlinie.