Question Comment ajouter un serveur DNS via resolv.conf?


Est /etc/resolv.conf inutile dans Ubuntu 12.04 LTS (Pangolin précis)?

Je vois que les informations du serveur DNS sont stockées dans Gestionnaire de réseau à présent. le nmcli outil de ligne de commande peut lister cela pour vous.

Si je veux en ajouter un autre DNS serveur, l'ajoutera à /etc/resolv.conf en utilisant le resolvconf aide au forfait?


192
2018-05-03 00:00


origine


Je pense que la commande mentionnée ci-dessus devrait être nm-tool, ne pas nmcli. - Jesse Glick


Réponses:


Si /etc/resolv.conf contient nameserver 127.0.0.1 puis ajouter des entrées à /etc/resolvconf/resolv.conf.d/tail ne fera vraiment rien d'utile.

Si vous utilisez NetworkManager, vous devez plutôt ajouter des adresses de serveur de manière statique via indicateur de réseau: Modifier les connexions ... | Modifier ... | Paramètres IPv4 | Serveurs DNS supplémentaires.

Si vous vraiment veux ajouter plus d'entrées à /etc/resolv.conf, créer un /etc/resolvconf/resolv.conf.d/tail et ajoutez-les là.

Comme avec chaque version d'Ubuntu, il est recommandé de lire les notes de publication d'Ubuntu, disponibles ici:

Les sections Desktop et Common Infrastructure contiennent un lien vers


130
2018-05-03 00:21



@ stgraber, s'il vous plaît commenter l'approche alternative que j'ai trouvée et affichée ci-dessous. Comment se compare-t-il à l'ajout d'un /etc/resolvconf/resolv.conf.d/tail fichier ou en utilisant Network Manager? Merci. - Randall Cook
@stgraber Que recommandez-vous pour Ubuntu Server? J'ai remarqué sur votre blog et dans vos commentaires que Network-Manger semble être le meilleur moyen de gérer cela, mais faire une installation de network-manager sur mon système installerait tout un tas de choses dont je n’ai pas besoin ). - Avery Chan
Quel bout de temps d'ajouter des entrées à /etc/resolvconf/resolv.conf.d/head (selon votre blogpost)? - sup
@AveryChan, utilisez la "troisième approche" proposée par @ randallcook - ajoutez simplement dns-nameserversà votre section eth0 dans /etc/network/interfaces. - mrm
/etc/resolvconf/update.d/libc sur le serveur Ubuntu 14.04.1: # Set TRUNCATE_NAMESERVER_LIST_AFTER_LOOPBACK_ADDRESS=no  # to allow additional nameserver addresses to be listed in  # resolv.conf after an initial loopback address 127.* or ::1.  (mettre dans /etc/default/resolvconf, comme les lignes 23 et 24 de /etc/resolvconf/update.d/libc montrer. - immeëmosol


J'ai trouvé une autre approche ici cela implique d'ajouter une ligne comme celle ci-dessous à /etc/dhcp/dhclient.conf:

prepend domain-name-servers x.x.x.x, y.y.y.y;

De même, j'ai trouvé une troisième approche ici cela implique l'ajout de lignes à /etc/network/interfaces:

auto eth0
iface eth0 inet static
    . . .
    dns-nameservers 8.8.8.8 8.8.4.4

Mise à jour: voici le documentation officielle pour la troisième approche


128
2018-05-08 22:48



J'ai voté pour cela parce que le third approach est de loin le moyen le plus simple de le faire. - Billy Moon
@billy Je ne pouvais pas faire fonctionner la troisième méthode. Seul le premier de ceux-ci, éditant le fichier dclient.conf, fonctionnait pour moi. - Jeff Atwood
Remarque: l'édition de dhclient.conf n'a d'effet que si dhclient est utilisé (et il est utilisé par ifup et NetworkManager!) L'édition de / etc / network / interfaces n'a d'effet que si ifup est utilisé. La configuration des connexions NetworkManager à l'aide de l'éditeur de connexion NetworkManager n'a d'effet que si NetworkManager est utilisé. - jdthood
Si je ne me trompe pas, la troisième approche ajoute un autre serveur de noms APRÈS ceux renvoyés par DHCP. Si vous voulez que cela vienne en premier, l'une des autres options est plus appropriée. j'ai utilisé /etc/resolvconf/resolv.conf.d/head (après avoir surmonté le commentaire trompeur "NE PAS MODIFIER" à cet endroit :)) - starfry
@ Mr.Hyde, ce ne sont pas des commandes en ligne de commande, ce sont des lignes à ajouter à / etc / network / interfaces. - Randall Cook


