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

Warum kann 'ping' einen Namen nicht auflösen, wenn 'nslookup' gut funktioniert?

Auf meiner Windows XP-Workstation kann ich den Rechner, mit dem ich mich verbinden möchte, im DNS mit nslookup:

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

Name: wolfman.company.com
Address: 192.168.1.178

finden, kann nicht im DNS nachgeschlagen werden):

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

Ich kann eine Verbindung herstellen, wenn ich die IP-Adresse direkt verwende:

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

Ich könnte das umgehen, indem ich einen Eintrag in meine hosts-Datei hinzufüge, aber ich möchte lieber herausfinden, warum das passiert. Das Problem ist vorübergehend, den größten Teil des Tages kann ich mich problemlos mit der Maschine verbinden.

Wie ist das möglich?

ETA: Ich habe das aus Gründen der Kürze weggelassen, aber es wurde nachgefragt:

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

ETA: Andere Anwendungen erhalten die gleichen Ergebnisse. Ich habe nur versucht, es mit ping zu vereinfachen. telnet kann keine Verbindung herstellen, Cygwin-Anwendungen geben die Meldung “unknown host wolfman” aus.

Update: Bei der Verwendung von wireshark habe ich festgestellt, dass meine Workstation keine DNS-Abfrage versucht. Sie meldet lediglich die Fehlermeldung “could not find host”.

Antworten (22)

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

Ich glaube, dass nslookup eine Winsock-Verbindung auf dem DNS-Port öffnet und eine Abfrage ausgibt, während ping den DNS-Clientdienst verwendet. Sie könnten versuchen, diesen Dienst zu stoppen und sehen, ob dies einen Unterschied macht.

Einige Befehle, die verschiedene Netzwerkzustände reinitialisieren:

WINSOCK-Einträge auf Installations-Standardwerte zurücksetzen: netsh winsock reset catalog TCP/IP-Stack auf Installations-Standardwerte zurücksetzen: netsh int ip reset reset.log DNS-Resolver-Cache leeren: ipconfig /flushdns DNS-Clientregistrierung erneuern und DHCP-Leases aktualisieren: ipconfig /registerdns Routing-Tabelle leeren: route /f (Neustart erforderlich)

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

Versuchen Sie ping mit Hostname gefolgt von einem Punkt. Verwenden Sie also statt ping wolfman ping wolfman.

Das sollte Sie zur Lösung bringen, ohne dass Sie Workarounds mit der hosts-Datei usw. durchführen müssen.

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

Versuchen Sie ipconfig /displaydns und suchen Sie nach Wolfman. Wenn er als “name does not exist” zwischengespeichert wird (möglicherweise aufgrund einer vorherigen, zeitweise fehlgeschlagenen Suche), können Sie den Cache mit ipconfig /flushdns leeren.

nslookup verwendet nicht den Cache, sondern fragt direkt beim DNS-Server nach.

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

Versuchen Sie, . zu den DNS-Suffixen für diese Verbindung hinzuzufügen. D.h., gehen Sie zu:

  1. Ethernet-Status
  2. Klicken Sie auf Eigenschaften
  3. Internet-Protokoll Version 4
  4. Klicken Sie auf Eigenschaften
  5. klicken Sie auf Erweitert
  6. Fügen Sie diese DNS-Suffixe an (in der Reihenfolge)
  7. Fügen Sie . als Suffix hinzu.

Dieselben Schritte sind in der folgenden Abbildung dargestellt:

Damit sollte ping wolfman funktionieren.

Erläuterung

nslookup wolfman (Nameserver-Lookup: wolfman) sendet den Hostnamen (wolfman) an das DNS (Domain Name System), um die entsprechende IP-Adresse zu erhalten. Dies ist der einzige Zweck des Befehls nslookup. Das funktioniert bereits, also haben wir überprüft, dass das DNS funktioniert und dass wolfman tatsächlich einer IP-Adresse entspricht.

Im Gegensatz dazu muss ping wolfman zwei Dinge tun:

  1. Die IP ermitteln, der der Hostname (wolfman) entspricht.
  2. Senden Sie Pakete an die IP und warten Sie auf die Antwort

Unter Windows (selbst unter neueren Versionen wie Windows 10) kann der erste Schritt leicht fehlschlagen. Aus Gründen der Abwärtskompatibilität unterstützt Windows verschiedene Methoden der Hostnamenauflösung (hosts-Datei, DNS, NetBIOS/WINS, LMHOST-Datei).

