2012-10-29 19:11:22 +0000 2012-10-29 19:11:22 +0000
146
146

Dlaczego 'ping' nie jest w stanie rozwiązać problemu nazwy, kiedy 'nslookup' działa poprawnie?

Na mojej stacji roboczej z systemem Windows XP mogę znaleźć maszynę, z którą chcę się połączyć w DNS za pomocą nslookup:

nslookup wolfman
Server: dns.company.com
Address: 192.168.1.38

Name: wolfman.company.com
Address: 192.168.1.178

Ale kiedy próbuję się połączyć z tą maszyną, dostaję błąd mówiący mi, że maszyna nie może zostać znaleziona (tj, nie można jej znaleźć w DNS):

C:\> ping wolfman
Ping request could not find host wolfman. Please check the name and try again.

Jestem w stanie połączyć się, jeśli używam adresu IP bezpośrednio:

C:\> ping 192.168.1.178

Pinging 192.168.1.178 with 32 bytes of data:

Reply from 192.168.1.178: bytes=32 time=41ms TTL=126
Reply from 192.168.1.178: bytes=32 time=41ms TTL=126
Reply from 192.168.1.178: bytes=32 time=44ms TTL=126
Reply from 192.168.1.178: bytes=32 time=38ms TTL=126

Mogę to obejść dodając wpis do mojego pliku hosts, ale wolałbym dowiedzieć się, dlaczego tak się dzieje. Problem jest przemijający, przez większość dnia mogę się połączyć z maszyną.

Jak to możliwe?

ETA: Zostawiłem to dla zwięzłości, ale zostałem poproszony o:

C:\> ping wolfman.company.com
Ping request could not find host wolfman.company.com. Please check the name and try again.

ETA: Inne aplikacje uzyskują takie same wyniki. Próbowałem tylko uprościć ping. telnet nie może się połączyć, aplikacje Cygwin drukują wiadomość “nieznany host wilkołak”.

Update: Używając wiresharka, stwierdziłem, że moja stacja robocza nie próbuje wyszukiwać DNS. To tylko raportowanie komunikatu o błędzie “nie udało się znaleźć hosta”.

Odpowiedzi (22)

107
107
107
2012-11-20 08:40:31 +0000

Uważam, że nslookup otwiera połączenie winsock na porcie DNS i wydaje zapytanie, natomiast ping korzysta z usługi klienta DNS. Można spróbować zatrzymać tę usługę i zobaczyć, czy to ma znaczenie.

Niektóre komendy, które ponownie inicjalizują różne stany sieci :

Reset wpisów WINSOCK do domyślnych ustawień instalacji : netsh winsock reset catalog Reset stosu TCP/IP do domyślnych ustawień instalacji : netsh int ip reset reset.log Płukanie pamięci podręcznej resolvera DNS : ipconfig /flushdns Odnowienie rejestracji klienta DNS i odświeżenie DHCP leases : ipconfig /registerdns Płukanie tablicy routingu : route /f (wymagany restart)

33
33
33
2014-05-05 01:08:15 +0000

Spróbuj pingować z nazwą hosta, po której następuje kropka. Więc zamiast ping wolfman użyj ping wolfman.

To powinno Cię rozwiązać bez konieczności robienia obejść z pliku hosta, itp.

17
17
17
2012-11-19 21:57:53 +0000

Spróbuj ipconfig /displaydns i poszukaj wilkołaka. Jeśli jest on zbuforowany jako “nazwa nie istnieje” (prawdopodobnie z powodu wcześniejszego przerywanego nieudanego wyszukiwania), możesz przepłukać pamięć podręczną za pomocą ipconfig /flushdns.

nslookup nie używa pamięci podręcznej, ale zapytuje bezpośrednio serwer DNS.

14
14
14
2017-10-09 11:51:27 +0000

Spróbuj dodać . do sufiksów DNS dla tego połączenia. Tzn. przejdź do:

  1. Status sieci Ethernet
  2. Kliknij na Właściwości
  3. Internet Protocol Version 4
  4. Kliknij na Właściwości
  5. Kliknij na Zaawansowane
  6. Append these DNS suffices (in order)
  7. Add . as a suffix.

The same steps are illustrated in the following screenshot:

This should make ping wolfman work.

Explanation

nslookup wolfman (name server lookup: wolfman) sends the hostname (wolfman) to the DNS (domain name system) to obtain the corresponding IP address. Jest to jedyny cel polecenia nslookup. To już działa, więc sprawdziliśmy, że DNS działa i że wolfman rzeczywiście odpowiada adresowi IP.

