web-dev-qa-db-fra.com

Modifications apportées à /etc/resolv.conf ignorées lors de la connexion à un nouveau réseau

J'ai récemment passé de 12.04 à 12.10 et j'ai des problèmes de connexion à Internet.

J'ai une adresse IP et je peux envoyer une requête ping à d'autres adresses IP du réseau local du réseau local, mais je ne parviens pas à me connecter à Internet ni à www.google.com à partir d'un terminal.

Effectuer des modifications dans /etc/resolv.conf et redémarrer le service resolvconf et le redémarrage fonctionne, mais je dois le faire chaque fois que je me connecte à un nouveau réseau. Comment rendre ces modifications permanentes?

Quelqu'un peut-il suggérer une solution à ce problème?

3
sudheer

Selon l’en-tête de /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

Essayez de mettre votre changement dans

/etc/resolvconf/resolv.conf.d/base et ils devraient être ajoutés à /etc/resolv.conf quand il sera réécrit toutes les 15 minutes.

2
fabricator4

CLAUSE DE NON-RESPONSABILITÉ! Le fait de suivre cette réponse peut entraîner des problèmes inattendus si vos serveurs DNS sont gérés en tant que partie intégrante du gestionnaire de réseau. forcer l'utilisation des serveurs DNS que vous voulez au-dessus du système dnsmasq et des serveurs DNS dans les paramètres du gestionnaire de réseau, cela le fera pour tout . De même, certains réseaux et/ou connexions peuvent vous obliger à utiliser leur serveur (s) DNS pour accéder au Internet avec résoudre les choses.

Éditez /etc/resolvconf/resolv.conf.d/head et ajoutez l'enregistrement nameserver 1.2.3.4 ici.

Cela fonctionne sur 14.04 même sur une installation de bureau. Je le sais parce que j'ai un serveur DNS local (via bind9) sur mon ordinateur portable localement pour la résolution de la zone locale (car je fais beaucoup de choses sur les machines virtuelles), et il devient nécessaire d'interroger mon DNS local en amont tout le reste.

1
Thomas Ward

J'ai moi-même eu du mal avec les dns et j'ai posté une question et une solution à celle-ci, qui répertorie certaines des manières dont vous pouvez modifier les paramètres de dns. Il existe essentiellement deux méthodes: éditer l’un des 3 fichiers de /etc/resolvconf/resolv.conf.d/ ou éditer /etc/dhcp/dhclient.conf. Personnellement, je préfère le premier.

Voici quelques-unes des méthodes que j'applique à mes systèmes Ubuntu et Linux Mint. Utilisez à votre discression.

/etc/dhcp/dhclient.conf

Je vais commencer par ceci car d’autres ont déjà traité des fichiers resolv.conf. Ce que vous voyez ci-dessous est une partie de ce fichier. Regardez la ligne 18, qui dit prepent name server. Il ajoutera vos DNS spécifiés aux paramètres, quelle que soit la connexion que vous utilisez.

1 # Fichier de configuration pour/sbin/dhclient, inclus dans Debian

 2  #       dhcp3-client package.
 3  #
 4  # This is a sample configuration file for dhclient. See dhclient.conf's
 5  #       man page for more information about the syntax of this file
 6  #       and a more comprehensive list of the parameters understood by
 7  #       dhclient.
 8  #
 9  # Normally, if the DHCP server provides reasonable information and does
10  #       not leave anything out (like the domain name, for example), then
11  #       few changes must be made to this file, if any.
12  #

13  option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;

14  #send Host-name "andare.fugue.com";
15  send Host-name = gethostname();
16  #send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
17  #send dhcp-lease-time 3600;
18  #supersede domain-name "fugue.com home.vix.com";
19  #prepend domain-name-servers 127.0.0.1;
20  prepend domain-name-servers 208.67.220.220;
21  request subnet-mask, broadcast-address, time-offset, routers,
22          domain-name, domain-name-servers, domain-search, Host-name,
23          dhcp6.name-servers, dhcp6.domain-search,
24          netbios-name-servers, netbios-scope, interface-mtu,
25          rfc3442-classless-static-routes, ntp-servers,
26          dhcp6.fqdn, dhcp6.sntp-servers;
27  #require subnet-mask, domain-name-servers;
28  #timeout 60;
29  #retry 60;
30  #reboot 10;
31  #select-timeout 5;
32  #initial-interval 2;
33  #script "/etc/dhcp3/dhclient-script";
34  #media "-link0 -link1 -link2", "link0 link1";
35  #reject 192.33.137.209;