Leider scheint es, dass der Windows-Befehl ping nicht immer versucht, eine DNS-Abfrage durchzuführen. Ich kenne die spezifischen Bedingungen nicht, die dieses Verhalten auslösen.

Glücklicherweise können wir Windows zwingen, eine DNS-Abfrage durchzuführen, indem wir einen FQDN (voll qualifizierter Domänenname) verwenden. In der Praxis tun wir dies, indem wir einen Punkt . an den Hostnamen anhängen: wolfman.. Versuchen Sie ping wolfman. und überprüfen Sie, ob es funktioniert.

Der letzte Schritt besteht darin, Windows zu zwingen, diesen Punkt selbst anzuhängen. Ich habe am Anfang dieser Antwort bereits gezeigt, wie das geht.

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

nslookup funktioniert anders als andere Befehle bei der Auflösung von Namen/ip-Adressen unter Windows.

Die normale Auflösungsmethode unter Windows ist wie folgt:

  1. Der Client prüft, ob es sich bei dem abgefragten Namen um seinen eigenen handelt:
  2. Der Client durchsucht dann eine lokale Hosts-Datei, eine Liste von IP-Adressen und Namen, die auf dem lokalen Rechner gespeichert sind.
  3. Domain Name System (DNS)-Server werden abgefragt.
  4. Wenn der Name immer noch nicht aufgelöst ist, wird die NetBIOS-Namensauflösungssequenz als Backup verwendet. Diese Reihenfolge kann durch Konfiguration des NetBIOS-Knotentyps des Clients geändert werden.

nslookup hingegen wird für das Testen von Domänennamen-Servern verwendet.

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

Ich habe mit einem ähnlichen Problem gekämpft und die von @harrymc vorgeschlagene Lösung ausprobiert. Ich fand, was schließlich (zumindest ein wenig) zu funktionieren scheint, im Microsoft Technet Forum nslookup funktioniert, aber nichts anderes hat DNS auf einem eigenständigen Win7 PC )

Hier ist das Zitat:

… versuchen Sie, mit dem unten stehenden Befehl einen Client-Resolver-Cache zu Testzwecken zu leeren und zurückzusetzen.

ipconfig /flushdns

ipconfig /registerdns

Weitere Details finden Sie unter dem unten stehenden Link. http://jefferyland.wordpress.com/2011/07/28/quick-review-of-flushdns-registerdns-and-dns-queries/

Was mir also im Grunde fehlte, war ipconfig /registerdns

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

Gerade heute hatten wir das gleiche Problem, aber die Lösung war anders. Also dachte ich, ich füge es als Referenz hinzu, da dies das oberste Suchergebnis war.

  • Problem : ping wird einen Hostnamen nicht auflösen, aber nslookup kann es. (Beobachtet auf 2 verschiedenen Windows Server 2012 R2-Hosts.)
  • Ursache : &007 kann einen Hostnamen auflösen: (Für jeden Host) Der Host hat mehr als eine NIC angeschlossen, und es sind mehrere Standard-Gateways konfiguriert.
  • Lösung : (Für jeden Host) Entfernen Sie das Standard-Gateway aus der Konfiguration aller NICs bis auf eine, so daß es nur noch ein Standard-Gateway gibt.
5
5
5
2012-11-19 20:04:28 +0000

Vielleicht ist wolfman.company.com in C:\Windows\system32\drivers\etc\hosts ?

nslookup umgeht diese Datei und fragt immer DNS ab, während ping und andere Tools zuerst in der Datei “hosts” und dann im DNS nachschauen.

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

Ich hatte das gleiche Problem auf einem System mit Windows 2012R2 (=8.1) und versuchte alle obigen Vorschläge, aber keiner von ihnen konnte es beheben: - Das Pingen des vollqualifizierten Namens funktionierte. - Das Pingen des unqualifizierten Namens funktionierte nicht. - Beide funktionierten auf mehreren anderen Systemen, die das gleiche Betriebssystem und anscheinend die gleiche Konfiguration hatten.
- Alle erforderlichen Suffix-Suchzeichenketten waren vorhanden. (Beachten Sie, dass einige der vorgeschlagenen Korrekturen, wie z.B. der Workaround für die Multilabel-Abfragen, offensichtlich irrelevant sind, da der unqualifizierte Name nur einen Teil hat.)