On dirait que vous parlez du paquet resolvconf.

Installez le résolvconf paquet.

Courir

cd /etc/resolvconf/resolv.conf.d
sudo cp -p head head.orig  #backup copy, always do this
sudo nano head

Le haut du fichier est un avertissement effrayant. Le fichier /etc/resolv.conf est généré automatiquement à partir du contenu de ce fichier. l'avertissement est là, il sera mis dans /etc/resolv.conf lorsque /etc/resolv.conf sera généré. À la fin du fichier, ajoutez

nameserver <ip_of_nameserver>

presse Ctrl  X et répondez oui à la sauvegarde du fichier. Pour finir, régénérez /etc/resolv.conf pour que les modifications soient appliquées immédiatement:

sudo resolvconf -u

Ensuite, vérifiez le contenu de /etc/resolv.conf pour voir la ligne que vous avez ajoutée est maintenant là. De plus, il sera toujours là au prochain démarrage de votre machine ou votre service réseau sera redémarré, selon la première éventualité.


85
2018-06-30 23:41



Les informations sur l'avertissement de fichier sont exactement ce dont j'avais besoin. J'avais l'impression que je ne devais pas éditer le fichier! Merci! - Xunnamius


Ci-dessous, je vais vous montrer le meilleur moyen que j'ai trouvé depuis que je lance l'édition Ubuntu Server et que vous utilisez ifup plutôt que NetworkManager.

En fait pour moi, ils ont rendu cela plus facile :) en mettant tout cela dans le fichier / etc / network / interfaces. Les mêmes configurations que celles que vous auriez écrites dans resolv.conf peuvent désormais se trouver dans le même fichier que les configurations de votre carte réseau, comme dans l'exemple ci-dessous:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 192.168.1.2
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        dns-nameservers 75.75.75.75 75.75.76.76
        dns-search local

J'espère que cela aide et facilite les choses comme pour moi, maintenant nous pouvons créer des adresses IP statiques et ajouter des serveurs de noms et des domaines DNS dans un seul fichier :)


29
2018-05-23 22:55



Je vous remercie. C'est aussi devenu ma méthode préférée. Une note hors-sujet: il n'est pas nécessaire de spécifier les adresses «réseau» et «diffusion» car elles sont calculées automatiquement à partir de «l'adresse» et du «masque de réseau». Tout ce dont vous avez vraiment besoin est "adresse", "masque réseau" et "passerelle". - Martijn Heemels
C'est la réponse la plus propre. Veillez simplement à épeler les mots-clés dns- * correctement. Le mot de passe "dns-nameservers" était mal orthographié. - John McGehee


Le mien utilise Ubuntu Server 12.04. J'ai apporté les modifications suivantes et redémarré le serveur (en général, cela ne peut être fait que par l’interruption de l’interface réseau, c’est-à-dire ifdown eth0ou ifup eth0).

Dans le fichier /etc/resolvconf/resolv.conf.d/base J'ai ajouté les entrées suivantes:

nameserver 8.8.8.8
nameserver 8.8.4.4

J'espère que ce qui précède aide!


16
2018-03-19 05:56





Vous pouvez utiliser NetworkManager comme indiqué dans la réponse de Frank, mais si vous préférez modifier manuellement /etc/resolv.confVous pouvez le faire en le supprimant (il s’agit en fait d’un lien symbolique), puis en créant un nouveau fichier simple avec le contenu souhaité. le resolvconf l'utilitaire n'écrit jamais que dans le fichier /run/resolvconf/resolv.conf.


11
2018-05-04 14:38





Remarque: Cette réponse concernait une version de fusion de la question plutôt différente, avec un accent uniquement sur le serveur de noms souhaité.

Cela fonctionne avant 12.04:

modifier /etc/dhcp3/dhclient.conf et ajouter :
prepend domain-name-servers 127.0.0.1;

(En fait, cette ligne est déjà présente, tout ce que vous avez à faire est de la supprimer.)


8
2018-03-06 20:26



