Ä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 du | Das verwaltet die Datei | Weiter bei |
|---|---|---|
Link auf ../run/systemd/resolve/stub-resolv.conf, darin nameserver 127.0.0.53 | systemd-resolved (Ubuntu, neuere Debian-Installationen) | Schritt 2 |
Kommentar „Generated by resolvconf“ oder Link nach /run/resolvconf/ | Paket resolvconf | Schritt 3 |
| Kommentar „Generated by NetworkManager“ | NetworkManager | Schritt 3 |
| Normale Datei ohne Hinweis | niemand oder der DHCP-Client | Schritt 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.
| Anbieter | IPv4 | IPv6 | Besonderheit |
|---|---|---|---|
| Quad9 | 9.9.9.9149.112.112.112 | 2620:fe::fe2620:fe::9 | Sitz in der Schweiz, blockt bekannte Malware-Domains, prüft DNSSEC |
| Cloudflare | 1.1.1.11.0.0.1 | 2606:4700:4700::11112606:4700:4700::1001 | sehr schnell, ungefiltert |
8.8.8.88.8.4.4 | 2001:4860:4860::88882001:4860:4860::8844 | ungefiltert | |
| OpenDNS (Cisco) | 208.67.222.222208.67.220.220 | 2620:119:35::352620:119:53::53 | blockt Phishing |
| DNS4EU | 86.54.11.10086.54.11.200 | 2a13:1001::86:54:11:1002a13:1001::86:54:11:200 | europäisches Projekt, Variante „unfiltered“; gerichtlich angeordnete Sperren gelten trotzdem |
| DNS4EU Protective | 86.54.11.186.54.11.201 | 2a13:1001::86:54:11:12a13:1001::86:54:11:201 | wie oben, zusätzlich Schutz vor Malware und Phishing |
| AdGuard DNS | 94.140.14.1494.140.15.15 | 2a10:50c0::ad1:ff2a10: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.
| Anbieter | DoT-Hostname | DoH-Adresse |
|---|---|---|
| Quad9 | dns.quad9.net | https://dns.quad9.net/dns-query |
| Cloudflare | one.one.one.one | https://cloudflare-dns.com/dns-query |
dns.google | https://dns.google/dns-query | |
| OpenDNS | https://doh.opendns.com/dns-query | |
| DNS4EU | unfiltered.joindns4.eu | https://unfiltered.joindns4.eu/dns-query |
| AdGuard DNS | dns.adguard-dns.com | https://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?