DNS-Server · 5 min read · Oct 01, 2025

So richten Sie einen lokalen DNS-Resolver mit Dnsmasq auf Ubuntu 20.04 ein

Dnsmasq steht für “kurz für DNS-Maskerade” und ist ein einfacher, leichter und benutzerfreundlicher DNS-Forwarder, der für ein kleines Netzwerk verwendet wird. Es kann als DNS-Cache und DHCP-Server konfiguriert werden und unterstützt sowohl das IPv4- als auch das IPv6-Protokoll. Wenn es DNS-Abfragen erhält, beantwortet es diese aus seinem Cache oder leitet sie an den verschiedenen DNS-Server weiter.

Dnsmasq besteht aus drei Teilsystemen:

  • DNS-Subsystem: Es wird verwendet, um verschiedene Datensatztypen zu cachen, einschließlich A, AAAA, CNAME und PTR.
  • DHCP-Subsystem: Es unterstützt DHCPv4, DHCPv6, BOOTP und PXE
  • Router-Werbung-Subsystem: Es bietet eine grundlegende Autokonfiguration für IPv6-Hosts. Es kann eigenständig oder in Verbindung mit DHCPv6 verwendet werden.

In diesem Tutorial zeigen wir Ihnen, wie Sie einen lokalen DNS-Server mit Dnsmasq auf einem Ubuntu 20.04-Server einrichten.

Voraussetzungen

  • Ein Server, der Ubuntu 20.04 ausführt.
  • Ein Root-Passwort ist auf dem Server konfiguriert.

Erste Schritte

Zuerst wird empfohlen, Ihre Systempakete auf die neueste Version zu aktualisieren. Sie können alle Pakete aktualisieren, indem Sie den folgenden Befehl ausführen:

apt-get update -y

Nachdem Sie alle Pakete aktualisiert haben, müssen Sie den Systemd-resolved-Dienst in Ihrem System deaktivieren. Der Systemd-resolved-Dienst wird für die Netzwerkbenennungslösung für lokale Anwendungen verwendet.

Sie können ihn deaktivieren, indem Sie den folgenden Befehl ausführen:

systemctl disable --now systemd-resolved

Sobald der Dienst deaktiviert ist, müssen Sie die Standarddatei resolv.conf entfernen und eine neue mit Ihren benutzerdefinierten DNS-Serverdetails erstellen.

Sie können die Standarddatei resolv.conf mit dem folgenden Befehl entfernen:

rm -rf /etc/resolv.conf

Fügen Sie als Nächstes den Google-DNS-Server zur Datei resolv.conf mit dem folgenden Befehl hinzu:

echo "nameserver 8.8.8.8" > /etc/resolv.conf

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Dnsmasq installieren

Standardmäßig ist Dnsmasq im Standard-Repository von Ubuntu 20.04 verfügbar. Sie können es installieren, indem Sie einfach den folgenden Befehl ausführen:

apt-get install dnsmasq dnsutils ldnsutils -y

Sobald die Installation abgeschlossen ist, werden die Dnsmasq-Dienste automatisch gestartet. Sie können den Status von Dnsmasq mit dem folgenden Befehl überprüfen:

systemctl status dnsmasq

Sie sollten die folgende Ausgabe erhalten:

dnsmasq.service - dnsmasq - Ein leichter DHCP- und Caching-DNS-Server
     Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2020-11-02 11:02:01 UTC; 15s ago
   Main PID: 17726 (dnsmasq)
      Tasks: 1 (limit: 2282)
     Memory: 868.0K
     CGroup: /system.slice/dnsmasq.service
             ??17726 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new --local-service --trust-anchor=.,20326,8,2,e>

Nov 02 11:02:12 ubuntu2004 systemd[1]: Starting dnsmasq - Ein leichter DHCP- und Caching-DNS-Server...
Nov 02 11:02:12 ubuntu2004 dnsmasq[17705]: dnsmasq: Syntaxprüfung OK.
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: gestartet, Version 2.80, Cachegröße 150
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: DNS-Dienst auf lokale Subnetze beschränkt
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: Kompilierungszeitoptionen: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 kein-Lua TFTP conntrack ipset auth DNSSEC loop-detect inotify dumpfi>
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: Lese /etc/resolv.conf
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: Verwende nameserver 8.8.8.8#53
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: Lese /etc/hosts - 7 Adressen
Nov 02 11:02:12 ubuntu2004 systemd[1]: Started dnsmasq - Ein leichter DHCP- und Caching-DNS-Server.

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Dnsmasq konfigurieren

Als Nächstes müssen Sie Dnsmasq als lokalen DNS-Server konfigurieren. Sie können dies tun, indem Sie die Hauptkonfigurationsdatei von Dnsmasq bearbeiten:

nano /etc/dnsmasq.conf

Ändern Sie die folgenden Zeilen:

port=53
domain-needed
bogus-priv
listen-address=127.0.0.1,your-server-ip
expand-hosts
domain=dns-example.com
cache-size=1000

Speichern Sie die Datei und schließen Sie sie, wenn Sie fertig sind.

Als Nächstes müssen Sie Ihre Server-IP-Adresse als primären Nameserver in Ihrer Datei resolv.conf hinzufügen. Sie können dies mit dem folgenden Befehl tun:

nano /etc/resolv.conf