Est-ce que cela fonctionne si vous n'avez aucune adresse attribuée par DHCP? - Azendale
Si vous voulez en savoir plus sur la configuration de dhclient, vous pouvez faire une man dhclient.conf pour accéder à la page de manuel dhclient. (Ceci n'est pas une réponse à la question d'Azendale.) - Christian Skjødt
Cette réponse est complètement fausse. Tout d'abord, le demandeur doit ajouter l'adresse d'un serveur externe, et non l'adresse 127.0.0.1. L'interface configurée pour une interface externe n'est pas l'endroit où ajouter une adresse pour un serveur de noms interne. Deuxièmement, le fichier se trouve dans / etc / dhcp, pas dans / etc / dhcp3. Troisièmement, depuis Ubuntu 12.04, de telles choses sont configurées avec resolvconf. - jdthood
Tout d'abord, la question initiale a été radicalement modifiée par la fusion du modérateur, donc ma réponse est bien sûr étrange. Le fichier dhcp3 était l'emplacement où j'ai répondu à ceci dans 2011, et même si ce n'est pas idéal, cela a fonctionné. J'ai utilisé cette solution sur plusieurs machines. De toute évidence, vous modifiez l'adresse de bouclage en celle que vous souhaitez ajouter. Je suppose que la plupart des gens savent ce qu'est un bouclage, même s'ils n'ont pas lu RFC6890. - belacqua
@jdthood Pourquoi ne pas ajouter votre propre réponse? Personnellement, je n'étais pas familier avec la manière résolvconf de bsd-ish de faire les choses. J'ai préféré l'approche directe /etc/resolv.conf, et je ne suis pas sûr de l'avantage du nouveau système Rube Goldberg. (De même avec / etc / motd). - belacqua


resolvconf est inutile. Je suis sur un serveur Linux et mon adresse IP est statique et mon DNS les serveurs sont statiques. je n'ai pas besoin resolvconfou Gestionnaire de réseau.

Rester simple est ma politique lorsque je travaille sur un serveur. Moins il y a de complexité, plus il sera facile de gérer / réparer quand les choses se casseront.

Donc j'ai fait aptitude purge resolvconf et manuellement fait /etc/resolv.conf n'est pas un lien symbolique et vient de créer un fichier statique. Juste au cas où un programme essaie de changer le fichier, je l'ai fait chattr +i (immuable) à /etc/resolv.conf comme précaution.


6
2017-10-16 15:41



Comme resolvconf fait partie du système de base, en le supprimant, vous demandez des problèmes à l'avenir, au moment de la mise à niveau. - jdthood
Je suis d'accord avec le commentaire et la réponse: considérez le nombre de problèmes causés et le nombre d'heures d'assistance nécessaires pour résoudre ce «problème», et le nombre de membres du personnel informatique qui ont cherché des réponses. Simple est le meilleur - Je n'ai pas besoin que mes serveurs transforment le DNS en quelque chose que je ne veux pas. - Mei


La plupart de ce qui précède suppose que vous ayez un système parfait, mais la réalité est souvent telle que vous avez installé différents clients DHCP, désactivé le gestionnaire de réseau dans certaines versions précédentes d'Ubuntu, etc. J'ai utilisé dnsmasq pendant un certain temps, mais je l'ai désinstallé. Actuellement, mon système avait le contenu suivant de /etc/resolv.conf (qui est un lien symbolique vers /run/resolvconf/resolv.conf sur mon système):

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.0.1

Peu importe combien de fois je cours sudo resolvconf -uou sudo dpkg-reconfigure resolvconf, il n'a pas mis à jour le serveur de noms avec ceux que j'ai définis dans NetworkManager. Les informations que resolvconf utilise depuis NetworkManager étaient les suivantes:

cat /run/resolvconf/interface/NetworkManager  
nameserver 8.8.4.4
nameserver 8.8.8.8

Cependant, si ce répertoire contient plusieurs fichiers, il se peut que ce fichier ne soit pas utilisé du tout. Le coupable était un fichier non supprimé avec la désinstallation de Dnsmasq:

cat /run/resolvconf/interface/lo.dnsmasq                        
nameserver 127.0.0.1

Il suffit de supprimer ce fichier (et en cours d'exécution sudo resolvconf -u après) résolu mes problèmes de DNS:

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 8.8.4.4
nameserver 8.8.8.8 

J'espère que cela aidera également les autres utilisateurs avec le débogage (les interactions complexes entre tous ces différents outils réseau). Si tu utilises resolvconf assurez-vous de courir ls /run/resolvconf/interfaces pour voir ce qu'il y a


4
2017-12-27 12:54



Merci, cela m'a beaucoup aidé. J'ai d'abord essayé les réponses votées plus élevées et aucune ne semblait faire l'affaire. Je n'ai pas de fichiers supplémentaires dans le /run/resolvconf/interface/ dir, mais mon NetworkManager fichier besoin d'un peu d'amour. Votre réponse a aidé à résoudre ce problème pour moi. - mason81