WGET ne peut pas résoudre l'hôte

11

J'ai 2 machines sur le même sous-réseau exécutant Debian 5.0. Ils utilisent le même DNS (/etc/resolv.conf), ils acheminent vers la même passerelle (#route) et ils ont les mêmes paramètres iptables (#iptables -L). Je peux envoyer une requête ping aux deux, à la fois vers des adresses IP et vers des noms d'hôtes. Je peux exécuter #host www.google.com et obtenir les mêmes résultats sur les deux. Mais le problème est que sur l'un d'eux, je ne peux pas miser ou boucler.

Donc, sur la machine 1, tout va bien, mais sur la machine 2 (avec les mêmes paramètres que la machine 1), je ne peux pas miser ni boucler.

L'erreur que j'obtiens est:

# wget google.com
--2009-10-20 16:38:36--  http://google.com/
Resolving google.com... failed: Name or service not known.
wget: unable to resolve host address `google.com'

Mais sur la machine 1, il n'a aucun problème à miser ou à boucler et retourne:

# wget google.com
--2009-10-20 16:43:55--  http://google.com/
Resolving google.com... 74.125.53.100, 74.125.45.100, 74.125.67.100
Connecting to google.com|74.125.53.100|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
...
Saving to: `index.html.3'

Etc.

J'espère que quelqu'un ici peut me diriger dans la bonne direction afin que je puisse éventuellement résoudre ce problème :)


la source
Ce n'est probablement pas lié à wget mais à un problème de réseau.
jldupont
avez-vous un paramètre proxy dans l'environnement .. ma machine de travail a :-(
lexu
Essayez "host google.com", et non "host www.google.com", sur le serveur 2.
Bill Weiss

Réponses:

17

Vérifiez votre /etc/nsswitch.conffichier (ou quel que soit l'équivalent sur Debian s'il ne l'est pas).

hostet faites nslookup toujours des recherches DNS.

Cependant, d'autres applications chercheront d'abord dans NSS d'autres systèmes de nommage (par exemple /etc/hosts, NIS, etc.). Si quelque chose d'autre est configuré mais ne fonctionne pas, cela pourrait empêcher l'application d'essayer le DNS.

Alnitak
la source
3
La manière canonique de vérifier le résolveur est en cours d'exécution getent hosts google.com. Cela utilise nsswitch.conf puis resolv.conf si nécessaire.
Joe
9

Merci pour les réponses vous les gars!

C'était le fichier nsswitch.conf. J'avais configuré LDAP à partir d'un tutoriel qui m'a dit d'utiliser cette ligne dans les hôtes:

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

Quand je l'ai changé en ceci:

hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4

Cela fonctionne sans problème. Donc je suppose que le fichier de configuration nsswitch le faisait retourner null s'il n'était pas trouvé dans les fichiers ou mdns4_minimal, non?

Merci de votre aide!


la source
7
Vous devriez probablement accepter la réponse d'Alnitak.
Dan Carley
Ouais, comment je fais ça? : - /
Acceptez en cliquant sur le "V" à côté du score du vote. :)
Redsandro
2

Pourrait-il y avoir un proxy invalide configuré sur la machine avec l'erreur? Essaye ça:

# wget --no-proxy google.com
djhowell
la source
2

La première chose à essayer est de vérifier si le DNS fonctionne correctement.

# host google.com
google.com has address 74.125.67.100
google.com has address 74.125.45.100
google.com has address 74.125.53.100

Si vous n'obtenez pas cette réponse, consultez /etc/resolv.conf et recherchez les serveurs de noms répertoriés dans ce fichier. Pouvez-vous cingler chacun d'eux?

Essayez d'interroger chacun d'eux individuellement:

# host google.com 12.34.56.78

Pouvez-vous résoudre un autre hôte?

David Pashley
la source
2

J'ai eu le même problème, mais à côté de changer /etc/nsswitch.conf:

hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4

J'ai également dû changer les serveurs de noms:

Changez /etc/resolv.confpour qu'il pointe vers les serveurs de noms Google. Ceux ajoutés par le gestionnaire de réseau ne fonctionnent pas pour moi.

# RED 2013-03-31
nameserver 8.8.8.8
nameserver 8.8.4.4
Redsandro
la source
3
Merci, anonyme, pour le commentaire constructif sur le downvote.
Redsandro