เป็นไปได้ที่ resolvconf จะถูกกำหนดค่าผิดพลาด นี่เป็นโอกาสโดยเฉพาะอย่างยิ่งถ้าคุณได้เล่นกับไฟล์การกำหนดค่าโดยไม่เข้าใจจริงๆว่า resolvconf และ NetworkManager ทำงานอย่างไร
สำหรับข้อมูลพื้นฐานโปรดอ่านเอกสาร resolvconf และโพสต์บล็อกของStéphane Graber
https://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/
ก่อนอื่นคุณควรรู้ว่าทั้ง Ubuntu Desktop และ Ubuntu Server โดยปริยายมีการติดตั้งและเปิดใช้งาน resolvconf Resolvconf จัดเตรียมเฟรมเวิร์กสำหรับการอัพเดตไฟล์ /etc/resolv.conf แบบไดนามิกในแบบที่เป็นระเบียบและย้อนกลับได้
อันดับที่สองคุณควรรู้ว่า Ubuntu Desktop เป็นค่าเริ่มต้นที่มี NetworkManager ติดตั้งและเปิดใช้งาน โดยค่าเริ่มต้น NetworkManager เริ่มต้นอินสแตนซ์ของ dnsmasq เพื่อใช้เป็นเนมเซิร์ฟเวอร์การส่งต่อโลคัล อินสแตนซ์ dnsmasq ที่ควบคุมโดย NetworkManager นี้รับฟังการสืบค้นที่ 127.0.1.1 เมื่อ NetworkManager เริ่มต้นอินสแตนซ์ dnsmasq มันบอกให้ resolvconf ใส่ที่อยู่127.0.1.1
ใน resolv.conf ดังที่กล่าวไว้ในคำตอบอื่นถ้าคุณกำหนดค่า NetworkManager ไม่ให้เริ่มต้นอินสแตนซ์ของ nameserver การส่งต่อภายในเครื่องมันจะไม่เริ่มการทำงานของการส่งต่อภายในเครื่องและจะไม่บอก resolvconf เพื่อแทรกที่อยู่127.0.1.1
ลงใน resolv.conf
การกำหนดค่าเริ่มต้นนี้ทำงานอย่างถูกต้องดังนั้นหากสถานการณ์ของคุณไม่พิเศษคุณควรคืนค่าการกำหนดค่าเริ่มต้น
หากต้องการคืนค่าการกำหนดค่าเริ่มต้นให้ดูที่การตั้งค่านั้น
- /etc/resolvconf/resolv.conf.d/head มีเฉพาะข้อความส่วนหัว resolvconf ประกอบด้วยสองบรรทัดเริ่มต้นด้วย
#
ตัวอักษร
- /etc/resolvconf/resolv.conf.d/base เป็นไฟล์ว่าง
- /etc/resolvconf/resolv.conf.d/tail เป็นไฟล์ว่าง
- /etc/resolv.conf เป็นลิงค์สัญลักษณ์พร้อมเนื้อหา
../run/resolvconf/resolv.conf
เพื่อให้บรรลุนี้ดำเนินการคำสั่งต่อไปนี้
sudo su
dpkg-reconfigure resolvconf # And answer `Yes` to agree to dynamic updates
cd /etc/resolvconf/resolv.conf.d
echo '# 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' > head
rm -f base tail original
:> base
:> tail
การกำหนดค่าดั้งเดิมของ NetworkManager คือการมี
[main]
...
dns=dnsmasq
...
ใน /etc/NetworkManager/NetworkManager.conf มันเป็นทางเลือกที่เหมาะสมเพื่อปิดการใช้งาน NetworkManager ควบคุม nameserver การส่งต่อในประเทศโดยการแสดงความคิดเห็นออกdns=dnsmasq
บรรทัด
[main]
...
#dns=dnsmasq
...
หลังจากดำเนินการทั้งหมดแล้วขอแนะนำให้รีสตาร์ทเครื่องเพื่อล้างข้อมูลบันทึกเนมเซิร์ฟเวอร์เก่า
sudo reboot