Comment définir mon DNS lorsque le fichier resolv.conf est écrasé?

279

La plupart des informations que je vois en ligne demandent à être modifiées /etc/resolv.conf, mais toutes les modifications que je fais sont simplement annulées.

$ cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- 
#     YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1

Il semble que 127.0.1.1 soit une instance locale de dnsmasq. Les dnsmasqdocs disent d'éditer /etc/resolv.conf. J'ai essayé de mettre des serveurs de noms personnalisés dans /etc/resolv.conf.d/base, mais les modifications ne sont pas apparues /etc/resolv.confaprès l'exécution sudo resolvconf -u.

Pour votre information, je ne souhaite pas modifier le DNS sur chaque connexion, je souhaite définir les paramètres DNS par défaut à utiliser pour toutes les connexions, sauf indication contraire.

MISE À JOUR:

J'ai répondu à cette question moi-même: https://unix.stackexchange.com/a/163506/67024

Je pense que c'est la meilleure solution depuis:

  1. Ça marche.
  2. Il nécessite le moins de changements possible et
  3. Il fonctionne toujours avec le cache DNS de Dnsmasq, plutôt que de le contourner.
Seán Hayes
la source
Mieux vaut répondre à votre question plutôt que de mettre à jour votre question, je pense ... il sera plus facile de trouver la bonne réponse à votre problème
Philippe Gachoud
Il semble que la plupart des réponses sont axées sur Ubuntu et trop compliquées. Une solution universelle pour les utilisateurs NetworkManager est d'ajouter simplement dns=nonedans /etc/NetworkManager/NetworkManager.conf(voir les détails dans ma réponse ci - dessous).
Skippy le Grand Gourou Le
Je pense que cette réponse explique pourquoi le resol.conf est écrasé, alors vous savez comment le configurer.
foman le

Réponses:

250

Je crois que si vous souhaitez remplacer le serveur de noms DNS, vous ajoutez simplement une ligne similaire à celle-ci dans votre basefichier sous resolv.conf.d.

Exemple

$ sudo vim /etc/resolvconf/resolv.conf.d/base

Ensuite, mettez votre liste de serveurs de noms comme suit:

nameserver 8.8.8.8
nameserver 8.8.4.4

Enfin mettre à jour resolvconf:

$ sudo resolvconf -u

Si vous consultez la page de manuel, vous y trouverez une resolvconfdescription des différents fichiers /etc/resolvconf/resolv.conf.d/.

   /etc/resolvconf/resolv.conf.d/base
          File  containing  basic  resolver  information.  The lines in this 
          file are included in the resolver configuration file even when no
          interfaces are configured.

   /etc/resolvconf/resolv.conf.d/head
          File to be prepended to the dynamically generated resolver 
          configuration file.  Normally this is just a comment line.

   /etc/resolvconf/resolv.conf.d/tail
          File to be appended to the dynamically generated resolver 
          configuration file.  To append nothing, make this  an  empty  
          file.   This file is a good place to put a resolver options line 
          if one is needed, e.g.,

              options inet6

Même s'il y a un avertissement en haut du headfichier:

$ cat /etc/resolvconf/resolv.conf.d/head
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

cet avertissement existe afin que, lorsque ces fichiers sont créés, il finisse par se retrouver dans le resolv.conffichier résultant que ces fichiers seront utilisés pour créer. Ainsi, vous auriez tout aussi bien pu ajouter les nameserverlignes décrites ci-dessus pour le basefichier, au headfichier également.

Références

slm
la source
21
Ubuntu 14.04 - quand j'ai mis les serveurs de noms dedans baseet couru resolvconf -u, les serveurs de noms n'ont pas été mis dans resolv.conf - quand j'ai mis les serveurs de noms dans head, ils étaient
HorusKol
7
Ubuntu 14.04 - Doit également commenter la configuration définie dans/run/resolvconf/interface/NetworkManager
bitsoflogic
3
tapez nslookup google.comet la première adresse IP de la liste devrait être votre nouveau serveur de noms, sinon vous vous êtes trompé
frazras
6
Ubuntu 16.04: Fonctionne si ajouté /etc/resolvconf/resolv.conf.d/headuniquement, pas avec base. Confirmé avec nslookup google.com.
Acumenus
3
Au départ, vous devez avoir resolvconfinstallé. Vous pouvez l'installer en le faisant sudo apt-get install resolvconf.
MAChitgarha
79

