สิ่งที่อาจทำให้การค้นหา DNS ละเว้นรายการโฮสต์ไฟล์


13

ฉันมีปัญหาในการแก้ไข DNS ที่มีผลต่อประสิทธิภาพการทำงานของเว็บไซต์ที่โฮสต์ในพื้นที่ของฉันเมื่อเรียกดูบนเครื่องท้องถิ่นของฉัน ถ้าฉันแนบส่วนต่อท้าย DNS ของเครือข่ายของฉันไปที่ชื่อเครื่องในพื้นที่ของฉันเมื่อฉันไปที่ URL ในเบราว์เซอร์ของฉันไซต์นั้นมีเวลาโหลดที่แย่มาก (ช้ากว่า 100+ เท่า) กว่าไม่มีส่วนต่อท้าย DNS

ฉันคิดว่าฉันสามารถแก้ไขได้โดยใช้ไฟล์โฮสต์ของฉันเพื่อหลีกเลี่ยงความต้องการการค้นหา ฉันได้เพิ่มรายการลงในไฟล์ hosts ของฉันเช่นนี้

127.0.0.1    myMachine.MyDnsSuffix

แต่นี่ไม่ได้เปลี่ยนเวลาในการโหลดแม้หลังจากรีบูต แม้ว่ามันจะไม่สำคัญในการแก้ไขปัญหาเฉพาะนี้ฉันอยากจะรู้ว่าทำไมสิ่งนี้ถึงเกิดขึ้น

นอกจากนี้เมื่อฉันเรียกใช้ nslookup บนโดเมนmyMachine.MyDnsSuffixฉันสังเกตว่ามันใช้เซิร์ฟเวอร์ DNS ของเครือข่ายของฉันเพื่อค้นหา IP สิ่งนี้อาจเกี่ยวข้องกับปัญหาของฉันหรือฉันแค่เข้าใจผิดว่า nslookup ทำงานอย่างไร

คำตอบ:


20

ฉันเชื่อว่า nslookup ใช้เพื่อทดสอบเซิร์ฟเวอร์ DNS ของตัวเองซึ่งตรงข้ามกับการใช้ไฟล์โฮสต์ของคุณ http://support.microsoft.com/kb/200525ดูเหมือนจะบ่งบอกได้มาก

ลอง ping ง่าย ๆ ไม่ping myMachine.MyDnsSuffixแก้ปัญหาที่จะอยู่ย้อนกลับที่คุณได้ระบุไว้ในไฟล์โฮสต์ของคุณหรือไม่


nslookupคุณทำให้เป็นจุดที่ดีเกี่ยวกับ ฉันลอง pinging myMachine.MyDnsSuffixและแก้ไขเป็น IP ของฉันบนเครือข่ายไม่127.0.0.1เหมือนที่ระบุในไฟล์ HOSTS ของฉัน
Dan Herbert

ระบบปฏิบัติการของคุณคืออะไร? ฉันคิดว่า Windows7 และ Vista อาจมีการป้องกัน UAC แปลก ๆ ในไฟล์โฮสต์ คุณแน่ใจว่าการเปลี่ยนแปลงของคุณบันทึกอย่างถูกต้องหรือไม่?
Christopher Karel

ระบบปฏิบัติการของฉันคือ Windows XP ดูเหมือนว่าการเปลี่ยนแปลงจะได้รับการบันทึกอย่างเหมาะสม
Dan Herbert

อืม ... ไม่มีเครื่องหมายแฮชที่จุดเริ่มต้นของรายการโฮสต์นั้นใช่ไหม (นั่นจะทำให้มันเป็นความคิดเห็น) และคุณแน่ใจว่ามันอยู่ใน C: \ Windows \ System32 \ drivers \ etc \ hosts? คุณสามารถเพิ่มรายการดัมมี่ที่นั่นและดูว่าแก้ไขได้ตามที่คุณระบุหรือไม่?
Christopher Karel

3
โอ้และอย่าลืมล้างแคชชื่อของคุณ ipconfig /flushdns. และแคช NETBIOS ด้วยเช่นกัน: nbtstat -R. (ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ใน windows - WTF ทำไม?!)
Christopher Karel

8

การค้นหา DNS ไม่ใช้ไฟล์โฮสต์ เคย


