DNS-Konfiguration unter Linux
Die DNS-Nutzung unter Linux erfolgt über eine Reihe von Routinen in der C-Bibliothek, die den Zugriff auf das Internet Domain Name System (DNS) ermöglichen. Die Resolver-Konfigurationsdatei ( resolv.conf
) enthält Informationen, die von den Resolver-Routinen gelesen werden, wenn sie zum ersten Mal von einem Prozess aufgerufen werden. Kurz gesagt, jeder Prozess, der DNS anfordert, liest /etc/resolv.conf
die Bibliothek. Das NSS ist darüber geschichtet und wird von konfiguriert /etc/nsswitch.conf
.
Die Linux-DNS-Konfiguration befindet sich in der Datei, /etc/resolv.conf
ABER es gibt eine Reihe von Programmen / Diensten, die die DNS-Konfigurationsdatei unter automatisch verwalten und verwalten möchten /etc/resolv.conf
. In einigen Situationen möchten Sie diese Datei möglicherweise selbst verwalten. Jedes Programm / Dienst, der DNS verwaltet, hat seine eigenen Konfigurationsdateien wie /etc/dnsmasq.conf
(für den DNSMASQ-Dienst) und hängt die DNS-Konfiguration an, wenn sich die Verbindung ändert und / oder wenn andere Ereignisse eintreten. Eine schnelle Lösung besteht darin, die DNS-Konfigurationsdatei mit zu sperren. chattr +i /etc/resolv.conf
Dies wird jedoch nicht empfohlen In bestimmten Fällen ist es eine bessere Lösung, alle Programme / Dienste mithilfe des DNS korrekt einzurichten (dnsmasq / network-manager / resolvconf / etc.)
Die Kontrolle über DNS zurückerhalten
Hier finden Sie eine vollständige Liste der Setups, mit denen Sie die Steuerung von resolv.conf wiederherstellen und ein Überschreiben vermeiden können ( Deaktivieren / Einrichten von DNS von einem anderen Ort als resolv.conf ). Beachten Sie, dass resolvconf auch ein unabhängiges Programm von resolv.conf ist Abhängig von Ihrem System / Ihrer Konfiguration verfügen Sie möglicherweise nicht über eines oder mehrere der hier aufgeführten Programme.
1. Resolvconf:
Konfigurationsdateien
cat /etc/resolvconf/resolv.conf.d/head
nameserver 8.8.4.4
cat /etc/resolvconf/resolv.conf.d/base
nameserver 8.8.4.4
Aktualisiere die Konfiguration
sudo resolvconf -u
Deaktivieren Sie resolvconf
systemctl disable --now resolvconf.service
2. Dnsmasq Service:
Konfigurationsdateien
cat /etc/dnsmasq.conf
server=1.1.1.1
server=8.8.4.4
Aktualisiere die Konfiguration
sudo systemctl restart dnsmasq.service
3. Netzwerkmanager:
Konfigurationsdateien
/etc/NetworkManager/*
DNS deaktivieren
$ cat /etc/NetworkManager/conf.d/no-dns.conf
[main]
dns=none
DNS aktivieren
$ cat /etc/NetworkManager/conf.d/dns.conf
[main]
dns=default
[global-dns]
searches=example.com
[global-dns-domain-*]
Verwenden Sie den aufgelösten Dienst
$ cat /usr/lib/NetworkManager/conf.d/resolved.conf
[main]
dns=systemd-resolved
Benutze resolvconf
$ cat /usr/lib/NetworkManager/conf.d/resolvconf.conf
[main]
rc-manager=resolvconf
Aktualisiere die Konfiguration
systemctl restart NetworkManager.service
4. Netzwerkschnittstellen:
Konfigurationsdateien
$ cat /etc/network/interfaces
#nameservers
# or dns-search like so
# dns-search x.y
dns-nameservers 4.4.4.4 8.8.8.8
Aktualisieren Sie die Konfiguration
reboot
5. DHCP-Client:
Konfigurationsdateien
$ cat /etc/dhcp3/dhclient.conf
supersede domain-name-servers <dns_ip_address1>,<dns_ip_address2>;
Aktualisieren Sie die Konfiguration
reboot
6. Rdnssd Service:
Deaktivieren Sie rdnssd
systemctl disable --now rdnssd.service
7. Gelöster Dienst:
Deaktivieren Sie gelöst
systemctl disable --now systemd-resolved.service
8. Netconfig:
Konfigurationsdateien
/etc/sysconfig/network/config
Deaktivieren Sie netconfig
cat /etc/sysconfig/network/config
NETCONFIG_DNS_POLICY=""
Aktualisieren Sie die Konfiguration
reboot
Einstellen des DNS-Servers
Beispiel einer /etc/resolv.conf
Konfiguration
#Cloudflare
nameserver 1.0.0.1
#Google
#nameserver 8.8.8.8
#nameserver 8.8.4.4
#Cloudflare
#nameserver 1.1.1.1
#Classic Config
#nameserver 192.168.1.1
#search lan