Je suis également intéressé par cette question et j'ai essayé la solution proposée par @sim.

Pour le tester, je mets

nameserver 8.8.8.8

dans /etc/resolvconf/resolv.conf.d/baseet

nameserver 8.8.4.4

dans /etc/resolvconf/resolv.conf.d/head

Puis j'ai redémarré le réseau avec

sudo service network-manager restart

Le résultat est que /etc/resolv.confressemble

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.4.4
nameserver 127.0.1.1

et nm-tooldéclare que le serveur de dn sont

DNS:             208.67.222.222
DNS:             208.67.220.220

quels sont ceux fournis par mon routeur. D'autre part, le fait de chercher une adresse indique que

;; Query time: 28 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)

Si j'ai raison, je conclus de tout cela que

  1. seule la partie "head" est lue par resolvonf: la partie "base" est en quelque sorte contrôlée par dnsmasq
  2. le serveur dnsserver est forcé à 8.8.4.4 quel que soit le serveur fourni par dhcp, MAIS vous perdez la mise en cache fournie par dnsmasq, car la demande est toujours envoyée à 8.8.4.4.
  3. Dnsmasq utilise toujours SEULEMENT le serveur dnss fourni par dhcp.

Globalement, cela fonctionne, mais je ne pense pas que ce soit le résultat escompté. Je pense qu'une solution plus proche est la suivante. Modifier

sudo vim /etc/dhcp/dhclient.conf

puis ajouter

supersede domain-name-servers 8.8.8.8;

Le résultat est le suivant: resolv.conf contient uniquement 127.0.0.1, ce qui signifie que le cache Dnsmasq est appelé et que nm-tool indique

DNS:             8.8.8.8

ce qui signifie que si le nom recherché n'est pas dans le cache, il est demandé à 8.8.8.8 et non au serveur fourni par dhcp.

Une autre option (peut-être meilleure) consiste à utiliser "prepend" au lieu de "Supersede": de cette manière, si le nom n'est pas résolu par 8.8.8.8, la requête retombe sur l'autre serveur. En fait, nm-tool dit

DNS:             8.8.8.8    
DNS:             208.67.222.222
DNS:             208.67.220.220
brad
la source
4
Une réponse bien meilleure que de pirater les configs NS. Surtout la possibilité de pré-programmer un serveur devant ceux fournis par DHCP. Cela semble être l’équilibre parfait entre la résolution du problème, sans en créer de nouveaux!
Steve Midgley
2
Tellement de clarté et d’idées dans la réponse et pas seulement une commande.
igaurav
3
Salut mec! "remplace les noms de domaine serveurs 8.8.8.8;" est la réponse
Jack
Il est intéressant de noter que nm-tool a été remplacé par nmcli
Fiddy Bux
59

J'ai découvert que vous pouvez modifier les serveurs de noms dnsmasqutilisés en ajoutant les lignes suivantes /etc/dnsmasq.conf:

server=8.8.8.8
server=8.8.4.4

Je n'avais cependant pas de /etc/dnsmasq.conffichier, puisqu'il est installé par le paquet dnsmasq, mais Ubuntu est uniquement fourni avec dnsmasq-base. J'ai couru sudo apt-get install dnsmasq, puis édité /etc/dnsmasq.conf, puis sudo service dnsmasq restartet sudo service network-manager restart.

Je suis allé sudo tail -n 200 /var/log/syslogvérifier mon syslog et vérifier qu'il dnsmasqutilisait les serveurs de noms que j'ai spécifiés:

Oct 21 23:00:54 mylaptop dnsmasq[8611]: using nameserver 8.8.8.8#53
Oct 21 23:00:54 mylaptop dnsmasq[8611]: using nameserver 8.8.4.4#53
Seán Hayes
la source
4
Il y a une raison pour laquelle ceci est marqué comme la meilleure réponse ... parce que c'est en effet! Merci beaucoup! J'ajouterais qu'après toutes les étapes que vous avez mentionnées, un redémarrage du réseau pourrait être nécessaire pour que tout fonctionne correctement (c'était pour moi ... sudo service network-manager restart)
Clint Eastwood
3
Sur Ubuntu 14.04 Server environ deux fois moins de temps qu’un démarrage à froid, aucune connectivité Internet utilisant une URL, mais une adresse IP, ne fonctionnerait. J'ai passé beaucoup de temps à essayer de résoudre ce problème sans succès, j'ai abandonné pendant des mois avant de trouver cette solution. Moi aussi, je pense que c'est la meilleure réponse.
Nate Lockwood le
C'est intriguant que dnsmasq doit être installé. Cela a certes corrigé mon DNS dans une situation normale, mais cela a totalement cassé ma configuration VPN (la connexion VPN échoue maintenant ...)
PlasmaBinturong
22

Pour les situations IP statiques, le Guide du serveur Ubuntu vous invite à modifier le fichier / etc / network / interfaces, qui peut ressembler à ceci:

iface eth0 inet static
address 192.168.3.3
netmask 255.255.255.0
gateway 192.168.3.1
dns-search example.com
dns-nameservers 192.168.3.45 192.168.8.10

Vous modifiez les adresses IP 192.168.3.45 192.168.8.10 pour celles que vous voulez, comme 8.8.8.8

https://help.ubuntu.com/14.04/serverguide/serverguide.pdf Page 38

Rodolpho
la source
Cela semble certainement correct, mais comment puis-je régénérer resolv.conf?!
Joel Berger
3
@ JoelBerger ifdown eth0; ifup eth0.
Dzamo Norton
17
  1. Recherche 'Connexion réseau'
  2. L'ouvrir

                        entrez la description de l'image ici

  3. Ensuite, sélectionnez soit WiFi, soit Ethernet, soit ce que vous utilisez, puis cliquez sur Modifier. Vous aurez ceci:

                  entrez la description de l'image ici

  4. Sélectionnez ipv4 dans les onglets

  5. Sélectionner des adresses uniquement dans la méthode
  6. Entrez votre nom DNS ci-dessous et enregistrez-le.

  7. Vous avez terminé

pa1pal
la source
Je devrais le faire pour chaque connexion réseau cependant. Dans le passé, vous pouviez changer la valeur par défaut pour toutes les connexions, ce que je cherchais à faire ici.
Seán Hayes
2
Je t'aime! cette interface m'a sauvé les fesses de sudo et vim: '(
Luke
Utilisation de Mint (sur Ubuntu 14.04) - mais aussi de KDE - pour une raison quelconque, la configuration des serveurs DNS dans l'interface graphique Network Manager n'a aucune incidence sur les paramètres DNS utilisés dans un terminal
HorusKol
2
Meilleure réponse à mon humble avis. Sur Ubuntu 14.04, j'ai 2 adresses IP externes pour DNS qui ne reconnaissent pas les clients au sein de mon réseau domestique. Laisser Method sur 'Automatic (DHCP)' pour la connexion câblée a ajouté l'adresse IP de mon routeur à la liste existante. Pour la connexion sans fil sur wlan0, cela ne fonctionnait pas, mais Méthode sur "Adresses automatiques (DHCP) uniquement" remplaçait les adresses externes par l'adresse IP de mon routeur, puis cela fonctionnait également. Appliquez les modifications avec sudo service network-manager restart, attendez un peu, vérifiez avec nmcli d list | grep 'DNS\|IP-IFACE'. Et cinglez votre client interne par son nom.
RolfBly
13

Une solution de contournement rapide et incorrecte qui n'a pas encore été mentionnée consiste à définir l'indicateur immuable sur le resolv.conffichier juste après l'avoir modifié.

$ sudo nano /etc/resolv.conf

Ajoutez ceci et enregistrez:

nameserver 8.8.8.8

Ensuite:

$ sudo chattr +i /etc/resolv.conf

Cela devrait faire l'affaire. Je le fais aussi sur mon système.

