ฉันจะลบ localhost nameserver ออกจาก resolv.conf ได้อย่างไร


10

ขณะนี้การ/etc/resolv.confอ่านของฉัน:

nameserver 127.0.0.1  
nameserver 10.255.0.101  
nameserver 10.255.0.11  

และฉันต้องการให้อ่านแทน:

search [my domain]  
nameserver 10.255.0.101  
nameserver 10.255.0.11  
nameserver 208.67.222.222  
nameserver 208.67.220.220  

เนื่องจากทั้งสอง/etc/resolv.confและ/etc/resolv.conf.d/headไม่สามารถแก้ไขด้วยมือได้ฉันจะเปลี่ยนแปลงได้อย่างไร


ดูaskubuntu.com/a/208027/15811สำหรับคำอธิบายเกี่ยวกับวิธีการใช้งาน
Rinzwind

คำตอบ:


7

ขั้นแรก/etc/resolvconf/resolv.conf.d/head สามารถแก้ไขได้ด้วยมือ ความคิดเห็นในไฟล์ที่ระบุว่าDO NOT EDIT THIS FILE BY HANDใช้ไม่ได้กับ/etc/resolvconf/resolv.conf.d/headตัวเอง แต่ใช้/etc/resolv.confกับสิ่งที่ก่อนหน้านี้ได้รับการเติม

ต้องบอกว่า /etc/resolvconf/resolv.conf.d/headแต่ภายใต้สถานการณ์ปกติที่คุณควรจะได้มีการแก้ไข

ไฟล์/etc/resolvconf/resolv.conf.d/headและ/etc/resolvconf/resolv.conf.d/tailถูกจัดเตรียมเพื่อเป็นวิธีบังคับให้ head และ tail ไปยังส่วนที่สร้างขึ้นresolv.confนั้นจำเป็นต้องใช้ภายใต้สถานการณ์พิเศษ แต่ถ้าคุณใช้ resolvconf อย่างถูกต้องและภายใต้สถานการณ์ปกติคุณไม่จำเป็นต้องทำสิ่งนี้

คุณบอกว่าเนื้อหาของไฟล์นั้น

nameserver 127.0.0.1
nameserver 10.255.0.101
nameserver 10.255.0.11

การมีบรรทัดnameserver 127.0.0.1แนะนำว่าคุณกำลังเรียกใช้เนมเซิร์ฟเวอร์การส่งต่อโลคัลเช่น dnsmasq ไฟล์ด้านบนไม่ใช่สิ่งที่ resolvconf สร้างขึ้นตามปกติในกรณีเหล่านี้ โดยปกติจะสร้างไฟล์ดังต่อไปนี้

# 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.0.1
search foo.com

ฉันเดาว่าในระบบของคุณ/etc/resolv.confไม่ใช่ลิงก์สัญลักษณ์../run/resolvconf/resolv.confแต่เป็นไฟล์ธรรมดาซึ่งอาจมีหรือไม่มีสิ่งอื่นนอกเหนือจาก resolvconf หากไฟล์นั้นเป็นแบบสแตติกสมบูรณ์แล้วเพียงแค่แก้ไขเพื่อให้มันดูตามที่คุณต้องการ หากไฟล์ถูกสร้างโดยเครื่องมือบางอย่างนอกเหนือจาก resolvconf ให้หาว่าเครื่องมือใดกำลังสร้างไฟล์และกำหนดค่าเครื่องมือนั้น

อีกวิธีหนึ่งคือคืนค่าลิงก์สัญลักษณ์/etc/resolv.conf -> ../run/resolvconf/resolv.confและกำหนดค่า resolvconf อย่างเหมาะสม

ฉันจะลบ localhost nameserver จาก resolv.conf ได้อย่างไร

คำแนะนำต่อไปนี้จะใช้เฉพาะกับกรณีที่คุณกำลังใช้ resolvconf ในการจัดการ/etc/resolv.confเช่นการเชื่อมโยงสัญลักษณ์/etc/resolv.conf../run/resolvconf/resolv.conf

ถ้าเป็นเส้น nameserver 127.0.0.1อยู่ในไฟล์ใดไฟล์หนึ่งให้/etc/resolvconf/resolv.conf.d/ลบออกจากที่นั่น

มิฉะนั้นบรรทัดนั้นมาจากเนมเซิร์ฟเวอร์ที่ทำงานอยู่ในเครื่องบางเครื่อง ยกเลิกการติดตั้งเนมเซิร์ฟเวอร์หรือกำหนดค่าเนมเซิร์ฟเวอร์ที่จะไม่ลงทะเบียนที่อยู่ 127.0.0.1 ด้วย resolvconf โดยเฉพาะอย่างยิ่งถ้าคุณกำลังเรียกใช้ BIND 9 ที่มีชื่อในเครื่องให้ลบหรือตั้งค่าRESOLVCONF=no/etc/default/bind9ใน

Ref: https://bugs.launchpad.net/debian/+source/bind9/+bug/933723


2

ลอง

sudo vi /run/resolvconf/interface/NetworkManager

ลบหรือแทนที่เนมเซิร์ฟเวอร์ 127.0.0.1 จากนั้นใช้

sudo resolvconf -u.

1

ตรวจสอบการกำหนดค่า NetworkManager ของคุณ:

sudo NetworkManager --print-config

ถ้ามี

dns=systemd-resolved

จากนั้นแก้ไขการตั้งค่าใน

/run/resolvconf/interface/systemd-resolved

และอัปเดต

sudo resolvconf -u

ในกรณีของฉันยังมี

/run/resolvconf/interface/tun0.openvpn

ไฟล์ (สร้างโดย OpenVPN) ซึ่งสามารถลบได้อย่างปลอดภัยเพื่อหลีกเลี่ยงสัญญาณรบกวน:

sudo rm /run/resolvconf/interface/tun0.openvpn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.