36  #alias {
37  #  interface "eth0";

/etc/resolvconf/resolv.conf.d/

Le texte de l'un des 3 sera ajouté à /etc/resolv.conf, donc je ne pense pas que le choix de celui-ci importe peu. J'utiliserais tail, personnellement. Ouvrez-le simplement avec n’importe quel éditeur de texte et ajoutez nameserver 8.8.8.8, où 8.8.8.8 est le DNS public de Google, mais vous pouvez utiliser le DNS de votre choix.

Un petit conseil

Dans /etc/Network-Manager/Network-Manager.conf, je vous suggère de commenter la ligne dns=dnsmasq, qui est un plugin pour le gestionnaire de réseau, qui va automatiquement au dns le plus proche/le plus facile à atteindre, ce qui pourrait ne pas être ce que vous voulez, si vous le souhaitez. contourner les DNS du réseau et utiliser les vôtres.

Note latérale: Le fait que resolv.conf soit réécrit est en fait normal - il le fait également à chaque nouvelle connexion sur ma machine. Bien que je ne sache pas pourquoi, NetworkManager obtient un bail de DHCP de la connexion locale et utilise les paramètres de cette connexion locale, le serveur DNS, et ainsi de suite, afin que resolv.conf soit adapté à cette situation.

0

Voici une procédure générique qui corrige quelques bugs connus dans la gestion des informations de serveur de noms.

Resolvconf est-il installé? Si oui, procédez comme suit.

Sudo dpkg-reconfigure resolvconf

S'il n'est pas installé, procédez comme suit.

Sudo apt-get install resolvconf

Maintenant que resolvconf est installé correctement, redémarrez pour que resolvconf reçoive les informations du serveur de noms.

Si le service de noms est toujours en panne et que vous utilisez NetworkManager pour gérer la mise en réseau, ouvrez /etc/NetworkManager/NetworkManager.conf dans un éditeur et mettez en commentaire la ligne "dns = dnsmasq". Pour commenter, mettez un caractère '#' au début de la ligne.

gksudo gedit /etc/NetworkManager/NetworkManager.conf

Ensuite, allez dans l’éditeur de connexion et assurez-vous que la connexion que vous utilisez est correctement configurée. Par exemple, le plus souvent "indicateur de réseau | Modifier les connexions ... | Câblé | Connexion câblée 1 | Éditer ... | Paramètres IPv4 | Méthode" est défini sur "Automatique (DHCP)" et aucune adresse "Serveur DNS supplémentaire" n'est définie.

Puis redémarrez network-manager.

Sudo restart network-manager

Confirmez à présent que l’adresse (s) du serveur de noms attendue apparaît dans /etc/resolv.conf.

Si vous n'utilisez pas NetworkManager pour configurer des interfaces et que vous utilisez ifup, éditez /etc/network/interfaces et incluez les lignes dns-nameservers et dns-search dans la strophe appropriée iface nécessaire. Assurez-vous que /etc/resolvconf/resolv.conf.d/head ne contient que des lignes de commentaires et que /etc/resolvconf/resolv.conf.d/base et /etc/resolvconf/resolv.conf.d/tail sont absents ou vides. . Ensuite, ifdown et ifup l'interface. Confirmez que la ou les adresses de serveur de noms que vous avez ajoutées à/etc/network/interfaces apparaissent maintenant dans /etc/resolv.conf.

Si le service de noms ne fonctionne toujours pas, il existe probablement un problème local: un serveur DHCP mal configuré, par exemple. Les clients VPN tiers, qui détruisent le lien symbolique /etc/resolv.conf, sont une autre cause de problèmes connue. Si votre réseau local semble correct et que vous n'utilisez pas de logiciel réseau tiers, envoyez un rapport de bogue à NetworkManager ou à resolvconf, selon ce que vous pensez être le plus susceptible à être responsable.

0
jdthood