Fügen Sie die folgende Zeile über der Zeile “nameserver 8.8.8.8” hinzu:

nameserver your-server-ip

Speichern Sie die Datei und schließen Sie sie, wenn Sie fertig sind. Überprüfen Sie als Nächstes den Server auf Konfigurationsfehler mit dem folgenden Befehl:

dnsmasq --test

Wenn alles in Ordnung ist, sollten Sie die folgende Ausgabe erhalten:

dnsmasq: Syntaxprüfung OK.

Starten Sie schließlich den Dnsmasq-Dienst neu, um die Änderungen anzuwenden:

systemctl restart dnsmasq

An diesem Punkt ist Dnsmasq gestartet und hört auf Port 53. Sie können dies mit dem folgenden Befehl überprüfen:

ss -alnp | grep -i :53

Sie sollten die folgende Ausgabe erhalten:

udp     UNCONN   0        0                                             0.0.0.0:53                                                0.0.0.0:*                      users:(("dnsmasq",pid=41051,fd=4))                                              
udp     UNCONN   0        0                                                [::]:53                                                   [::]:*                      users:(("dnsmasq",pid=41051,fd=6))                                              
tcp     LISTEN   0        32                                            0.0.0.0:53                                                0.0.0.0:*                      users:(("dnsmasq",pid=41051,fd=5))                                              
tcp     LISTEN   0        32                                               [::]:53                                                   [::]:*                      users:(("dnsmasq",pid=41051,fd=7))                                              

DNS-Einträge zum Dnsmasq-Server hinzufügen

Als Nächstes müssen Sie Ihre Datei /etc/hosts bearbeiten und den Eintrag für den lokalen DNS-Server hinzufügen.

nano /etc/hosts

Fügen Sie die folgende Zeile hinzu:

your-server-ip host1.dns-example.com

Speichern Sie die Datei und schließen Sie sie, wenn Sie fertig sind.

Überprüfen Sie die Dnsmasq-Serverauflösung

An diesem Punkt ist Dnsmasq installiert und konfiguriert. Jetzt ist es an der Zeit, die DNS-Auflösung zu überprüfen.

Sie können den Befehl dig verwenden, um die DNS-Auflösung wie unten gezeigt zu überprüfen:

dig host1.dns-example.com +short

Wenn alles in Ordnung ist, sollten Sie Ihre Server-IP in der folgenden Ausgabe sehen:

your-server-ip

Sie können auch die externe DNS-Auflösung mit dem folgenden Befehl überprüfen:

dig howtoforge.com +short

Sie sollten die folgende Ausgabe erhalten:

172.67.68.93
104.26.3.165
104.26.2.165

Konfigurieren Sie den Remote-Client zur Verwendung des Dnsmasq-DNS-Servers

Als Nächstes müssen Sie einen Remote-Client konfigurieren, um Ihren Dnsmasq-DNS-Server als Standard-DNS-Server zu verwenden.

Zuerst installieren Sie die DNS-Tools mit dem folgenden Befehl:

apt-get install dnsutils ldnsutils -y

Sobald die Installation abgeschlossen ist, müssen Sie die Datei /etc/resolv.conf und den Eintrag Ihres Dnsmasq-DNS-Servers bearbeiten.

nano /etc/resolv.conf

Fügen Sie die folgende Zeile am Anfang der Datei hinzu:

nameserver your-server-ip

Speichern Sie die Datei und schließen Sie sie, wenn Sie fertig sind. Überprüfen Sie als Nächstes die lokale DNS-Auflösung mit dem folgenden Befehl:

dig host1.dns-example.com

Sie sollten die folgende Ausgabe sehen:

; DiG 9.9.5-3ubuntu0.4-Ubuntu host1.dns-example.com
;; globale Optionen: +cmd
;; Antwort erhalten:
;; HEADER Opcode: QUERY, Status: NOERROR, ID: 26401
;; Flags: qr aa rd ra; QUERY: 1, ANTWORT: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: Version: 0, Flags:; udp: 4096
;; FRAGESEKTION:
;host1.dns-example.com. IN A

;; ANTWORTSEKTION:
host1.dns-example.com. 0 IN A 45.58.32.165

;; Abfragezeit: 301 msec
;; SERVER: 45.58.32.165#53(45.58.32.165)
;; WANN: Mon Nov 02 16:49:37 IST 2020
;; MSG SIZE rcvd: 66

Als Nächstes müssen Sie Ihren DNS-Server auf Caching überprüfen. Sie können dies mit dem Drill-Utility überprüfen.

Führen Sie zuerst den folgenden Befehl aus:

drill google.com | grep "Query time"

Sie sollten die folgende Ausgabe sehen:

;; Abfragezeit: 290 msec

Führen Sie den Befehl erneut aus, um zu überprüfen, ob das Caching funktioniert oder nicht:

drill google.com | grep "Query time"

Sie sollten sehen, dass die Abfragezeit jetzt auf 4 msec sinkt:

;; Abfragezeit: 4 msec

Fazit

Herzlichen Glückwunsch! Sie haben Dnsmasq erfolgreich als lokalen DNS-Server und Ubuntu 20.04 installiert und konfiguriert. Ich hoffe, Sie können es jetzt problemlos in Ihrem lokalen Netzwerk für die Namensauflösung implementieren.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.