YouniS Bensalah
la source
18
Chaque fois que votre solution implique chattr, ce n'est pas vraiment une solution.
Jeff Jirsa
1
C’est ce que je fais sur les systèmes où je dois changer temporairement le DNS pour une raison quelconque et ne pas vouloir modifier la configuration. Comme solution permanente, je ne le recommanderais pas.
hochl
3
"Solution rapide et sale"
YouniS Bensalah,
10
Ce n'est pas sale. Les programmes qui détruisent la configuration locale parce qu'ils pensent savoir mieux sont sales.
11

Configuration DNS sous Linux

L' utilisation du DNS sur linux est fait sur un ensemble de routines dans la bibliothèque C qui donnent accès au nom de domaine Internet (DNS). Le fichier de configuration du résolveur ( resolv.conf) contient des informations lues par les routines du résolveur lors de leur premier appel par un processus. En bref, chaque processus demandant au DNS lira /etc/resolv.confla bibliothèque. Le NSS est superposé à cela et est configuré par /etc/nsswitch.conf.

Les configurations Linux DNS sont situées dans le fichier /etc/resolv.conf MAIS il existe un certain nombre de programmes / services qui souhaitent gérer et gérer automatiquement le fichier de configuration DNS /etc/resolv.conf. Dans certaines situations, vous souhaiterez peut-être gérer ce fichier vous-même. Chaque programme / service gérant le DNS a ses propres fichiers de configuration tels que /etc/dnsmasq.conf(pour le service dnsmasq) et ajoute la configuration DNS à la modification de la connexion et / ou à d'autres événements ... une solution rapide consiste à verrouiller le fichier de configuration DNS, chattr +i /etc/resolv.confmais cela n'est pas recommandé. dans certains cas, une meilleure solution consiste à configurer correctement tous les programmes / services utilisant le DNS, comme (dnsmasq / network-manager / resolvconf / etc.)

Reprendre le contrôle du DNS

Voici une liste exhaustive des configurations permettant de récupérer le contrôle de resolv.conf et d'éviter de l'écraser ( comment désactiver / configurer le DNS depuis un emplacement autre que resolv.conf ). Notez que resolvconf est un programme indépendant de resolv.conf, également En fonction de votre système / configuration, il est possible que vous n'ayez pas un ou plusieurs des programmes listés ici.

1. Resolvconf:

Fichiers de configuration

cat /etc/resolvconf/resolv.conf.d/head
nameserver 8.8.4.4
cat /etc/resolvconf/resolv.conf.d/base
nameserver 8.8.4.4

Mettre à jour la configuration

sudo resolvconf -u

Désactiver resolvconf

systemctl disable --now resolvconf.service 

2. Service Dnsmasq:

Fichiers de configuration

cat /etc/dnsmasq.conf
server=1.1.1.1
server=8.8.4.4

Mettre à jour la configuration

sudo systemctl restart dnsmasq.service

3. Gestionnaire de réseau:

Fichiers de configuration

