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 -yNachdem 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-resolvedSobald 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.confFü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.confSobald 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 -ySobald 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 dnsmasqSie 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=1000Speichern 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.confFügen Sie die folgende Zeile über der Zeile “nameserver 8.8.8.8” hinzu:
nameserver your-server-ipSpeichern 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 --testWenn 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 dnsmasqAn 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 :53Sie 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/hostsFügen Sie die folgende Zeile hinzu:
your-server-ip host1.dns-example.comSpeichern 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 +shortWenn alles in Ordnung ist, sollten Sie Ihre Server-IP in der folgenden Ausgabe sehen:
your-server-ipSie können auch die externe DNS-Auflösung mit dem folgenden Befehl überprüfen:
dig howtoforge.com +shortSie sollten die folgende Ausgabe erhalten:
172.67.68.93
104.26.3.165
104.26.2.165Konfigurieren 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 -ySobald die Installation abgeschlossen ist, müssen Sie die Datei /etc/resolv.conf und den Eintrag Ihres Dnsmasq-DNS-Servers bearbeiten.
nano /etc/resolv.confFügen Sie die folgende Zeile am Anfang der Datei hinzu:
nameserver your-server-ipSpeichern 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.comSie 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: 66Als 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 msecFü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 msecFazit
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.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.