2
@BartDeVos ไม่มันไม่ผิด การค้นหาโฮสต์ทั่วไป(เช่นgethostbyname()สามารถไปผ่านไฟล์โฮสต์หรือผ่าน DNS แต่การค้นหาDNS เฉพาะ (ตามที่ดำเนินการโดยnslookup) จะไม่ใช้ไฟล์โฮสต์
Alnitak

ที่กล่าวว่า gethostinfo / getaddrinfo (รุ่นที่ทันสมัยของ gethostbyname) เป็น POSIX และไม่จำเป็นต้องใช้ Windows
adaptr

2

ตกลงแนวทางใหม่ล่าสุด ให้คุณล้าง IP และ NETBIOS cache ของคุณ และipconfig /flushdns nbtstat -Rจากนั้นยิงแพ็คเก็ตดมกลิ่นเช่น Wireshark และทำ ping ในขณะที่มันกำลังทำงานอยู่

จากการดักจับแพ็คเก็ตเราต้องการดูว่า A) มีคำขอ DNS ดับหรือไม่ถ้ามีขอชื่ออะไร B) หากมีคำขอ NETBIOS ดับ อาจเป็นไปได้ว่าชื่อนี้กำลังแก้ไขผ่าน NETBIOS แทนที่จะเป็น DNS ที่เหมาะสม

หากเราไม่เห็นข้อใดข้อหนึ่งข้างต้นแม้คุณจะล้างแคชของคุณแล้วก็เป็นไปได้ว่าชื่อนั้นจะถูกดึงจากโฮสต์หรือ lmhosts


1

บางคนในฟอรัมเว็บอ้างว่าการสร้างไฟล์โฮสต์ใหม่และการเริ่มต้นบริการไคลเอ็นต์ DNS ใหม่ช่วยแก้ไขปัญหาได้ แต่ฉันไม่แน่ใจว่าทำไมจึงใช้งานได้หากคุณลองรีบูตเครื่องแล้ว

ฉันรู้ว่านี่เป็นภาพยาว แต่ไม่มีคำที่เกี่ยวข้องกับ Microsoft เช่น MSDN, Microsoft หรือ MSN ในรายการโฮสต์ไฟล์ใช่หรือไม่ Microsoft ได้เขียน dnsapi.dll เพื่อละเว้นรายการโฮสต์ไฟล์ที่ตรงกับชื่อที่แน่นอน ตัวอย่างเช่นถ้าฉันเพิ่มรายการต่อไปนี้ Windows จะข้ามและแก้ไขชื่อโฮสต์ทั้งสองในรายการโดยใช้ DNS:

127.0.0.1 www.microsoft.com www.mysite.com

ฉันไม่มีสิ่งที่เกี่ยวข้องกับไมโครซอฟท์ในไฟล์ HOSTS ของฉัน ฉันมีการกำหนดโดเมนการทดสอบภายในเพียงไม่กี่แห่ง ไฟล์ HOSTS ของฉันค่อนข้างพื้นฐาน
Dan Herbert

อืมน่าสนใจ ฉันรู้ว่าพวกเขาใช้รหัส MS เพื่อข้ามHOSTSไฟล์ แต่ถึงแม้จะไม่ใช่โดเมนที่ไม่ได้รับ MS ก็จะถูกเพิกเฉยถ้ามันแชร์รายการกับโดเมน MS นั่นเป็นเพียงการเขียนโปรแกรมที่ไม่ดีในส่วนของพวกเขา นี่เป็นสิ่งที่ต้องระวังหาก“ ลดขนาด” HOSTSไฟล์
Synetech

0

เมื่อมีการใช้ชื่อเต็มของ DNS เบราว์เซอร์จะพยายามที่จะไปผ่านเซิร์ฟเวอร์พร็อกซี - clicky สำหรับ IE

คำสั่งการแก้ปัญหาชื่อไฟล์หรือชื่อโฮสต์ไม่เกี่ยวข้องกับปัญหานี้และอาการเจ็บที่ด้านหลังของมนุษยชาติที่เป็นไฟล์โฮสต์ควรถูกนำออกไปและยิงอย่างน่ารำคาญ


ฉันไม่ได้เชื่อมต่อกับพร็อกซี่
Dan Herbert

1
@mh: ฉันจะเห็นด้วยกับคุณเกี่ยวกับโฮสต์การถ่ายภาพตราบใดที่เซิร์ฟเวอร์รากอนุญาตให้ฉันเพิ่ม / ลบ / แก้ไขบันทึก
เอียนบอยด์

0

http://geekswithblogs.net/JanS/archive/2009/06/17/beware-of-spacing-in-windows7-hosts-file.aspx

นี่เป็นสาเหตุที่แท้จริง ปล่อยให้ไมโครซอฟท์จู่ๆโดยไม่มีการเตือนล่วงหน้าให้เพิกเฉยต่อการประชุมอายุ 25 ปี


2
โปรดระบุส่วนสำคัญของคำตอบ / สาเหตุในคำตอบของคุณ มันดีกว่าลิงค์
จาค็อบ

นี่คือส่วนสำคัญของ URL ที่เชื่อมโยงอย่างไรก็ตามดูเหมือนว่าจะไม่มีอะไรทำงาน จนกว่าฉันจะเห็นตัวอย่างไฟล์โฮสต์อื่น ๆ ที่จัดรูปแบบเป็น <ที่อยู่ IP> <ช่องว่างเดียว> <value>
Tun

-1

8
ยินดีต้อนรับสู่ Server Fault! ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
Ben Pilbrow
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.