W przeciwieństwie do tego, ping wolfman musi zrobić dwie rzeczy:

  1. Uzyskać adres IP, któremu odpowiada nazwa hosta (wolfman).
  2. Wyślij pakiety do IP i posłuchaj odpowiedzi

W systemie Windows (nawet w najnowszych wersjach, takich jak Windows 10), pierwszy krok może łatwo zawieść. Ze względu na kompatybilność wsteczną, Windows obsługuje różne metody rozdzielania nazw hostów (plik hostów, DNS, NetBIOS/WINS, plik LMHOST).

Niestety, wydaje się, że komenda Windows ping nie zawsze próbuje wykonać backupu DNS. Nie znam konkretnych warunków, które wywołują takie zachowanie.

Na szczęście możemy zmusić Windows do wykonania odnośnika DNS za pomocą FQDN (w pełni kwalifikowana nazwa domeny). W praktyce, robimy to poprzez dodanie kropki . do nazwy hosta: wolfman.. Spróbuj ping wolfman. i sprawdź czy to działa.

Ostatnim krokiem jest zmuszenie Windows do samodzielnego dodania tej kropki. Pokazałem już jak to zrobić na początku tej odpowiedzi.

13
13
13
2012-11-19 21:29:17 +0000

nslookup działa inaczej niż inne komendy podczas rozwiązywania nazw/adresów końcowych w systemie Windows.

Metoda normalnej rozdzielczości w systemie Windows jest następująca:

  1. Klient sprawdza, czy zapytana nazwa jest jego własna.
  2. Następnie klient przeszukuje plik z hostami lokalnymi, listę adresów IP i nazw przechowywanych na komputerze lokalnym.
  3. Zapytywane są serwery DNS (Domain Name System).
  4. Jeśli nazwa nie jest jeszcze rozwiązana, jako kopię zapasową wykorzystuje się sekwencję rozdzielczości nazw NetBIOS. Ta kolejność może zostać zmieniona poprzez konfigurację typu węzła NetBIOS klienta.

nslookup z drugiej strony jest używany do testowanie serwerów nazw domen

8
8
8
2014-09-22 08:32:08 +0000

Zmagałem się z podobnym problemem i spróbowałem rozwiązania zaproponowanego przez @harrymca. Znalazłem to, co w końcu wydaje się (przynajmniej trochę) działać na forum microsoft technet nslookup działa, ale nic innego nie ma DNS na autonomicznym Win7 PC )

Oto cytat:

… spróbuj użyć poniższego polecenia, aby spłukać i zresetować pamięć podręczną resolwera klienckiego w celu przeprowadzenia testu.

ipconfig /flushdns

ipconfig /registerdns

Sprawdź poniższy link, aby uzyskać więcej szczegółów. http://jefferyland.wordpress.com/2011/07/28/quick-review-of-flushdns-registerdns-and-dns-queries/

So basically what was missing for me was ipconfig /registerdns

6
6
6
2015-04-28 08:41:42 +0000

Właśnie dziś mieliśmy ten sam problem, ale rozwiązanie było inne. Pomyślałem więc, że dodam to dla porównania, bo to był najlepszy wynik wyszukiwania.

  • Problem : ping nie rozwiąże nazwy hosta, ale nslookup może. (Obserwowany na 2 różnych hostach Windows Server 2012 R2.)
  • Przyczyna : (Dla każdego hosta) Host ma podłączonych więcej niż jeden NIC i jest skonfigurowanych wiele domyślnych bramek.
  • Rozwiązanie : (Dla każdego hosta) Usuń bramę domyślną z konfiguracji wszystkich NIC-ów oprócz jednego, więc istnieje tylko jedna brama domyślna**.
5
5
5
2012-11-19 20:04:28 +0000

Może wolfman.company.com jest wymieniony w C:\Windows\system32 \etc\hosts ?

nslookup omija ten plik i zawsze pyta DNS, podczas gdy ping i inne narzędzia najpierw szukać w pliku “hosty”, a następnie w DNS.

5
5
5
2015-04-09 16:18:24 +0000

Miałem ten sam problem na systemie Windows 2012R2 (=8.1) i wypróbowałem wszystkie powyższe sugestie, ale żadna z nich by go nie naprawiła: - Pingowanie w pełni kwalifikowanej nazwy działało. - Pingowanie nazwy bez zastrzeżeń nie działało. - Oba działały na kilku innych systemach, które miały ten sam system operacyjny i podobno taką samą konfigurację.
- Wszystkie niezbędne łańcuchy wyszukiwania przyrostków były tam obecne. (Zauważ, że niektóre z zaproponowanych poprawek, jak obejście zapytań o wiele etykiet, są oczywiście nieistotne, ponieważ nazwa bez zastrzeżeń ma tylko jedną część)

