การค้นหา DNS ช้ามากอย่างมาก


11

Ubuntu 12.10

ฉันจะอธิบายปัญหาแรก บางครั้งเมื่อฉันโหลดเว็บเพจมันไม่เคยโหลดเสร็จและมันบอกว่าไม่สามารถเข้าถึงเซิร์ฟเวอร์หรืออะไรทำนองนั้น เมื่อฉัน ping เว็บไซต์นั้นเทอร์มินัลบอกว่ามันไม่สามารถแก้ไขชื่อโฮสต์ได้ ดังนั้นฉันจึงลองเซิร์ฟเวอร์ DNS ของ Google แต่ก็ไม่มีโชค มันแปลกเพราะฉันไม่เคยมีปัญหานี้ใน Windows 7 ฉันใช้

    cat /etc/resolv.conf

และมันก็เกิดขึ้นกับสิ่งนี้:

    # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
    #DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
    nameserver 127.0.1.1
    search hsd1.or.comcast.net

ทำไมมันใช้ 127.0.1.1 หมายความว่าพยายามแก้ไขที่อยู่ในเครื่องหรือไม่ เมื่อฉัน ping เซิร์ฟเวอร์การค้นหา comcast ฉันพบข้อผิดพลาดการหมดเวลา


ดูเหมือนว่าการค้นหา DNS จะทำงานได้ถ้าฉันแทนที่ 127.0.1.1 ด้วย 8.8.8.8 ซึ่งเป็นเซิร์ฟเวอร์ DNS ของ Google แต่นั่นจะถูกเขียนทับการบู๊ตแต่ละครั้ง
Kenneth Clark

โปรดแบ่งครึ่งหนึ่งของปัญหานี้ (อาจเป็นปัญหาวิดีโอของ AMD) เป็นคำถามแยกต่างหากเพื่อที่จะได้คำตอบของตัวเอง
ImaginaryRobots

ตกลง. ฉันแยกทั้งสองขึ้น ตอนนี้ถ้าฉันจะได้วิธีแก้ปัญหา: /
Kenneth Clark

ฉันได้ตั้งค่าเซิร์ฟเวอร์ DNS ของฉันเป็น 8.8.8.8 ดังนั้นฉันจึงเปลี่ยนเป็น 8.8.4.4 และเริ่มทำงานดังนั้น Google ก็มีปัญหาบางครั้งเช่นกัน คิดว่ามันคุ้มค่าที่จะพูดถึง
Eduard Luca

คำตอบ:


29

/etc/resolv.conf (ซึ่งจริง ๆ แล้วเป็นลิงค์สัญลักษณ์ไปยัง /run/resolvconf/resolv.conf) เขียนโดยโปรแกรมอรรถประโยชน์ resolvconf ตามข้อมูลที่มาจากแหล่งต่าง ๆ ที่เป็นไปได้

127.0.1.1 เป็นที่อยู่ IP ลูปแบ็คซึ่งอินสแตนซ์ควบคุม NetworkManager ของ dnsmasq รับฟัง Dnsmasq ทำงานในเครื่องและยอมรับคำสั่ง DNS ที่ 127.0.1.1 และส่งต่อข้อความค้นหาเหล่านี้ไปยังเซิร์ฟเวอร์ชื่อภายนอกที่มี NetworkManager ตกแต่งอยู่ แบบแผนนี้ใช้ไม่ได้ผลเสมอไปและหากคุณมีปัญหาใด ๆ กับมัน (เช่นเดียวกับคุณ) ขอแนะนำให้ปิดใช้งาน dnsmasq ที่ควบคุมด้วย NetworkManager หากต้องการปิดใช้งานให้แก้ไข/etc/NetworkManager/NetworkManager.conf

sudo gedit /etc/NetworkManager/NetworkManager.conf

และแสดงความคิดเห็นในบรรทัด

dns=dnsmasq

เพื่อให้ดูเหมือนว่าต่อไปนี้

#dns=dnsmasq

จากนั้นรีสตาร์ทตัวจัดการเครือข่าย คำสั่งที่คุณใช้ขึ้นอยู่กับเวอร์ชัน Ubuntu ของคุณ:

sudo service network-manager restart # For newer systems using Systemd
sudo restart network-manager         # For older systems using Upstart

หลังจากนี้คุณควรมีnameserverบรรทัดใน resolv.conf ด้วยที่อยู่ IP ที่ไม่ใช่ลูปแบ็ค หากไม่ใช่กรณีนี้ให้ลองใช้คำสั่งต่อไปนี้

sudo dpkg-reconfigure resolvconf

หากคุณยังไม่มีnameserverบรรทัดใน resolv.conf ด้วยที่อยู่ IP ที่ไม่ใช่ลูปแบ็คหรือหากคุณยังไม่มีบริการ DNS ลองรีบูตเครื่อง

หากคุณยังไม่มีบริการ DNS ที่ดีให้เริ่มตรวจสอบเนมเซิร์ฟเวอร์ที่ที่อยู่ IP ภายนอก (1.2.3.4 ในตัวอย่างด้านล่าง) แก้ไขชื่อโดเมนเมื่อเข้าหาโดยใช้hostหรือdigยูทิลิตี้อย่างถูกต้องหรือไม่?

host www.ford.com 1.2.3.4

dig @1.2.3.4 www.gm.com

เซิร์ฟเวอร์ชื่อของ Google ใช้งานได้หรือไม่

host www.ford.com 8.8.8.8

dig @8.8.4.4 www.gm.com

หากคุณพบว่าเซิร์ฟเวอร์ภายนอกของคุณทำงานไม่ถูกต้องคุณควรกำหนดค่าการเชื่อมต่อของคุณให้ใช้เซิร์ฟเวอร์ชื่อที่ทำงานได้ดีเช่น Google ในการทำสิ่งนี้คลิกขวาที่ตัวบ่งชี้เครือข่ายและไปที่แก้ไขการเชื่อมต่อ | | แก้ไข ... | การตั้งค่า IPv4 สมมติว่าวิธีการปัจจุบันคือAutomatic (DHCP)กำหนดวิธีการAutomatic (DHCP) addresses onlyและปฏิบัติในที่อยู่ nameserver Additional DNS serversที่ดีในด้านสิทธิ


1
ทำไม dnsmasq จึงมีส่วนเกี่ยวข้อง? ปัญหานี้กัดฉันทุกครั้งที่ติดตั้ง Ubuntu
Joseph Garvin

สำหรับฉันมันเป็นปัญหากับ Google DNS 8.8.8.8 ซึ่งไม่สามารถใช้งานได้ชั่วคราว ซึ่งกำหนดค่าด้วยตนเองในเกตเวย์ของฉันกำหนดค่าเป็น DNS หลัก DNS ping 8.8.8.8ความพร้อมถูกตรวจสอบโดยการดำเนินการ เพื่อแก้ไขปัญหานี้ฉันเปลี่ยน IP DNS หลักเป็นหนึ่งใน OpenDNS IP 208.67.222.222
jmarceli

1

คุณอาจต้องการคลิกขวาที่แอปเพล็ตผู้จัดการเครือข่ายแก้ไขการเชื่อมต่อและเพิ่ม DNS อื่น ที่ควร 'ติด'


เมื่อฉันแก้ไขภายในตัวจัดการเครือข่ายจะไม่ทำอะไรเลย นี่มันแปลกจริงๆ ...
Kenneth Clark
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.