Änderst du auf deinem Linux-Server die Datei /etc/resolv.conf und nach dem nächsten Neustart steht wieder der alte DNS-Server drin, überschreibt ein anderer Dienst die Datei. Welcher das ist, findest du mit einem Befehl heraus. Den DNS-Server trägst du dann dort ein, wo dieser Dienst ihn liest.

Gemeint ist hier der Resolver, also der DNS-Server, den dein Server selbst für Anfragen nutzt. Die Nameserver deiner Domain sind etwas anderes, dafür lies Wie kann ich den Nameserver ändern?

1. Herausfinden, wer resolv.conf verwaltet

ls -l /etc/resolv.conf
head -5 /etc/resolv.conf
Das siehst duDas verwaltet die DateiWeiter bei
Link auf ../run/systemd/resolve/stub-resolv.conf, darin nameserver 127.0.0.53systemd-resolved (Ubuntu, neuere Debian-Installationen)Schritt 2
Kommentar „Generated by resolvconf“ oder Link nach /run/resolvconf/Paket resolvconfSchritt 3
Kommentar „Generated by NetworkManager“NetworkManagerSchritt 3
Normale Datei ohne Hinweisniemand oder der DHCP-ClientSchritt 4

2. systemd-resolved

Hier gilt resolv.conf nur als Wegweiser auf den lokalen Dienst unter 127.0.0.53. Die echten DNS-Server stellst du in /etc/systemd/resolved.conf ein:

[Resolve]
DNS=9.9.9.9 1.1.1.1 2620:fe::fe 2606:4700:4700::1111
systemctl restart systemd-resolved
resolvectl status

Zeigt resolvectl status bei deiner Netzwerkkarte weiterhin andere Server, kommen die aus der Netzwerkkonfiguration. Unter Ubuntu ist das Netplan. Trag die Server dort in der Datei unter /etc/netplan/ ein und übernimm sie mit netplan apply:

 nameservers:
 addresses: [9.9.9.9, 2620:fe::fe]

Steht im Kopf der Netplan-Datei, dass cloud-init sie erzeugt, überschreibt cloud-init deine Änderung beim nächsten Start. Das verhinderst du mit einer Datei /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg und dem Inhalt network: {config: disabled}.

3. resolvconf oder NetworkManager

Mit dem Paket resolvconf und klassischem ifupdown trägst du die Server in /etc/network/interfaces bei deiner Netzwerkkarte ein und startest das Netzwerk neu:

 dns-nameservers 9.9.9.9 2620:fe::fe

Mit NetworkManager setzt du sie für die Verbindung, zum Beispiel nmcli con mod "Verbindungsname" ipv4.dns "9.9.9.9" ipv4.ignore-auto-dns yes, danach nmcli con up "Verbindungsname".

4. Normale Datei

Ist /etc/resolv.conf eine gewöhnliche Datei, bearbeitest du sie direkt. Wird sie trotzdem überschrieben, ist meist der DHCP-Client schuld. Unter Debian verhinderst du das in /etc/dhcp/dhclient.conf mit einer Zeile wie supersede domain-name-servers 9.9.9.9;

Als letzter Ausweg lässt sich die Datei mit chattr +i /etc/resolv.conf schreibschützen. Das ist ein Holzhammer: Auch Updates und Werkzeuge, die die Datei bewusst ändern wollen, scheitern dann still. Rückgängig machst du es mit chattr -i.

Bekannte öffentliche DNS-Server

Trag mindestens zwei Server ein, am besten von zwei verschiedenen Anbietern. Stand der Adressen: Oktober 2026.

AnbieterIPv4IPv6Besonderheit
Quad99.9.9.9
149.112.112.112
2620:fe::fe
2620:fe::9
Sitz in der Schweiz, blockt bekannte Malware-Domains, prüft DNSSEC
Cloudflare1.1.1.1
1.0.0.1
2606:4700:4700::1111
2606:4700:4700::1001
sehr schnell, ungefiltert
Google8.8.8.8
8.8.4.4
2001:4860:4860::8888
2001:4860:4860::8844
ungefiltert
OpenDNS (Cisco)208.67.222.222
208.67.220.220
2620:119:35::35
2620:119:53::53
blockt Phishing
DNS4EU86.54.11.100
86.54.11.200
2a13:1001::86:54:11:100
2a13:1001::86:54:11:200
europäisches Projekt, Variante „unfiltered“; gerichtlich angeordnete Sperren gelten trotzdem
DNS4EU Protective86.54.11.1
86.54.11.201
2a13:1001::86:54:11:1
2a13:1001::86:54:11:201
wie oben, zusätzlich Schutz vor Malware und Phishing
AdGuard DNS94.140.14.14
94.140.15.15
2a10:50c0::ad1:ff
2a10:50c0::ad2:ff
blockt Werbung und Tracker, für Server meist nicht sinnvoll

Auf einem Server nimmst du besser einen ungefilterten oder nur gegen Malware filternden Resolver. Werbefilter können APIs, Update-Server oder Tracking-Endpunkte deiner eigenen Anwendung blocken, und die Fehlersuche wird mühsam.

Verschlüsselt: DNS over TLS und DNS over HTTPS

Normale DNS-Anfragen gehen unverschlüsselt über das Netz. Mit DNS over TLS (DoT, Port 853) oder DNS over HTTPS (DoH, Port 443) sieht unterwegs niemand, welche Namen dein Server auflöst, und niemand kann die Antworten fälschen.

AnbieterDoT-HostnameDoH-Adresse
Quad9dns.quad9.nethttps://dns.quad9.net/dns-query
Cloudflareone.one.one.onehttps://cloudflare-dns.com/dns-query
Googledns.googlehttps://dns.google/dns-query
OpenDNShttps://doh.opendns.com/dns-query
DNS4EUunfiltered.joindns4.euhttps://unfiltered.joindns4.eu/dns-query
AdGuard DNSdns.adguard-dns.comhttps://dns.adguard-dns.com/dns-query

systemd-resolved kann DoT von Haus aus. Hinter dem # steht der Name, gegen den das Zertifikat geprüft wird. In /etc/systemd/resolved.conf:

[Resolve]
DNS=9.9.9.9#dns.quad9.net 2620:fe::fe#dns.quad9.net 1.1.1.1#one.one.one.one 2606:4700:4700::1111#one.one.one.one
DNSOverTLS=yes

Nach systemctl restart systemd-resolved zeigt resolvectl status bei „Protocols“ den Eintrag +DNSOverTLS. Mit DNSOverTLS=yes bricht die Auflösung ab, wenn Port 853 gesperrt ist. Willst du lieber auf unverschlüsselt zurückfallen, nimm opportunistic. DoH kann systemd-resolved nicht, dafür brauchst du einen lokalen Proxy wie dnscrypt-proxy.

Testen

getent hosts prepaid-hoster.de
dig prepaid-hoster.de +short

Kommt eine Adresse zurück, funktioniert die Namensauflösung. Prüfe nach einem Neustart noch einmal mit resolvectl status oder cat /etc/resolv.conf, ob deine Server noch eingetragen sind.

Smart Value ohne IPv4

Hat dein Server nur IPv6, erreicht er IPv4-Resolver wie 9.9.9.9 oder 1.1.1.1 nicht. Trag dann ausschließlich IPv6-Adressen ein, etwa 2620:fe::fe (Quad9) oder 2606:4700:4700::1111 (Cloudflare). Mehr dazu in Mein Smart Value hat nur IPv6. Wie verbinde ich mich?