Devrais-je modifier mon fichier resolv.conf pour résoudre un problème de DNS?

34

J'ai le problème que ma machine Ubuntu utilise le mauvais serveur DNS. Pour certaines raisons, la machine interroge localhost pour les informations DNS.

J'ai ajouté le serveur DNS dans l'interface graphique des paramètres réseau, mais /etc/resolv.conf contient toujours 127.0.0.1 comme adresse du serveur DNS. Maintenant, je pensais pouvoir éditer le fichier par moi-même, mais cela dit explicitement que je ne devrais pas éditer le fichier à la main.

Maintenant, étant donné que l’interface graphique des paramètres réseau n’a pas généré le fichier avec les bons paramètres, comment puis-je générer moi-même un nouveau fichier resolv.conf ?

    
posée Ahatius 16.10.2012 - 07:39
la source

4 réponses

40

Ce qu’aucune des réponses envoyées jusqu’à présent n’est l’apparence que le demandeur ne comprend pas qu’avoir nameserver 127.0.0.1 in /etc/resolv.conf est correct, en supposant qu’un serveur de noms local est en cours d’exécution. Et dans Ubuntu 12.04 Desktop, il existe par défaut un serveur de noms local, à savoir un processus dnsmasq contrôlé par NetworkManager qui écoute 127.0.0.1 . Dans Ubuntu 12.10, l'adresse d'écoute a été remplacée par 127.0.1.1 .

La solution n’est donc pas de modifier resolv.conf . C'est correct, en supposant que le demandeur veut utiliser le serveur de noms local.

Si le service de noms ne fonctionne pas, le serveur de noms local ne reçoit pas d’adresses de transfert correctes ou il existe un autre problème de mise en réseau.

L’intervenant a essayé d’utiliser l’interface graphique de paramétrage réseau pour générer le fichier avec les bons paramètres, ce qui a échoué. Je ne sais pas exactement ce que cela signifie, mais voici la bonne façon de saisir les adresses des serveurs de noms pour qu'elles se retrouvent dans resolv.conf au bon moment. Je suppose que l'auteur de la question utilise NetworkManager et non ifup pour configurer les interfaces.

Le plus souvent, les interfaces sont configurées à l'aide du protocole DHCP. Dans ce cas, rien ne doit être configuré sur le système local. Le serveur DHCP sait quelle adresse de serveur de noms ses clients doivent utiliser et envoie cette information au client DHCP, qui l'envoie à NetworkManager, qui l'envoie à resolvconf, qui place les informations dans resolv.conf . Donc, dans ce cas, il peut être nécessaire de configurer le serveur DHCP.

Si l’interface réseau de la machine locale est configurée de manière statique, les adresses correctes du serveur de noms doivent être saisies dans NetworkManager, par exemple, sur l’indicateur de réseau | Modifier les connexions ... | Sans fil | ma connexion Modifier ... | Paramètres IPv4 | Serveurs DNS supplémentaires.

Il est possible que le serveur de noms local ne fonctionne pas correctement. Dans ce cas, le questionneur devrait éditer /etc/NetworkManager/NetworkManager.conf

sudo gedit /etc/NetworkManager/NetworkManager.conf

et commentez la ligne

dns=dnsmasq

dans la section "[main]". Pour commenter la ligne, mettez un # au début de la ligne, puis enregistrez le fichier. Puis redémarrez network-manager.

sudo restart network-manager

Après cela, les adresses des serveurs de noms non locaux seront entrées dans resolv.conf au lieu de l'adresse 127. *.

Si l’interrogateur utilise ifup plutôt que NetworkManager pour configurer les interfaces réseau, la réponse de jmartin2279 est correcte: vous avez pour ajouter les adresses du serveur de noms à / etc / network / interfaces de la manière décrite par jmartin2279.

Contrairement à ce que d'autres réponses conseillent, en général, vous ne devriez pas ajouter les options nameserver , domain ou search aux fichiers dans /etc/resolvconf/resolv.conf.d/ . Voir mes commentaires sur ces réponses.

    
réponse donnée jdthood 29.10.2012 - 09:10
la source
18

Si vous utilisez ifup pour configurer l'interface de manière statique, vous pouvez l'ajouter au fichier / etc / network / interfaces.

Ouvrez un terminal et tapez:

sudo gedit /etc/network/interface*

Vous devriez voir quelque chose comme:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

Modifier dans:

auto eth0
iface eth1 inet static
address 192.168.1.10 
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8

utiliser vos propres informations réseau. Cela vous permettra de définir les DNS. Vous pouvez utiliser plusieurs serveurs DNS ici:

dns-nameservers 8.8.8.8 8.8.4.4

Après avoir fait cela, lancez

ifdown eth0
ifup eth0
    
réponse donnée jmartin2279 16.10.2012 - 08:32
la source
11

Dans Ubuntu 12.04, le traitement de resolv.conf a changé.

Si vous souhaitez ajouter votre propre adresse de serveur de noms, éditez le fichier /etc/resolvconf/resolv.conf.d/head

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

et ajoutez votre serveur de noms là-bas (par exemple: Google Open DNS)

nameserver 8.8.8.8

enregistrez le fichier puis exécutez

sudo resolvconf -u

Pas de redémarrage ou autre chose. Peut-être aurez-vous besoin de redémarrer network-manager

sudo service network-manager restart

Fait

Vous pouvez le tester avec la commande

nslookup www.google.com

Le résultat doit être similaire à

Server: 8.8.8.8
Address: 8.8.8.8#53
    
réponse donnée Nick Thom 16.10.2012 - 08:31
la source
1

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

Mais si /etc/resolv.conf contient 127.0.0.1 , alors ajouter des entrées à /etc/resolvconf/resolv.conf.d/tail ne changera rien. Vous devez définir les adresses de votre serveur DNS de manière statique dans NetworkManager, qui les enverra à dnsmasq qui écoute 127.0.0.1 .

La configuration DNS d’une interface statique doit être " dns-nameservers ", " dns-search " et " dns-domain " ajoutée à la strophe iface appropriée dans /etc/network/interfaces

Lisez cette pour plus d'informations.

'De plus:

Vous pouvez installer un outil d'interface graphique nommé gnome-network-admin qui définira votre DNS. Essayez-le:

sudo apt-get install gnome-network-admin
    
réponse donnée user61928 16.10.2012 - 08:00
la source

Lire d'autres questions sur les étiquettes