Ich habe ein DNS-Problem, das sich auf die Leistung meiner lokal gehosteten Website auswirkt, wenn ich sie auf meinem lokalen Computer durchsuche. Wenn ich das DNS-Suffix meines Netzwerks an den Namen meines lokalen Computers anhänge, während ich zur URL in meinem Browser gehe, hat die Site schreckliche Ladezeiten (mehr als 100-mal langsamer) als ohne das DNS-Suffix.
Ich dachte, ich könnte dieses Problem beheben, indem ich meine hosts-Datei verwende, um die Notwendigkeit einer Suche zu vermeiden. Ich habe so einen Eintrag zu meiner Hosts-Datei hinzugefügt
127.0.0.1 myMachine.MyDnsSuffix
Die Ladezeiten haben sich dadurch aber auch nach einem Neustart nicht verändert. Obwohl es nicht wichtig ist, dieses spezifische Problem zu lösen, möchte ich wirklich wissen, warum dies geschieht.
Wenn ich nslookup für die Domäne ausführe myMachine.MyDnsSuffix
, wird der DNS-Server meines Netzwerks zum Ermitteln der IP-Adresse verwendet. Könnte dies mit meinem Problem zusammenhängen oder verstehe ich einfach nicht, wie nslookup funktioniert?
quelle
nslookup
. Ich habe gerade versucht, das Ping-Signal zu senden,myMachine.MyDnsSuffix
und es wurde auf meine IP-127.0.0.1
Adresse im Netzwerk aufgelöst, die nicht in meiner HOSTS-Datei angegeben ist.ipconfig /flushdns
. Und die NETBIOS - Cache zu:nbtstat -R
. (Groß- und Kleinschreibung in Windows - WTF, warum?!?)DNS-Lookups verwenden keine Hosts-Datei. Je.
quelle
gethostbyname()
kann über die Hosts-Datei oder über DNS erfolgen, aber eine DNS-spezifische Suche (wie von durchgeführtnslookup
) verwendet die Hosts-Datei nicht.OK, ganz neuer Ansatz. Lassen Sie uns Ihren IP- und NETBIOS-Cache leeren.
ipconfig /flushdns
undnbtstat -R
. Dann zünde einen Packet Sniffer wie Wireshark an und pinge, während er läuft.Anhand der Paketerfassung möchten wir sehen, ob A) eine DNS-Anforderung ausgeht und wenn ja, welchen Namen sie anfordert. B) Wenn eine NETBIOS-Anfrage ausgeht. Möglicherweise wird dieser Name über NETBIOS anstelle des richtigen DNS aufgelöst.
Wenn keine der oben genannten Meldungen angezeigt wird, obwohl Sie den Cache geleert haben, wird der Name wahrscheinlich von Hosts oder lmhosts abgerufen.
quelle
Einige Leute in Webforen behaupten, dass das Erstellen einer neuen Hostdatei und der Neustart des DNS-Client-Dienstes das Problem beheben. Ich bin mir jedoch nicht sicher, warum dies funktionieren würde, wenn Sie bereits einen Neustart versucht hätten.
Mir ist klar, dass dies ein Longshot ist, aber es gibt keine Microsoft-bezogenen Wörter wie MSDN, Microsoft oder MSN im Hosts-Dateieintrag. Microsoft hat dnsapi.dll geschrieben, um Host-Dateieinträge zu ignorieren, die bestimmten Namen entsprechen. Wenn ich beispielsweise den folgenden Eintrag hinzufüge, überspringt Windows diesen und löst beide Hostnamen im Eintrag mithilfe von DNS auf:
quelle
HOSTS
Datei zu ignorieren , aber auch die Nicht-MS-Domäne wird ignoriert, wenn sie einen Eintrag mit einer MS-Domäne teilt. Das ist nur eine schlechte Programmierung. Dies ist auf jeden Fall zu beachten, wenn eineHOSTS
Datei „verkleinert“ wird.Wenn Sie den vollständigen DNS-Namen verwenden, versucht Ihr Browser, Ihren Proxyserver zu durchlaufen - klicken Sie auf IE .
Die Reihenfolge der Hosts-Datei oder der Namensauflösung hat nichts mit diesem Problem zu tun, und die eiternde Wunde auf der Rückseite der Menschheit, die die Hosts-Datei ist, sollte zurückgenommen und geräuschvoll erschossen werden.
quelle
http://geekswithblogs.net/JanS/archive/2009/06/17/beware-of-spacing-in-windows7-hosts-file.aspx
Dies scheint die eigentliche Ursache zu sein. Überlassen Sie es Microsoft, eine 25 Jahre alte Konvention plötzlich und ohne Vorwarnung zu ignorieren.
quelle
http://www.tweaksforgeeks.com/windows7/2011/02/windows-7-hosts-file-ignored <- Arbeite für mich!
quelle