WGET nie może rozpoznać hosta

12

Mam 2 maszyny w tej samej podsieci z systemem Debian 5.0. Używają tego samego DNS (/etc/resolv.conf), kierują się do tej samej bramy (#route) i mają te same ustawienia iptables (#iptables -L). Mogę pingować z obu z nich, zarówno na adresy IP, jak i nazwy hostów. Mogę uruchomić #host www.google.com i uzyskać te same wyniki na obu z nich. Problem polega jednak na tym, że na jednym z nich nie mogę się zgiąć ani zwinąć.

Tak więc na maszynie 1 wszystko jest w porządku, ale na maszynie 2 (z tymi samymi ustawieniami co maszyna 1) nie mogę się zgiąć ani zawinąć.

Występuje błąd:

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

Ale na maszynie 1 nie ma problemu z podglądaniem lub zwijaniem się i zwraca:

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

Itp.

Mam nadzieję, że ktoś tutaj wskaże mi właściwy kierunek, abym mógł rozwiązać ten problem :)


źródło
Najprawdopodobniej nie jest to związane z wget, ale z problemem sieciowym.
jldupont,
czy masz ustawienie proxy w środowisku .. mój komputer roboczy zrobił :-(
lexu
Spróbuj „host google.com”, a nie „host www.google.com” na serwerze 2.
Bill Weiss,

Odpowiedzi:

17

Sprawdź swój /etc/nsswitch.confplik (lub cokolwiek w ekwiwalencie Debiana, jeśli tak nie jest).

hosti nslookup zawsze wykonuj wyszukiwania DNS.

Jednak inne aplikacje najpierw sprawdzą w NSS inne systemy nazewnictwa (np. /etc/hostsNIS itp.). Jeśli coś innego jest skonfigurowane, ale nie działa, może to uniemożliwić aplikacji próbowanie DNS.

Alnitak
źródło
3
Kanoniczny sposób sprawdzenia działania resolvera jest uruchomiony getent hosts google.com. To używa nsswitch.conf, a następnie resolv.conf zgodnie z wymaganiami.
Joe
9

Dzięki za odpowiedzi!

To był plik nsswitch.conf. Miałem konfigurację LDAP z samouczka, który kazał mi używać tej linii na hostach:

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

Kiedy zmieniłem to na:

hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4

Działa bez problemu. Więc sądzę, że plik konfiguracyjny nsswitch powodował, że zwracał null, jeśli nie został znaleziony w plikach lub mdns4_minimal, prawda?

Dzięki za pomoc!


źródło
7
Prawdopodobnie powinieneś zaakceptować odpowiedź Alnitaka.
Dan Carley
Tak, jak mam to zrobić? : - /
Zaakceptuj, klikając „V” obok wyniku głosowania. :)
Redsandro
3

Pierwszą rzeczą do wypróbowania jest sprawdzenie, czy DNS działa poprawnie.

# 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

Jeśli nie otrzymasz tej odpowiedzi, sprawdź /etc/resolv.conf i znajdź serwery nazw wymienione w tym pliku. Czy potrafisz pingować każdy z nich?

Spróbuj wysłać zapytanie do każdego z nich osobno:

# host google.com 12.34.56.78

Czy możesz rozwiązać inny host?

David Pashley
źródło
3

Miałem ten sam problem, ale oprócz zmiany /etc/nsswitch.conf:

hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4

Musiałem także zmienić serwery nazw:

Zmień, /etc/resolv.confaby wskazywał na serwery nazw Google. Te dodane przez menedżera sieci nie działają dla mnie.

# RED 2013-03-31
nameserver 8.8.8.8
nameserver 8.8.4.4
Redsandro
źródło
3
Dziękuję, anonimowo, za konstruktywny komentarz do opinii.
Redsandro,
2

Czy na komputerze może być nieprawidłowy serwer proxy z błędem? Spróbuj tego:

# wget --no-proxy google.com
djhowell
źródło