Dann bemerkte ich, dass das Zielsystem, das ich anzupingen versuchte, KEINE IPv6-Adresse hatte. Also versuchte ich “ping -4 unqualifizierter_name”, und Bingo! funktionierte. Aus irgendeinem Grund versuchte ping also nur auf diesem System, nur den unqualifizierten Namen aufzulösen ->IPv6-Adresse, und nicht den unqualifizierten Namen->IPv4. Für mich bestand die Lösung darin, IPv6 komplett abzuschalten, da ich es überhaupt nicht brauche. Aber ich wäre wirklich daran interessiert, einen sanfteren Weg zu finden, um ping (oder vermutlich dem DNS-Clientdienst) mitzuteilen, er solle versuchen, sowohl IPv4- als auch IPv6-Adressen aufzulösen.

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

Ich habe versucht herauszufinden, warum ich auf einem Computer mit 7 Siegen ping server verwenden kann, der funktioniert, und auf dem anderen Computer server nicht auflösen kann. Beide konnten jedoch server.lan anpingen, was ich nicht ganz verstand.

Es stellte sich heraus, dass ich einige Einstellungen (DNS-Suffixe) durcheinander gebracht hatte, um bei der Verwendung des Arbeits VPN keine FQDNs verwenden zu müssen. Ich mußte meine lokale .lan zu diesen Suffixen hinzufügen, damit sich beide Computer gleich verhalten.

Gehen Sie zu Systemsteuerung > Netzwerk und Internet > Netzwerkverbindungen und klicken Sie mit der rechten Maustaste auf Ihre Netzwerkverbindung und klicken Sie auf Eigenschaften. Klicken Sie auf Internet Protocol Version 4 und klicken Sie auf die Schaltfläche Eigenschaften. Klicken Sie dann in diesem neuen Fenster auf die Schaltfläche Erweitert…. Gehen Sie zur Registerkarte DNS, hier hatte ich ein DNS-Suffix für meine Arbeit hinzugefügt, benötigte aber auch eines für meine normalen Heimverbindungen.

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

Ich bin auch auf dieses Thema gestoßen. Der “einfachste” Weg, es zu beheben, war für mich, einfach ein . an das Ende des Hostnamens anzufügen. Dies ist jedoch ziemlich ärgerlich. Die meisten Netzwerke benötigen dies nicht. Ich möchte es lieber nicht allen anderen im Netzwerk sagen müssen, dies zu tun, wenn sie auf dieselbe Ressource zugreifen müssen.

Ich habe mir den Vorschlag von Frederik Aalund als mögliche Lösung angesehen und bemerkte, dass sie vorschlugen, von der Standardoption “Anhängen von primären und verbindungsspezifischen DNS-Suffixen” abzugehen. Das brachte mich auf den Gedanken, dass mein Netzwerk vielleicht einfach nur leicht falsch konfiguriert war.

Wenn ich meine DD-WRT-Einstellungen betrachtete, wurde die “LAN-Domäne” nicht eingestellt. Die Einstellung auf eine beliebige Zeichenfolge scheint dieses Problem für alle Clients in meinem Netzwerk behoben zu haben, ohne dass auf jedem Rechner eine spezielle Konfiguration vorgenommen wurde - die Lösung, die ich wollte! :)

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

Ich greife dies auf, weil es mich im letzten Jahr gestört hat und ich vielleicht eine Abhilfe gefunden habe.

Für mich schien es, dass irgendein dns-Caching-System innerhalb des Windows-Clients fehlerhaft ist. Windows 7 und 8.1 sind davon betroffen… über Windows XP kann man nicht mehr viel sagen. ping löst den Namen nicht auf. Nicht der icmp-Teil ist wichtig, sondern der Namensauflösungsteil). nslookup ist dafür gedacht, den Nameserver abzufragen und macht genau das und keine Namens-Hierarchie-Auflösung von Windows.

Ein Neustart des dnscache-Dienstes half immer. Aber seit ich IPv6** auf allen Client-Schnittstellen **deaktiviert habe, trat das Problem nicht mehr auf.

Prost!

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

Das Hinzufügen eines Eintrags in der Datei c:/windows/system32/drivers/etc/hosts könnte dies beheben.

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

Ich bin auf dieses Problem gestoßen, als wir von Windows XP auf Windows 7 migriert haben, das Problem hing mit einer Windows 7-Multi-Label-DNS-Abfrage zusammen.

DNS-Suffix an unqualifizierte Multi-Label-Namen-Abfragen anhängen lassen - siehe: http://computerstepbystep.com/allow\_dns_suffix_anhängen_an_unqualifizierte_multi_label_name_queries.html

Hoffentlich hilft das

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

Wenn es auf Mac OS X ein DNS-Cache-Problem sein könnte:

Cache löschen

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

