Configurazione DNS in Linux
L'utilizzo del DNS su Linux viene eseguito su una serie di routine nella libreria C che forniscono accesso a Internet Domain Name System (DNS). Il file di configurazione del resolver ( resolv.conf
) contiene informazioni che vengono lette dalle routine del resolver la prima volta che vengono invocate da un processo. In breve ogni processo che richiede DNS leggerà /etc/resolv.conf
sulla libreria. L'NSS è sovrapposto a questo, ed è configurato da /etc/nsswitch.conf
.
La configurazione DNS di Linux si trova nel file /etc/resolv.conf
MA esistono numerosi programmi / servizi che vogliono gestire e gestire automaticamente il file di configurazione DNS su /etc/resolv.conf
. In alcune situazioni potresti voler gestire questo file da solo. Ogni programma / servizio che gestisce DNS ha i propri file di configurazione come /etc/dnsmasq.conf
(per il servizio dnsmasq) e aggiunge la configurazione DNS alla modifica della connessione e / o su altri eventi ... una soluzione rapida è quella di bloccare il file di configurazione DNS chattr +i /etc/resolv.conf
ma questo non è raccomandato in alcuni casi, una soluzione migliore consiste nell'impostare correttamente tutti i programmi / servizi utilizzando DNS come (dnsmasq / network-manager / resolvconf / ecc.)
Ripristino del controllo del DNS
Ecco un elenco esaustivo di configurazioni per ripristinare il controllo di resolv.conf ed evitare di sovrascriverlo ( come disabilitare / configurare DNS da un'altra posizione diversa da resolv.conf ) notare che resolvconf è un programma indipendente da resolv.conf, anche a seconda del tuo sistema / configurazione potresti non avere uno o molti dei programmi elencati qui.
1. Resolvconf:
File di configurazione
cat /etc/resolvconf/resolv.conf.d/head
nameserver 8.8.4.4
cat /etc/resolvconf/resolv.conf.d/base
nameserver 8.8.4.4
Aggiorna la configurazione
sudo resolvconf -u
Disabilita resolvconf
systemctl disable --now resolvconf.service
2. Servizio Dnsmasq:
File di configurazione
cat /etc/dnsmasq.conf
server=1.1.1.1
server=8.8.4.4
Aggiorna la configurazione
sudo systemctl restart dnsmasq.service
3. Gestore di rete:
File di configurazione
/etc/NetworkManager/*
Disabilita DNS
$ cat /etc/NetworkManager/conf.d/no-dns.conf
[main]
dns=none
Abilita DNS
$ cat /etc/NetworkManager/conf.d/dns.conf
[main]
dns=default
[global-dns]
searches=example.com
[global-dns-domain-*]
Usa il servizio risolto
$ cat /usr/lib/NetworkManager/conf.d/resolved.conf
[main]
dns=systemd-resolved
Usa resolvconf
$ cat /usr/lib/NetworkManager/conf.d/resolvconf.conf
[main]
rc-manager=resolvconf
Aggiorna la configurazione
systemctl restart NetworkManager.service
4. Interfacce di rete:
File di configurazione
$ cat /etc/network/interfaces
#nameservers
# or dns-search like so
# dns-search x.y
dns-nameservers 4.4.4.4 8.8.8.8
Aggiorna la configurazione
reboot
5. Client DHCP:
File di configurazione
$ cat /etc/dhcp3/dhclient.conf
supersede domain-name-servers <dns_ip_address1>,<dns_ip_address2>;
Aggiorna la configurazione
reboot
6. Servizio Rdnssd:
Disabilita rdnssd
systemctl disable --now rdnssd.service
7. Servizio risolto:
Disabilita risolta
systemctl disable --now systemd-resolved.service
8. Netconfig:
File di configurazione
/etc/sysconfig/network/config
Disabilita netconfig
cat /etc/sysconfig/network/config
NETCONFIG_DNS_POLICY=""
Aggiorna la configurazione
reboot
Impostazione del server DNS
Esempio di una /etc/resolv.conf
configurazione
#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