การค้นหา 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.