Wtedy zauważyłem, że system docelowy, który próbowałem pingować, nie miał adresu IPv6. Spróbowałem więc “ping -4 niekwalifikowana nazwa”, i bingo! to zadziałało. Więc z jakiegoś powodu, tylko w tym systemie, ping próbował rozwiązać tylko niewykwalifikowaną nazwę->adres IPv6, a nie niewykwalifikowaną nazwę->IPv4. Dla mnie poprawką było całkowite wyłączenie IPv6, ponieważ wcale go nie potrzebowałem. Ale byłbym naprawdę zainteresowany znalezieniem łagodniejszego sposobu, aby powiedzieć pingowi (lub prawdopodobnie obsłudze klienta DNS), aby spróbować rozwiązać zarówno adresy IPv4 i IPv6.

3
3
3
2015-01-01 16:01:56 +0000

Próbowałem dowiedzieć się, dlaczego na jednym wygrywającym komputerze 7 mogę użyć ping server, który działa, a na drugim nie może rozwiązać server. Oba jednak potrafiły pingować server.lan, czego nie do końca rozumiałem.

Okazuje się, że pomyliłem się z niektórymi ustawieniami (przyrostki DNS), aby nie musieć używać FQDN podczas korzystania z pracy VPN. Musiałem dodać do nich moje lokalne .lan, aby oba komputery działały tak samo.

Przejdź do Panelu sterowania > Sieć i Internet > Połączenia sieciowe i kliknij prawym przyciskiem myszy na połączenie sieciowe i wybierz Właściwości. Kliknij na Protokół Internetowy w wersji 4 i naciśnij przycisk Właściwości. Następnie kliknij przycisk Zaawansowane… w nowym oknie. Przejdź do zakładki DNS, tutaj dodałem przyrostek DNS do mojej pracy, ale potrzebowałem go również do moich normalnych połączeń domowych.

2
2
2
2018-06-12 22:14:49 +0000

Ja też zetknąłem się z tą sprawą. Najłatwiejszym sposobem na naprawienie tego było dla mnie dodanie na końcu nazwy hosta .. Jednak jest to raczej irytujące. Większość sieci tego nie wymaga. Wolałbym nie mówić wszystkim innym w sieci, aby to zrobić, gdy potrzebują dostępu do tego samego zasobu.

Patrzyłem na sugestię Frederika Aalunda jako możliwe rozwiązanie i zauważyłem, że zaproponowali przełączenie z domyślnej opcji “Dodaj pierwotne i specyficzne dla połączenia przyrostki DNS”. To sprawiło, że pomyślałem, że może moja sieć jest po prostu nieco źle skonfigurowana.

Patrząc na moje ustawienia DD-WRT, “Domena LAN” pozostała nieustawiona. Ustawienie tego na dowolny ciąg znaków zdaje się naprawiać ten problem dla wszystkich klientów w mojej sieci bez specjalnej konfiguracji na każdej maszynie, rozwiązanie, którego chciałem! :)

1
1
1
2014-11-03 14:58:09 +0000

Odbieram to, ponieważ przeszkadzało mi to przez ostatni rok i może znalazłem jakieś obejście.

Wydawało mi się, że jakiś system dns-caching-system w oknie klienta jest wadliwy. Windows 7 i 8.1 są tym dotknięte… nie mogą już wiele powiedzieć o Windows XP. ping nie rozwiązuje nazwy. nie jest to część icmp-part, która jest ważna, ale część rozwiązująca nazwę). nslookup jest przeznaczony do zapytania serwera nazw i robi dokładnie to i nie ma okien nazwa-hierarchia-rozwiązywanie.

Restartowanie usługi dnscache pomagało zawsze. Ale od kiedy wyłączyłem IPv6 na wszystkich interfejsach klienckich, problem już nie występował.

Dzięki!

1
1
1
2012-11-23 05:38:19 +0000

Dodanie wpisu do pliku c:/windows/system32/drivers/etc/hosts może go naprawić.

1
1
1
2014-03-21 17:23:50 +0000

Napotkałem na to podczas migracji do Windows 7 z Windows XP, problem był związany z Wieloznakowym zapytaniem DNS dotyczącym systemu Windows 7.

Pozwól, aby Sufiks DNS dołączał się do niezakwalifikowanych zapytań o nazwę Multi-Label - zobacz: http://computerstepbystep.com/allow\_dns_sufiks_załączający się do niezakwalifikowanych\_wieloznaki_nazwa.html