/etc/NetworkManager/*

Désactiver le DNS

$ cat /etc/NetworkManager/conf.d/no-dns.conf
[main]
dns=none

Activer le DNS

$ cat /etc/NetworkManager/conf.d/dns.conf
[main]
dns=default

[global-dns]
searches=example.com

[global-dns-domain-*]

Utiliser le service résolu

$ cat /usr/lib/NetworkManager/conf.d/resolved.conf 
[main]
dns=systemd-resolved

Utilisez resolvconf

$ cat /usr/lib/NetworkManager/conf.d/resolvconf.conf 
[main]
rc-manager=resolvconf

Mettre à jour la configuration

systemctl restart NetworkManager.service

4. Interfaces réseau:

Fichiers de configuration

$ cat /etc/network/interfaces
#nameservers
# or dns-search like so
# dns-search x.y 
dns-nameservers 4.4.4.4 8.8.8.8

Mettre à jour la configuration

reboot

5. Client DHCP:

Fichiers de configuration

$ cat /etc/dhcp3/dhclient.conf
supersede domain-name-servers <dns_ip_address1>,<dns_ip_address2>;

Mettre à jour la configuration

reboot

6. Service Rdnssd:

Désactiver rdnssd

systemctl disable --now rdnssd.service

7. Service résolu:

Désactiver résolu

systemctl disable --now systemd-resolved.service

8. Netconfig:

Fichiers de configuration

/etc/sysconfig/network/config

Désactiver netconfig

cat /etc/sysconfig/network/config
NETCONFIG_DNS_POLICY=""

Mettre à jour la configuration

reboot

Configuration du serveur DNS

Exemple de /etc/resolv.confconfiguration

#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
intika
la source
10

Mon problème était un peu différent, je voulais redéfinir les serveurs DNS de mes routeurs. J'ai trouvé ce lien sur Ubuntu: https://wiki.ubuntu.com/OverrideDNSServers

Il dit: Si vous souhaitez remplacer les paramètres DNS fournis par un serveur DHCP, ouvrez

/etc/dhcp3/dhclient.conf

et ajoutez la ligne suivante:

supersede domain-name-servers <dns_ip_address1>,<dns_ip_address2>;

remplacer des <dns_ip_address*>éléments avec le contenu approprié.

Ryan
la source
C'est la réponse qui a résolu mon problème.
Michael
Parfait. Il suffit d'ajouter que vous devez redémarrer le service réseau de sudo pour activer les modifications.
Nick Triantafillou
Et si nous n'avons pas ce dhcp3dossier? J'ai Xubuntu 17.10, a-t-il été déplacé /etc/dhcpsimplement?
PlasmaBinturong
4

Peut-être qu'il me manque quelque chose, mais selon les instructions de configuration disponibles à l' adresse https://help.ubuntu.com/14.04/serverguide/network-configuration.html, vous ne pouvez mettre à jour que ce qui suit. Je ne suis pas en train d'exécuter un proxy - juste une machine derrière un pare-feu et un DNS local (l'exemple montre Googles, mais réglez-le sur ce dont vous avez besoin).

nano /etc/network/interfaces

Défaut:

# This file...
# and how to activate...

# The loopback...
auto local
iface lo inet loopback

# The primary network interface 
auto eth0
iface eth0 inet dhcp

MIS À JOUR:

# This file...
# and how to activate...

# The loopback...
auto local
iface lo inet loopback

# The primary network interface 
#iface eth0 inet dhcp
iface eth0 inet static
address x.x.x.x
netmask 255.255.255.0
gateway x.x.x.x

#nameservers
# you may not need dns-search
# I use it because I'm running this on a Windows network 
# so its useful to have
# dns-search x.y 
dns-nameservers 4.4.4.4 8.8.8.8

Redémarrez, si vous le pouvez.

TooIgnorantToNotBeAnonymous
la source
3

Essayez d'ajouter dns-nameservers XXX.XXX.XXX.Xdans votre /etc/networking/interfacesfichier.

Mike
la source
Laissez un commentaire lorsque vous votez à la baisse, s'il vous plaît. C'est la méthode donnée dans le manuel , page 38.
Zook
1
Le manuel non mentionné montre toutes les adresses IP sur une ligne. Cette réponse semble suggérer d'ajouter une ligne. Et pourquoi le dernier chiffre ne fait-il qu'un X de large? Je pense que c’est principalement le style de discussion très informel et très incertain qui a recueilli les critiques défavorables, @Zook.
Cees Timmerman
2

Certaines des réponses ici fonctionnent très bien. Cependant je ne suis pas heureux avec le fait que je dois effectuer manuellement les fichiers de configuration juste pour définir le « bon » DNSque je l' ai déjà je reçois plus DHCPavec NetworkManager.

J'ai creusé un peu et j'ai remarqué que le /etc/resolv.conffichier était en fait un lien pointant vers /run/systemd/resolve/stub-resolv.conf. Après quelques essais, il apparaît que ce /run/systemd/resolve/répertoire contient un autre fichier nommé resolv.confcontenant déjà les paramètres que vous avez reçus DHCP. Ainsi, au lieu d'avoir à écraser / créer manuellement les fichiers de configuration /etc/, vous pouvez simplement créer un nouveau lien /etc/resolv.confpour pointer vers le /run/systemd/resolve/resolv.conffichier et tout devrait bien se passer:

# sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

Vous devriez maintenant pouvoir modifier les paramètres, même à partir du gestionnaire de réseau dans Gnome. :)

Vous ne savez pas si cela fonctionnera sur les versions antérieures d'ubuntu, mais sur Ubuntu 17.10.

tftd
la source
lorsque nous exécutons systemd-resolve --flush-cachele fichier lié d'origine est apparemment coupé, la réponse ci-dessus rétablit la fonctionnalité d'origine
hafizhanindito
1

EDIT MAI 6,2016

J'ai écrit un script pour mettre à jour tous les paramètres des connexions système du /etc/Network-Manager/system-connections/répertoire. L'interface graphique que vous utilisez pour modifier des connexions individuelles modifie un fichier particulier de ce répertoire. Le script met à jour tous les fichiers - il recherche simplement ceux qui n'ont pas défini DNS avec grep et le définit avec awk.

Puisque l'accès à ces fichiers nécessite un sudoaccès, exécutez ce script avec sudopuis - redémarrez le gestionnaire de réseau

#!/bin/bash
# Author: Serg Kolo
# Date: May 6, 2015
# Description: this script checks all settings for connections in 
# /etc/NetworkManager/system-connections/ , and if there's no custom
# dns set , this script sets it;
# NOTE: run sudo service network-manager restart after running this script

set -x

for file in /etc/NetworkManager/system-connections/* ; do
        grep 'dns=208.67.220.220;' "$file"  || ( awk '{print;if ($1=="[ipv4]"){getline; print "method=auto\ndns=208.67.220.
220;\nignore-auto-dns=true"}}' "$file" > .tmpfile && ( cat .tmpfile > "$file") )
done

Script en action:

entrez la description de l'image ici

POSTE ORIGINAL Certains utilisateurs ont souligné ici que le DNS est contrôlé par dnsmasq. C'est vraiment vrai. Je l' ai fait face à un problème un peu plus petite, où peu importe comment je changé headou bodydans /etc/resolvconf/resolv.conf.d, mon ordinateur n'a pas pu accéder réellement interné par nom de domaine - ne travaillant qu'avec des adresses IP.

Ce que j'ai fait est d'éditer le /etc/NetworkManager/NetworkManager.conffichier. A l' origine, il a dit , dns=dnsmasqmais je l' ai changé: dns=208.67.222.222. Bien que cette façon, nm-toolne mentionne pas 208.67.222.222, j'étais toujours en mesure d'utiliser des noms de domaine, et pas seulement les adresses IP.

Voici à quoi NetworkManager.confressemble mon fichier:

[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq
dns=208.67.222.222

[ifupdown]
managed=false

REMARQUE: pour plus de détails sur mon problème et cette solution, reportez-vous à mon message sur askubuntu.com .

MISE À JOUR # 1

À mon retour de l'université aujourd'hui, j'ai découvert que je ne pouvais pas me connecter à mon réseau WiFi domestique. J'ai lu un peu dessus man NetworkManager.confet il s'avère que dns=in [main]est en fait une ligne pour les plug-ins, donc line dns=dnsmasqest en train d'ajouter le plug-in dnsmasq au NetworkManager, apparemment.

Donc, ma solution fonctionnait toujours, mais pas comme je l'avais prévu. Voici un extrait de la page de manuel:

dns=plugin1,plugin2, ... List DNS plugin names separated by ','. 

Les plugins DNS sont utilisés pour fournir la fonctionnalité de serveur de noms de mise en cache locale (qui accélère les requêtes DNS) et pour transmettre les données DNS aux applications qui les utilisent.

Donc, en paramétrant, dns=208.67.222.222j'ai peut-être, en gros, empêché NetworkManager d'utiliser ce plug-in, qui utiliserait autrement le serveur DNS local (qui apparemment ne fonctionne pas).

Sergiy Kolodyazhnyy
la source
1

Il y a deux méthodes

Méthode 1

Le serveur DNS à utiliser peut être modifié en mettant à jour le headfichier sousresolv.conf.d

$ echo 'nameserver 1.1.1.1' | sudo tee /etc/resolvconf/resolv.conf.d/base

puis courir

$ sudo resolvconf -u

Ce qui précède va générer un resolv.conffichier générique dans le /etcrépertoire. Toutes vos demandes de résolution seront envoyées au serveur de noms susmentionné. Résolu

Cependant, cela a des implications. Lorsque vous utilisez resolvconfpour interroger directement les 1.1.1.1résolutions d'adresse, la puissance de la mise en cache fournie par Dnsmasq a disparu. Chaque demande ira à1.1.1.1

Méthode 2

Si vous ne voulez pas que ce qui précède se produise et que vous utilisiez dnsmasq pour les résolutions DNS, reportez - vous à cette réponse. La réponse est simplement décrite ici.

Ajoutez le contenu suivant dans le /etc/dnsmasq.conffichier.

serveur = 1.1.1.1

Puis redémarrez le service Dnsmasq

$ sudo systemctl restart dnsmasq.service

Les choses vont bien. Résolu

Pragathees
la source
0

Le moyen facile de changer de DNS:

$ sudo nano /etc/network/interfaces

Si des problèmes surviennent, installez nano:

$ sudo apt-get install nano -y

puis ..

  1. trouve ça: dns-nameservers
  2. si vous ne le trouvez pas il suffit de taper dedans
  3. J'ai fait le mien comme ça: dns-nameservers 199.85.126.10 199.85.127.10

J'espère que c'est la meilleure façon, je l'ai fait comme ça sur un VPS en passant.

Saif Salim
la source
0

sur la racine:

  1. commenter dns=dnsmasqsur/etc/NetworkManager/NetworkManager.conf
  2. ajouter supersede domain-name-servers 4.2.2.1,4.2.2.3,4.2.2.5,4.2.2.4,4.2.2.1,4.2.2.2;à la fin de/etc/dhcp/dhclient.conf
  3. sudo service network-manager restart

Les modifications suivantes sont apportées comme suit:

$ sudo sed -i 's/dns\x3Ddnsmasq/\x23dns\x3Ddnsmasq/' \
   /etc/NetworkManager/NetworkManager.conf

$ echo 'supersede domain-name-servers 4.2.2.1,4.2.2.3,4.2.2.5,4.2.2.4,4.2.2.1,4.2.2.2;' | \
   sudo tee --append /etc/dhcp/dhclient.conf

$ sudo service network-manager restart

Attendez 7/10 secondes pour terminer le processus de redémarrage, vérifiez votre configuration avec "nslookup nist.gov". Fonctionne bien sur Ubuntu LTS 14.04.

Sébastien Willemijns
la source
0

NB: Comme la plupart des réponses, celle-ci suppose l'utilisation de NetworkManager. Cependant, contrairement à la plupart des autres réponses, cela ne suppose pas l’utilisation de resolvconf, dhclientni autre chose - prenez garde qu’elles puissent prendre le relais (voir mise à jour).

Compte tenu du nombre de points de vue sur cette question, il est assez incroyable que cette solution à 8 caractères n'ait pas encore été publiée: selon man NetworkManager.conf,

dns: […] none: NetworkManager ne modifiera pas le fichier resolv.conf. Cela implique rc-manager non géré

Donc ajouter

dns=none

dans la [main]section /etc/NetworkManager/NetworkManager.confpuis redémarrez NetworkManager et il ne sera plus modifié /etc/resolv.conf.

Notez que ce paramètre rc-manager=unmanageddoit être équivalent à dns=none, et que le paramétrage rc-manager=symlinkassocié à /etc/resolv.confun lien symbolique peut être une meilleure idée (lire la page de manuel mentionnée ci-dessus).

Mise à jour :

Après que NetworkManager ait cessé d'écraser /etc/resolv.conf, j'ai pensé qu'il dhcpcdétait déjà remplacé /etc/resolv.confpar un fichier vide inutile au démarrage. La page de manuel de dhcpcd.confaidé, il suffit d'ajouter

nohook resolv.conf

dans ton dhcpcd.conf(le mien est dedans /etc/dhcpcd.conf).

Skippy le Grand Gourou
la source
0

Sur mon serveur centos7 Linux, la meilleure façon de changer cette option était d'utiliser

nmtui

commande qui n'est suggérée dans aucune réponse ici. Vous pouvez modifier les serveurs de noms dans cet outil. Lorsque vous modifiez les options de networkmanager à partir de cet utilitaire, elles sont automatiquement appliquées /etc/resolv.confaprès le redémarrage. Ici vous pouvez trouver plus d'informations .

Mojtaba Rezaeian
la source