Quelle est la bonne façon de changer l'IP du DNS?

56

Je soupçonne que le serveur de noms fourni par mon modem / routeur ADSL est défectueux. Chaque fois que je navigue sur un site Web pour la première fois dans Ubuntu, la résolution du nom de domaine prend au moins 15 secondes.

Pour contourner ce problème, j'ai modifié la configuration du serveur de noms /etc/resolv.confde 192.168.1.1 (mon modem ADSL) à 8.8.8.8 (le DNS principal de Google). Cela semble résoudre le problème, mais malheureusement, mes modifications /etc/resolv.confsont écrasées par "NetworkManager" à chaque démarrage.

Quelle est la bonne façon de configurer l'adresse IP du serveur de noms dans Ubuntu 10.4?

Wim Coenen
la source

Réponses:

51

Si vous avez une configuration de connexion typique avec le gestionnaire de réseau et DHCP, essayez ce qui suit:

  1. Faites un clic droit sur l'icône du gestionnaire de réseau dans le panneau et choisissez "Editer les connexions ..."
  2. Sélectionnez votre connexion à partir de l'onglet filaire ou sans fil, choisissez "Modifier"
  3. (Entrez votre mot de passe si la connexion est définie sur "Système disponible")
  4. Choisissez l'onglet Paramètres IPv4
  5. Basculez la méthode sur "Adresses automatiques (DHCP) uniquement"
  6. Entrez le serveur de noms souhaité dans la zone "Serveurs DNS supplémentaires" et cliquez sur "Appliquer".

Cela devrait faire l'affaire.