Vielleicht liege ich hier falsch, weil es auf meinen lange vergessenen NT4-Ressourcen-Kit-Tagen basiert.

Als Tarif kann ich mich erinnern, daß PING Netbios/WINS und DNS verwendet (in dieser Reihenfolge, zumindest wenn Sie keinen FQDN angeben).

WINS ist seit vielen Jahren nicht mehr verfügbar, aber vielleicht haben Sie immer noch Netbios auf Ihrer Oberfläche aktiviert und PING verwendet daher Netbios, das Ihnen möglicherweise kein Ergebnis liefert. Vor allem, wenn der Verkehr irgendwo an einem Router vorbeigeht.

Deaktivieren Sie einfach Netbios, und Ping wird DNS als erste Priorität verwenden und den registrierten DNS-Verkehr auf der Schnittstelle an Ihren Hostnamen anhängen.

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

Als dieses Problem auf einem Windows 7-Client auftrat, der einer Domäne beitrat, stellte sich heraus, dass es sich um falsche DirectAccess-Einstellungen in der Registrierung handelte.

Versuchen Sie, den Inhalt des folgenden Schlüssels zu löschen:

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

und dann den ‘DNS-Cache-Dienst’ neu zu starten.

Wenn das hilft, suchen Sie unter Gruppenrichtlinien-Verwaltungskonsole nach zwei Richtlinien mit den Namen ‘DirectAccess-Client-Einstellungen’ und ‘DirectAccess-Servereinstellungen’. Prüfen Sie, ob sie korrekt konfiguriert sind oder in Ihrem Szenario sogar benötigt werden. Sie werden manchmal automatisch mit bestimmten Einstellungen für die Rolle Routing und Fernzugriff auf einem Server erstellt, und dies war unsererseits die Ursache für das Problem. http://virot.eu/manually-remove-direct-access-from-a-client/

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

Ich hatte das gleiche Problem und es stellte sich heraus, dass ein anderer Rechner die gleiche IP-Adresse hatte, und das war die Ursache.

Änderte die IP wieder auf DHCP und alles funktionierte einwandfrei.

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

In meinem Fall bestand die Lösung dieses Problems darin, die Domäne des Hosts, den ich anzupingen versuchte, zu einer Gruppenrichtlinienoption namens “DNS-Suffix-Suchliste” hinzuzufügen.

Die Prozedur ist kurz gesagt folgende: Öffnen Sie gpedit.msc und navigieren Sie zu Computer Configuration -> Administrative Templates -> Network -> DNS Client > DNS Suffix Search List, setzen Sie es auf “Aktiviert” und fügen Sie den Domänennamen zur Liste hinzu (die Liste ist standardmäßig leer).

Eine genauere Beschreibung dieser Schritte finden Sie hier

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

Keine der Lösungen hier hat für mich funktioniert. Was für mich funktionierte, war die Wiederherstellung der Verbindung zum vpn meiner Arbeit mit OpenVPN. Nach dem Trennen der Verbindung funktionierte dann alles weiter.

Ich glaube, das Problem hing mit dem Stromausfall zusammen, während mein Computer mit openVPN verbunden war. Der einzige Weg, dies herauszufinden, war die Verwendung von WireShark. Ich bemerkte, dass die Ziel-IPs für alle Anfragen an IPs im internen Netzwerk meiner Arbeit gingen.

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

Ich habe gerade dieses Problem gehabt und etwas sehr Eigenartiges gefunden, und es ist mir gelungen, es zu beheben Lol

Im Grunde genommen wird es fehlschlagen, wenn Sie irgendwelche Einträge in Ihrer Hosts-Datei haben, die mit der IP übereinstimmen, die Ihr Ping zu lösen versucht.

Wenn Sie zum Beispiel in Ihrem DNS einen Eintrag für www.example.com - 10.0.0.20 haben, dann aber einen Eintrag in der Hosts-Datei Ihres Kunden, 10.0.0.20 somethingelse.com, dann können Sie www.example.com nicht pingen

Seltsam, was?

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

ping verwendet das ICMP-Protokoll, insbesondere das ‘Echo Request’ und ‘Echo Reply’.

Viele Netzwerke deaktivieren ICMP-Dienstprogramme, um Angriffe oder grundlegende Netzwerk-Scans zu verhindern. Ich habe festgestellt, dass viele Router, die Sie kaufen, standardmäßig mit einer Einstellung zur Deaktivierung von Ping und ähnlichen Hilfsprogrammen ausgestattet sind.

mehr über ICMP finden Sie hier: http://en.wikipedia.org/wiki/Internet_Control_Message_Protocol