WGET non è in grado di risolvere l'host


11

Ho 2 macchine sulla stessa sottorete che esegue Debian 5.0. Usano lo stesso DNS (/etc/resolv.conf), instradano allo stesso gateway (#route) e hanno le stesse impostazioni di iptables (#iptables -L). Posso eseguire il ping da entrambi, sia agli indirizzi IP che ai nomi host. Posso eseguire #host www.google.com e ottenere gli stessi risultati su entrambi. Ma il problema è che su uno di loro, non posso scommettere o arricciare.

Quindi sulla macchina 1 è tutto a posto, ma sulla macchina 2 (con le stesse impostazioni della macchina 1) non posso scommettere o arricciare.

L'errore che ottengo è:

# 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'

Ma sulla macchina 1 non ha problemi a wget o curl e restituisce:

# 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'

Eccetera.

Spero che qualcuno qui possa indicarmi la giusta direzione qui in modo che io possa eventualmente risolvere questo problema :)


Molto probabilmente questo non è legato a wget ma a un problema di rete.
jldupont,

hai un'impostazione proxy nell'ambiente .. la mia macchina di lavoro ha fatto :-(
lexu

Prova "host google.com", non "host www.google.com", sul server 2.
Bill Weiss,

Risposte:


17

Controlla il tuo /etc/nsswitch.conffile (o qualunque sia l'equivalente su Debian se non è quello).

hoste fai nslookup sempre ricerche DNS.

Tuttavia, altre applicazioni cercheranno prima in NSS altri sistemi di denominazione (ad esempio /etc/hosts, NIS, ecc.). Se qualcos'altro è configurato ma non funziona, potrebbe impedire all'applicazione di provare mai il DNS.


3
Il modo canonico per controllare il resolver è in esecuzione getent hosts google.com. Questo utilizza nsswitch.conf e quindi resolv.conf come richiesto.
Joe,

9

Grazie per le risposte ragazzi!

Era il file nsswitch.conf. Ho installato LDAP da un tutorial che mi ha detto di usare questa linea negli host:

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

Quando l'ho cambiato in questo:

hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4

Funziona senza problemi. Quindi immagino che il file di configurazione di nsswitch lo stesse facendo restituire null se non trovato nei file o mdns4_minimal, giusto?

Grazie per l'aiuto!


7
Probabilmente dovresti accettare la risposta di Alnitak.
Dan Carley,

Sì, come posso farlo? : - /

Accetta facendo clic sulla "V" accanto al punteggio del voto. :)
Redsandro,

2

Potrebbe esserci un proxy non valido configurato sulla macchina con l'errore? Prova questo:

# wget --no-proxy google.com

2

La prima cosa da provare è verificare se il DNS funziona correttamente.

# 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

Se non ottieni quella risposta, controlla /etc/resolv.conf e trova i server dei nomi elencati in quel file. Puoi fare un ping a ciascuno di essi?

Prova a interrogarli singolarmente:

# host google.com 12.34.56.78

Puoi risolvere un altro host?


2

Ho avuto lo stesso problema, ma accanto al cambiamento /etc/nsswitch.conf:

hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4

Ho anche dovuto cambiare i server dei nomi:

Cambia in /etc/resolv.confmodo che punti ai nameserver di Google. Quelli aggiunti dal gestore della rete non funzionano per me.

# RED 2013-03-31
nameserver 8.8.8.8
nameserver 8.8.4.4

3
Grazie, anonimo, per il commento costruttivo sul downvote.
Redsandro,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.