Marcel Stimberg
la source
1
Cela continue de fonctionner dans Ubuntu 12.04 et versions ultérieures, même si NetworkManager utilise désormais resolvconf pour gérer resolv.conf.
Jdthood
4
Si vous vous demandez où se trouve la configuration, jetez un œil à /etc/NetworkManager/system-connections/(vous aurez besoin de privilèges d'administrateur pour accéder à ces fichiers de configuration).
Lekensteyn
2
Cela ne change que les DNS pour la connexion actuelle, mais existe-t-il également un moyen de changer le DNS mondial ?
rubo77
la liste est vide pour moi. qu'est-ce qu'il utilise par défaut?
J. Taylor
1
Fonctionne exactement de la même manière sur l’interface de terminal nmtuibtw!
Granitosaurus
30

Vous pouvez les changer comme ça.

Tout d'abord, cliquez sur l'icône du gestionnaire de réseau dans votre barre de menus, puis cliquez sur l' Edit Connections...élément.

entrez la description de l'image ici

Maintenant, passez aux onglets "Wired" ou "Wireless", selon ce que vous utilisez - J'utilise le WiFi, je vais donc l'utiliser.

Sélectionnez le nom de votre réseau, puis cliquez sur Edit...

Basculez sur l'onglet IPv4, puis changez-le d'adresses DHCP automatiques en adresses automatiques (DHCP) uniquement.

Entrez l'adresse IP de votre serveur DNS.

entrez la description de l'image ici

Cliquez sur Enregistrer et vous avez terminé!

jrg
la source
Bien que vous puissiez modifier le serveur DNS dans les paramètres réseau de n’importe quel PC, il est préférable de les modifier dans le routeur qui se connecte à Internet pour que tous les appareils connectés en bénéficient.
Mark Rooney
3
Que faire s'il n'a pas de routeur en tant que tel? Ou veut-il simplement changer le DNS pour cet ordinateur / utilisateur? Et si c'est juste cette fois? Peut-être n’at-il pas accès au routeur et souhaite-t-il utiliser un autre serveur DNS? Je peux ajouter des raisons à cette liste toute la nuit. Bon conseil et répondez @jrg.
Bruno Pereira
6
C’est un moyen pratique de configurer les DNS sur une seule machine avec le gestionnaire de réseau. Je voudrais seulement souligner que vous pouvez en définir plusieurs, séparées par des virgules. 8.8.8.8,8.8.4.4. Configurer DNS pour un réseau local peut également être utile, si le réseau local est suffisamment grand, j’utilise personnellement le routeur ou le masque de dns. Sur un réseau local, il est souvent plus facile de gérer une liste noire ou un proxy à un seul emplacement (routeur / masque / calque) plutôt que sur chaque client ou chaque utilisateur sur chaque client, mais cela dépasse un peu la question posée ici.
Panther
29

La meilleure façon de définir un serveur de noms via la CLI, sans NetworkManger, avec une adresse statique ou indépendante de la connexion est la suivante:

Installez le package resolvconf .

Courir

sudo nano /etc/resolvconf/resolv.conf.d/head

(Ignorez l'avertissement effrayant. /etc/resolv.conf est généré automatiquement. Cet avertissement est présent. Il sera donc placé dans /etc/resolv.conf lorsque /etc/resolv.conf sera généré.) À la fin du fichier, ajouter

 nameserver <ip_of_nameserver>

Appuyez sur Ctrl xet répondez oui à l'enregistrement du fichier. Pour finir, régénérez /etc/resolv.conf pour que les modifications soient appliquées maintenant:

 sudo resolvconf -u
Azendale
la source
1
Pour une raison quelconque, il y a environ un mois, ma version nocturne de Xubuntu a cessé de résoudre les noms d'hôte de réseau local. Mon serveur DHCP doit se nommer lui-même (192.168.68.1) en tant que serveur DNS. Je l'ai également codé en dur dans Network Manager et à chaque emplacement (mentionné ci-dessus dans cette réponse). Avec la manière dont Xubuntu / NetworkMan / Whatever utilise une IP 127.0.xx ces jours-ci, il est difficile de diagnostiquer le problème. Je pouvais résoudre les adresses IP externes, ce qui donnait quelque chose à DNS. Quoi qu'il en soit, c'était la seule réponse qui résolut mon problème. Merci
Adam Plocher
18

Une autre façon de faire est d’éditer. /etc/dhcp3/dhclient.confVous pouvez le faire en tapant ceci dans la boîte de dialogue Exécuter (apparaît en appuyant sur Alt+ F2).

gksudo gedit /etc/dhcp3/dhclient.conf

Alors trouve la ligne suivante

#prepend domain-name-servers 127.0.0.1;

Et changez le en

prepend domain-name-servers 8.8.8.8;

Cela fera que dhclient (le client DHCP utilisé par NetworkManager) sera ajouté à vos serveurs DNS. Par conséquent, resol.conf ressemblera à ceci

nameserver 8.8.8.8
nameserver 192.168.1.1

Cette solution fonctionnera partout et vous obtiendrez toujours le DNS que vous avez choisi comme principal.

LassePoulsen
la source
4
Il me semble que Network Manager écrit resolv.conf sans consulter dhclient.conf
daithib8
2
sous Ubuntu 11.10, vous devez modifier /etc/dhcp/dhclient.conf au lieu de /etc/dhcp3/dhclient.conf
Pawel Barcik le
1
peut en mettre plusieurs?
PyRulez
1
@PyRulez Oui, séparés par des virgules, point-virgule à la fin
Sergiy Kolodyazhnyy
2
J'ai essayé cela en 14h10 mais sans effet
rubo77 Le
7

Une autre solution consiste à modifier la configuration de votre routeur pour utiliser l'autre serveur DNS. Connectez-vous simplement à son administrateur et tant que ce n'est pas le routeur qui cause le problème, tous vos ordinateurs clients obtiennent un meilleur DNS.

Oli
la source
+1 D'accord, s'il s'agit d'un problème qui ne risque pas d'être résolu rapidement, il est préférable de le résoudre sur le routeur, il sera résolu pour toutes les machines du réseau. Je trouve qu'il est préférable d'utiliser Google DNS ou OpenDNS.
Mark Davidson
1
Je l'ai déjà fait, mais le routeur agit toujours comme un serveur de noms intermédiaire entre les clients et le serveur de noms configuré, et il est toujours très lent.
Wim Coenen
1
De nombreux FAI verrouillent leurs routeurs afin que vous ne puissiez pas modifier ces paramètres, ni avoir à payer pour le faire.
LassePoulsen
@Wim Si votre routeur ne peut pas fournir de résolution DNS dans un délai raisonnable, disons 50 ms avec une bonne connexion, cela ne va pas du tout. Tellement mauvais que cela peut être une autre manière de gérer le trafic de manière inefficace. Il serait peut-être temps de passer à une mise à niveau de 30 $ / 20 £.
Oli
1
@ Oli: Le problème DNS n'apparaît que lorsque vous utilisez le routeur depuis une boîte Linux: J'ai eu le même problème avec Debian, mais aucun problème avec Windows. Je suis sûr que c'est juste un problème de compatibilité subtile. Le routeur fonctionne bien sinon.
Wim Coenen
6

Cliquez sur l'indicateur de réseau en haut à droite de l'écran et sélectionnez Edit Connections.... Choisissez la connexion que vous souhaitez modifier (probablement dans l' onglet Wiredou Wirelesspuis cliquez sur le Edit...bouton.

Basculez vers l' IPv4 Settingsonglet de la fenêtre de connexion et changez la méthode de Automatic (DHCP)à Automatic (DHCP) addresses only. Vous devriez maintenant pouvoir spécifier une adresse IP de serveur DNS.

Enregistrez la connexion et vous devriez être prêt à partir. Vous devrez peut-être réinitialiser la connexion en la sélectionnant dans le menu de l'indicateur après avoir modifié les paramètres.

James Henstridge
la source
1

Je crois que si vous le changez sous le gestionnaire de réseau, les changements persistent.

Utiliser eth0 par exemple

Gestionnaire de réseau -> Câblé -> Auto eth0 -> Paramètres ipv4.

Définissez votre serveur DNS sur 8.8.8.8 et appliquez.

Mark Davidson
la source
J'ai eu du mal à trouver quelque chose appelé "gestionnaire de réseau". Il existe un "Système - Administration - Outils réseau" mais cela n’aide en rien. Finalement, j'ai découvert qu'il me fallait "Système - Préférences - Connexions réseau".
Wim Coenen
1
Il y a une icône de gestionnaire de réseau dans le panneau (celle affichant votre statut de réseau) sur laquelle vous pouvez cliquer avec le bouton droit de la souris pour modifier les connexions.
Marcel Stimberg
Cela ne fonctionne pas
user568021
0

Utiliser le terminal

Vous devez modifier le /etc/resolv.conffichier pour définir l'adresse IP du serveur de noms que le résolveur doit interroger. Il est possible de définir jusqu'à 3 adresses IP Internet de serveur de noms. S'il existe plusieurs serveurs, la bibliothèque de résolution les interroge dans l'ordre indiqué.

Tout d'abord tapez

sudoedit /etc/resolv.conf

Ajoutez l’adresse IP de votre serveur DNS préféré comme suit:

nameserver <preferred-ip1>
nameserver <preferred-ip2>
nameserver <preferred-ip3>

extrait de: http://www.cyberciti.biz/faq/ubuntu-linux-configure-dns-nameserver-ip-address/

Amith KK
la source
6
Notez que si les serveurs de noms sont définis via DHCP, ils /etc/resolv.confseront écrasés. Cette approche ne convient donc que pour les machines avec des configurations de réseau manuelles. Techniquement, vous pourrait faire chattr +i /etc/resolv.confpour empêcher le fichier d'être modifié (je l' ai fait il y a quelques années), mais la meilleure façon pour la plupart des machines serait l'approche de JRG dans sa réponse: askubuntu.com/a/90263/13398 .
Scott Severance
@ScottSeverance Ce que le système n'avait pas X
Amith KK
Dans ce cas, il s'agit probablement d'un serveur avec une mise en réseau configurée manuellement, auquel cas votre réponse est parfaitement appropriée. Mais la plupart des machines Ubuntu fonctionnent sous X et peuvent facilement gérer l’autre approche. Si une machine n'exécute pas X mais qu'une interface graphique appropriée est installée, vous pouvez également exécuter les outils graphiques sur SSH à l'aide de ForwardX11=yes.
Scott Severance
6
Si vous essayez d’éditer manuellement le fichier /etc/resolv.conf, le moyen approprié de le faire (pour qu’il ne soit pas écrasé) consiste à installer le package "resolvconf", puis à éditer / etc / resolvconf / resolv. conf.d / head ou /etc/resolvconf/resolv.conf.d/tail.
Azendale
0

Pour les serveurs sans tête où il n'y a pas de X et où la gestion s'effectue via ssh ou autre, une solution de ligne de commande est nécessaire. Si resolv.conf n'est pas écrasé, c'est le bon endroit pour changer de serveur de noms.

Si resolv.conf est écrasé, les fichiers à modifier sont au moins sur 14.04LTS:

  • /etc/resolvconf/resolv.conf.d/head
  • /etc/resolvconf/resolv.conf.d/tail

Je suggère fortement de placer des chaînes de commentaires dans des fichiers tels que ceux-ci, de sorte qu'elles apparaissent dans le fichier généré (/etc/resolve.conf) et que vous puissiez les retrouver ultérieurement. Je commence et termine chaque fichier avec un commentaire d'une ligne du formulaire:

  • # ====== commence /etc/resolveconf/resolv.d/tail ======
  • # ====== fin /etc/resolveconf/resolv.d/tail ======

et mettre les directives pertinentes entre eux.

Gordon
la source
0

J'ai constaté que l'ajout de la ligne dns-nameserver ipau fichier d'interface, la définition des paramètres ipv4 de connexion filaire sur les paramètres automatiques (DHCP) uniquement et la saisie de l'adresse IP du serveur DNS et du nom de domaine. L'ajout de l'adresse IP du DNS local à la section DNS statique du routeur DSL force également NetworkManager à inclure cette adresse locale dans le resolv.conffichier qu'il écrase ainsi que d'autres informations extraites du routeur. Tous ces éléments réunis semblent rendre persistante la résolution des noms DNS locaux - une tâche étonnamment difficile, semble-t-il. Mon besoin de DNS local est de monter un client Linux sur un partage Samba en utilisant mount.cifsun réseau desservi par DHCP.

Danegerous
la source
0

Si Network-Managerest arrêté et /etc/resolvconf/resolv.conf.d/basea été configuré.

Peut resolvconf --enable-updates- être est utile.

J.Doe
la source
0

Vous pouvez modifier les paramètres DNS IPv4 de manière graphique comme expliqué ici

Mais si vous vous demandez comment faire la même chose en ligne de commande, vous devez lister les fichiers dans le /etc/NetworkManager/system-connectionsrépertoire avec la lscommande:

ls /etc/NetworkManager/system-connections

Il doit y avoir un fichier avec le nom de votre connexion, le mien est appelé Wired Connection 1.

Nous devons donc éditer le fichier et y ajouter des serveurs DNS:

Sudo nano "/etc/NetworkManager/system-connections/Wired connection 1"

Ajoutez autant de serveurs DNS que vous le souhaitez dans la [ipv4]section, séparez-les par des points ;- virgules et ajoutez également un ;à la fin du dernier serveur DNS, comme ceci:

[ipv4]
dns=1.1.1.1;8.8.8.8;9.9.9.9;

Vous pouvez simplement supprimer cette ligne si vous ne voulez attribuer aucun DNS.

Vous devez également ajouter cette ligne ignore-auto-dns=truepour ignorer les serveurs DNS fournis par DHCP (comme le serveur DNS défini dans la configuration du routeur):

[ipv4]
dns=1.1.1.1;8.8.8.8;9.9.9.9;
ignore-auto-dns=true

Un peu de contexte pour cette réponse: j’essayais de savoir quel fichier était édité lorsque j’ajoutais un serveur DNS dans les paramètres DNS de l’interface graphique, j’exécutais cette commande pendant plus de 16 heures: sudo grep -rs "1.1.1.1" /elle analysait tous les fichiers de ma machine virtuelle Ubuntu. mais il ne finissait jamais, même après avoir fonctionné aussi longtemps, mais je savais qu'il était possible que le fichier existe dans le fichier . J'ai alors renvoyé /etc/NetworkManagerle grepdoigt vers ce répertoire et trouvé ceci: /etc/NetworkManager/system-connections/Wired connection 1:dns=1.1.1.1;je suis donc revenu ici pour écrire une réponse uniquement pour savoir que Lekensteyn avait déjà fait remarquer cela dans les commentaires sur la réponse acceptée .

Shayan
la source