Mam nadzieję, że to pomoże

1
1
1
2014-08-08 07:53:22 +0000

Jeśli na mac os x może to być problem DNS Cache:

Wyrzuć cache

sudo killall -HUP mDNSResponder
sudo dscacheutil -flushcache
1
1
1
2018-07-05 20:41:42 +0000

Mogę się mylić w tej kwestii, ponieważ opiera się ona na moich dawno zapomnianych dniach ressource-kit NT4.

Jako taryfę mogę sobie przypomnieć, że PING używa Netbios/WINS i DNS (w tej kolejności, przynajmniej jeśli nie określisz FQDN).

WINS nie istnieje wiele lat temu, ale możesz nadal mieć włączony Netbios na swoim interfejsie i PING może używać netbios, który może nie dać ci żadnego rezultatu. Zwłaszcza jeśli ruch przechodzi gdzieś przez router.

Wyłącz Netbios i Ping będzie używał DNS jako pierwszego priorytetu i doda zarejestrowany DNS Surffic na interfejsie do Twojej nazwy hosta.

0
0
0
2019-10-22 12:41:38 +0000

Właśnie ta sprawa na kliencie Windows 7 dołączonym do domeny okazała się błędem w ustawieniach DirectAccess w rejestrze.

Spróbuj wyczyścić zawartość klucza:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\DnsClient\DnsPolicyConfig

, a następnie zrestartować usługę “DNS Cache”.

Jeśli to pomoże, zajrzyj pod Group Policy Management Console do dwóch polityk “DirectAccess Client Settings” i “DirectAccess Server Settings”. Należy sprawdzić, czy są one poprawnie skonfigurowane lub nawet potrzebne w danym scenariuszu. Czasami są one tworzone automatycznie z określonymi ustawieniami roli routingu i zdalnego dostępu na serwerze i to było przyczyną problemu z naszej strony. http://virot.eu/manually-remove-direct-access-from-a-client/

0
0
0
2015-04-09 09:43:47 +0000

Miałem ten sam problem i okazało się, że inna maszyna miała ten sam adres IP, a to ją powodowało.

Zmieniło IP z powrotem na DHCP i wszystko działało dobrze.

0
0
0
2019-02-13 16:57:39 +0000

W moim przypadku rozwiązaniem tego problemu było dodanie domeny hosta, którą próbowałem pingować do opcji polityki grupowej o nazwie “DNS Suffix Search List”.

Procedura w skrócie jest taka: Otwórz gpedit.msc i przejdź do Computer Configuration -> Administrative Templates -> Network -> DNS Client > DNS Suffix Search List, ustaw go na “Enabled” i dodaj nazwę domeny do listy (domyślnie lista jest pusta).

Bardziej szczegółowy opis tych kroków można znaleźć tutaj

0
0
0
2019-04-06 06:54:19 +0000

Żadne z tutejszych rozwiązań nie zadziałało dla mnie. To, co dla mnie zadziałało, to ponowne podłączenie do vpn mojej pracy za pomocą OpenVPN. Następnie po odłączeniu wszystko nadal działało.

Uważam, że problem był związany z zanikiem zasilania podczas gdy mój komputer był podłączony do OpenVPN. Jedynym sposobem, w jaki to odkryłem, było użycie WireSharka. Zauważyłem, że docelowe IP dla wszystkich zapytań były skierowane do IP w wewnętrznej sieci mojej pracy.

0
0
0
2015-01-14 21:25:00 +0000

Właśnie miałem ten problem, i znalazłem coś dość osobliwego, i udało mi się go naprawić Lol

Zasadniczo, jeśli masz jakieś wpisy w pliku hosta, które są takie same jak IP, które ping próbuje rozwiązać, to się nie uda.

Na przykład, jeśli w twoim DNS, masz rekord dla www.example.com - 10.0.0.20, ale potem masz wpis w pliku hosta klienta, 10.0.0.20 somethingelse.com, nie będziesz w stanie pingować www.example.com

Dziwne huh

-1
-1
-1
2012-11-22 12:34:05 +0000

ping wykorzystuje protokół ICMP, w szczególności “Echo Request” i “Echo Reply”.

Wiele sieci wyłącza narzędzia ICMP w celu zapobiegania atakom lub podstawowego skanowania sieci. Znalazłem wiele kupowanych routerów, które mają domyślnie włączoną funkcję wyłączania ping.

Więcej o ICMP można znaleźć tutaj: http://en.wikipedia.org/wiki/Internet\_Control_Message_Protocol