Comment ajouter un serveur DNS via resolv.conf?

191

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

Je vois que les informations du serveur DNS sont maintenant stockées dans NetworkManager . L'outil de ligne de commande nmcli peut répertorier cela pour vous.

Si je veux ajouter un serveur supplémentaire DNS , l'ajouterai à /etc/resolv.conf en utilisant le resolvconf aide sur les paquets?

    
posée PnotNP 03.05.2012 - 02:00
la source

18 réponses

130

Si /etc/resolv.conf contient nameserver 127.0.0.1 , l'ajout d'entrées à /etc/resolvconf/resolv.conf.d/tail ne fera rien d'utile.

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

Si vous vraiment souhaitez ajouter d'autres entrées à /etc/resolv.conf , créez un /etc/resolvconf/resolv.conf.d/tail et ajoutez-les ici.

Comme pour 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

  • lien couvrant les modifications apportées à l’infrastructure DNS en 12.04.
réponse donnée stgraber 03.05.2012 - 02:21
la source
127

J'ai trouvé une autre approche ici qui consiste à 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 qui 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 la documentation officielle pour la troisième approche.

    
réponse donnée Randall Cook 09.05.2012 - 00:48
la source
84

On dirait que vous parlez du paquet resolvconf.

Installez le package resolvconf .

Exécuter

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>

Appuyez sur Ctrl x et répondez oui à l’enregistrement du fichier. Pour finir, régénérez /etc/resolv.conf afin que les modifications soient appliquées dès maintenant:

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

    
réponse donnée Azendale 01.07.2011 - 01:41
la source
29

Ci-dessous, je vais vous montrer le meilleur moyen que j'ai trouvé depuis que je lance Ubuntu Server Edition 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 en un seul fichier:)

    
réponse donnée Joseph Mituzas 24.05.2012 - 00:55
la source
16

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 eth0 ou 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!

    
réponse donnée Don Chai 19.03.2013 - 06:56
la source
11

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

    
réponse donnée Jase 04.05.2012 - 16:38
la source
8

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

Cela fonctionne avant 12.04:

Modifiez /etc/dhcp3/dhclient.conf et ajoutez:
prepend domain-name-servers 127.0.0.1;

(En fait, cette ligne est déjà présente; il vous suffit de la supprimer.)

    
réponse donnée belacqua 06.03.2011 - 21:26
la source
6

resolvconf est inutile. Je suis sur un serveur Linux et mon adresse IP est statique et mon DNS sont des serveurs statiques. Je n'ai pas besoin de resolvconf ou NetworkManager .

Rester simple est ma politique lorsque je travaille sur un serveur. Moins il est complexe, plus il sera facile de gérer / réparer quand les choses ne fonctionnent pas.

J'ai donc fait aptitude purge resolvconf et m'être assuré manuellement que /etc/resolv.conf n'était pas un lien symbolique et qu'il venait juste de créer un fichier statique fichier. Juste au cas où un programme essaierait de changer le fichier, j'ai fait chattr +i (immuable) à /etc/resolv.conf par mesure de précaution.

    
réponse donnée Mark 16.10.2012 - 17:41
la source
4

La plupart de ce qui précède suppose que vous ayez un système vierge, 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 antérieures d'Ubuntu, etc. J'ai utilisé dnsmasq pendant un moment, 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 la fréquence d'exécution de sudo resolvconf -u ou de sudo dpkg-reconfigure resolvconf , le serveur de noms n'a pas été mis à jour 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, s’il ya plusieurs fichiers dans ce répertoire, 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

Le simple fait de supprimer ce fichier (et d’exécuter sudo resolvconf -u par la suite) a 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 à déboguer (les interactions complexes entre tous ces différents outils réseau). Si vous utilisez resolvconf , assurez-vous d'exécuter ls /run/resolvconf/interfaces pour voir ce qu'il y a.

    
réponse donnée Anne van Rossum 27.12.2014 - 13:54
la source
2

Vous pouvez éditer la connexion "AUTO ETH0" ou quel que soit le nom que vous utilisez pour vous connecter en NM. Vous pouvez le faire en cliquant avec le bouton droit sur NM et en sélectionnant "Modifier les connexions ...". Sur l'onglet IPv4, vous pouvez sélectionner "Adresses automatiques (DHCP) uniquement", car la "Méthode" et NM vous permettront de définir manuellement les adresses du serveur de noms, même les adresses sont fournies via DHCP.

    
réponse donnée Frank Barcenas 04.05.2012 - 16:29
la source
2

Je viens de supprimer un lien dans /etc/resolv.conf et créé un fichier régulier avec les adresses des serveurs de noms. Cela fonctionne, et je ne vois aucune raison d'utiliser cette construction plutôt étrange que les développeurs d'Ubuntu ont créée.

    
réponse donnée Ivan 19.03.2013 - 07:34
la source
1

J'ai corrigé cela en changeant l’ordre des sources. J'ai déplacé la source dns avant mdns /etc/nsswitch.conf :

hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4

Vous pouvez conserver vos paramètres tout en utilisant le serveur de mise en cache local de cette manière.

    
réponse donnée Dan B 13.10.2012 - 03:47
la source
1

Que diriez-vous de:

  

sudo dpkg-reconfigure resolvconf

Avant cela, utilisez Network Manager pour modifier l’adresse DNS et changer la méthode en

  

Adresses automatiques (DHPC) uniquement

Exécutez ensuite la commande ci-dessus et redémarrez. Cela a fait la solution pour moi.

    
réponse donnée Adige72 03.02.2013 - 21:40
la source
1

Ajouter mon bit à la liste déjà longue, voici une autre façon (testée le 12.04):

Modifiez /run/resolvconf/interface/NetworkManager pour répondre à vos besoins. Voici un exemple:

search foobar.com example.com
nameserver 192.168.1.1

Ensuite, comme indiqué pour la plupart des autres exemples, faites un sudo resolvconf -u . Maintenant, vous trouverez votre resolv.conf ressemblant à ceci:

nameserver 192.168.1.1
nameserver 127.0.0.1
search foobar.com example.com

Je n'aime toujours pas la façon dont il est implémenté maintenant (apparemment, Ubuntu a besoin d'un service pour chaque foo qu'il fait), et préférerait un simple resolv.conf à coup sûr. Mais cette approche semble être le meilleur compromis pour moi jusqu'à présent. Le "localhost-NS" ajouté ne devrait pas trop blesser.

    
réponse donnée Izzy 28.09.2013 - 23:32
la source
1
vi /etc/network/interfaces


This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The primary network interface
allow-hotplug eth0


# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
#auto eth0         <<----- change this comment with the #
iface eth0 inet dhcp
    
réponse donnée Roy Rogers 04.07.2014 - 12:33
la source
1

Ceci est une question très populaire, avec un ensemble de réponses standard possibles, qui, toutes, à l’OMI, sont plutôt piratées. Pour ma part, j'ai toujours eu du mal à faire en sorte que Ubuntu respecte les paramètres DNS que j'ai configurés dans NetworkManager - en particulier la définition de serveurs DNS statiques avec des adresses «DHCP (automatiques)». Aujourd'hui, j'ai finalement trouvé ce qui était incorrect. / p>

Le problème réside dans l’interaction entre resolvconf et NetworkManager. resolvconf a ce fichier appelé /etc/resolvconf/interface-order . Au moins sur mes systèmes, NetworkManager n'est pas du tout dans ce fichier (sauf qu'il est couvert par le caractère générique * à la fin). Ainsi, le dernier rapport de dhclient à resolvconf est prioritaire sur tout ce que NetworkManager a à dire.

Donc, du moins dans mon cas, la réponse réelle était d'ajouter

NetworkManager

à ou près du haut de /etc/resolvconf/interface-order .

(Oui, je sais que beaucoup de gens disent "Désinstaller resolvconf", ce qui me semble une mauvaise idée. Mais plus que cela, au moins rusés et xenial considèrent que resolvconf est une partie essentielle du système [ Par exemple, ubuntu-minimal en dépend], il serait donc difficile de garder votre système dans un état cohérent et mis à jour sans resolvconf.)

Sur demande, je peux fournir plus de détails sur la manière dont j'ai compris cela. En un mot, j'ai remplacé l'exécutable resolvconf par un wrapper shell autour duquel étaient stockés ses arguments, ses entrées, ses sorties et ses fichiers stderr; et ajouté set -x aux scripts de mise à jour de resolvconf.

    
réponse donnée Steven Collins 31.05.2016 - 20:32
la source
0

Une autre méthode consiste à définir des serveurs DNS spécifiques à docker sur:

/etc/docker/daemon.json

Si vous ne possédez pas un tel fichier, créez-le simplement:

{
    "dns": ["10.0.0.2", "8.8.8.8"]
}

Source: lien

Voir aussi: lien

    
réponse donnée AndreyKo 04.01.2017 - 13:27
la source
0

Pour changer de DNS, suivez les instructions de: lien

  1. Accéder au réseau

  2. Sélectionnez la connexion pour laquelle vous souhaitez configurer le DNS.

  3. Pour modifier les paramètres d’une connexion sans fil, sélectionnez l’onglet Sans fil, puis sélectionnez le réseau sans fil approprié.

  4. Cliquez sur la flèche (droite) et, dans la fenêtre qui apparaît, sélectionnez l’onglet Paramètres IPv4 ou Paramètres IPv6.

  5. Si la méthode sélectionnée est Automatique (DHCP), ouvrez le menu déroulant et sélectionnez uniquement les adresses automatiques (DHCP). Si la méthode est définie sur autre chose, ne la changez pas.

  6. Dans le champ Serveurs DNS, entrez les adresses IP DNS, séparées par une virgule

réponse donnée Ferroao 10.11.2017 - 21:54
la source

Lire d'autres questions sur les étiquettes