ฉันจะรวมบรรทัดใน resolv.conf ที่จะไม่หายไปเมื่อรีบูตได้อย่างไร


173

ในที่สุดฉันก็ย้ายไปที่ 12.04 จาก 7.10 ฉันมีส่วนสุดท้ายที่จะทำให้เสร็จ แต่ฉันนิ่งงัน ฉันใช้ Puppet ในแต่ละเซิร์ฟเวอร์และในอดีตฉันรวมที่อยู่เซิร์ฟเวอร์ชื่อและค้นหาชื่อโดเมนสำหรับ puppetmaster ใน resolv.conf

search puppetmaster.com
nameserver 192.168.1.XXX

ใน 12.04 resolv.conf ได้รับการเขียนทับเมื่อรีบูตเครื่อง ฉันไม่สามารถใช้ IP แบบคงที่สำหรับสิ่งเหล่านี้ดังนั้นการใช้ / etc / network / interfaces เพื่อช่วยฉันออกมาเป็นจุดศูนย์กลาง

# 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

มีวิธีรับ resolvconf เพื่อจัดการนี้ทั้งในหัวหางหรือฐาน? หากมีจะมีตัวอย่างใด ๆ ที่ฉันสามารถใช้ปรับแต่งบนเซิร์ฟเวอร์ของฉัน

ความช่วยเหลือใด ๆ ที่ชื่นชมมาก


2
resolvconf เป็นซอฟต์แวร์ที่ไม่ดีเพียงแค่ลบมันและจัดการ /etc/resolv.conf ด้วยวิธีเก่า
ชายบรอนซ์

คำตอบ:


134

น่าจะดีกว่าถ้าให้เซิร์ฟเวอร์ DNS ของคุณสามารถแก้ไข 'puppet' ให้เป็นที่อยู่ที่ถูกต้องและให้เซิร์ฟเวอร์ DHCP ของคุณแจกที่อยู่เซิร์ฟเวอร์ชื่อ DNS และรายการค้นหาหรืออื่น ๆ (ถ้าคุณมีที่อยู่ IP แบบคงที่) เพื่อให้ได้สิ่งที่ชอบ ต่อไปนี้ใน / etc / network / interfaces

iface eth0 inet static
    address 192.168.3.3
    netmask 255.255.255.0
    gateway 192.168.3.1
    dns-search example.com
    dns-nameservers 192.168.3.45 192.168.8.10

แต่ถ้าคุณไม่ต้องการที่จะทำผ่านแฟ้มการกำหนดค่า resolvconf /etc/resolvconf/resolv.conf.d/baseที่คุณจะต้องการที่จะแก้ไข resolv.confในแฟ้มที่ใส่ในข้อมูลของคุณในขณะที่คุณจะอยู่ใน

nameserver 192.168.1.XXX

แล้วบอก resolvconf resolv.confการงอกใหม่

sudo resolvconf -u

13
แม้ว่าคำตอบนี้มีคะแนนโหวตและส่วนแรกมีความถูกต้องไม่มากก็น้อยส่วนที่สองของคำตอบนั้นไม่ถูกต้อง (1) ไม่ได้ใส่ "ค้นหา" บรรทัดใน /etc/resolvconf/resolv.conf.d/head หากคุณใส่บรรทัด "ค้นหา" ไว้บรรทัดนี้จะถูกละเว้นหาก resolvconf มีบรรทัด "ค้นหา" ในส่วนไดนามิกของไฟล์ resolv.conf ตัวแก้ไข glibc ละเว้นทั้งหมดยกเว้นบรรทัด "ค้นหา" หรือ "โดเมน" ล่าสุด ดู resolv.conf (5) (2) หากมีการเปลี่ยนแปลงการกำหนดค่า resolvconf คุณไม่ควรรีสตาร์ทงาน resolvconf แต่เพียงเรียกใช้การปรับปรุง "resolvconf -u"
jdthood

1
ฉันลบบรรทัดแล้ว ตัวเลือกอื่นจะใช้หางแทนหัว
tgm4883

6
@tishma: สวัสดี ก่อนอื่นเพื่อป้องกันความเข้าใจผิด: ไม่มีสิ่งใดเขียนไปยังไฟล์ส่วนหัวหรือส่วนท้าย ไม่มีอะไรเขียนไปยังไฟล์ใด ๆ ใน /etc/resolvconf/resolv.conf.d/ ณ เวลาทำงาน ไฟล์เหล่านี้อ่านโดย resolvconf ซึ่งรวบรวมเนื้อหาของพวกเขาลงในไฟล์ที่เขียน --- /run/resolvconf/resolv.conf --- ซึ่ง symlink /etc/resolv.conf ชี้ไปที่ ประการที่สองเกี่ยวข้องกับสิ่งที่ต้องทำหลังจากตัวเลือก dns- * ใน / etc / network / interfaces เปลี่ยนแปลงไป ไม่ได้เรียกใช้ "/etc/init.d/networking รีสตาร์ท"; ที่เลิกใช้แล้ว แทนการลดลงของอินเทอร์เฟซในคำถามและ ifup อีกครั้ง
jdthood

4
ใน 14.04 คำตอบนี้ไม่ได้ทำอะไรเลยสำหรับฉัน
Jay Sullivan

2
หากทุกอย่างล้มเหลว .. $ sudo resolconf -u ดูเหมือนจะไม่เปลี่ยนแปลงสิ่งใดสำหรับฉันรีสตาร์ทเครื่อง presto
MSpreij

35

ฉันคิดว่าคำตอบคือตรวจสอบของคุณ/etc/dhcp/dhclient.confคือไม่ขอdns-nameserversจากลูกค้าDHCPของคุณ

จากนั้นอัปเดตของคุณ /etc/network/interfaces

auto eth0
iface eth0 inet dhcp
dns-search google.com
dns-nameservers dnsserverip

จากนั้นคุณresolv.confจะได้รับการกำหนดค่าอัตโนมัติตามที่คุณต้องการ

เพิ่มไปที่dns-searchแล้วเรียกใช้/etc/init.d/networking restart (แม้ว่าสคริปต์นี้เลิกใช้แล้วก็ยังใช้งานได้)


5
dhclient กฎการตั้งค่า resolvconf ใด ๆ ดังนั้นนี่ควรเป็นคำตอบที่ดีที่สุด
Alex R

6
/etc/init.d/networking restartไม่ทำงานบนเครื่องของฉัน แต่sudo ifdown -aแล้วsudo ifup -aก็ทำ (นอกจากนี้ก็เอาฉันบิตที่จะตระหนักถึงฉันต้องเปลี่ยนdnsserveripกับสิ่งที่ต้องการ8.8.8.8นั้นฉันรู้สึกบิตโง่.)
เจสันมวลรวม

ลองsystemctl restart networking.service
Pavel Sayekat

20

อาจเกิดจากการกำหนดค่า DHCP เมื่อคุณติดตั้ง Ubuntu ครั้งแรก ลองกระบวนการ 3 ขั้นตอนนี้เพื่อจัดการปัญหาการกำหนดค่าอัตโนมัตินี้

เป็นครั้งแรก

แก้ไขการกำหนดค่าอินเทอร์เฟซของคุณซึ่งอยู่ใน: /etc/network/interfaces

เพิ่มบรรทัดนี้ด้านล่างiface lo inet loopback:

dns-nameservers yourdns youraltdns

ตัวอย่างของ Google DNS คุณอาจต้องการใช้สิ่งนี้:

dns-nameservers 8.8.8.8 8.8.4.4

ที่สอง

แก้ไขไฟล์กำหนดค่า DHCP ของคุณซึ่งอยู่ที่:

/etc/dhcp/dhclient.conf

ทำเครื่องหมายไวยากรณ์เป็นความคิดเห็นที่ใช้#ในทุกบรรทัดหรือลบทุกคำขอชื่อเซิร์ฟเวอร์ ใน 16.04 คุณอาจไม่จำเป็นต้องทำการเปลี่ยนแปลงใด ๆ ที่นี่

ที่สาม

รีสตาร์ทเครือข่ายของคุณโดยใช้คำสั่งนี้:

/etc/init.d/networking restart

ใน 16.04:

sudo ifdown -a
sudo ifup -a

3
/etc/init.d/networking restartไม่ทำงานบนเครื่องของฉัน แต่sudo ifdown -aแล้วsudo ifup -aก็ทำ
Jason Gross

มันง่ายและใช้งานได้แม้ว่ามันจะแฮ็ก! ปัญหาเกี่ยวกับสิ่งต่างๆเช่นอูบุนตูมี 1,000 วิธีในการทำสิ่งหนึ่ง!
Willa O Ng'wana

และจากนั้นคุณสามารถตรวจสอบว่า/etc/resolv.confมีรายการ DNS ใหม่ 2 รายการในบรรทัดแรกที่มีประโยชน์
ROMANIA_engineer

8

โปรดดูที่resolvconfหน้าคน คุณสามารถบังคับให้รวมการตั้งค่า DNS บางอย่างโดยสร้างเช่น/etc/resolvconf/resolv.conf.d/base:

  /etc/resolvconf/resolv.conf.d/base
          File containing basic resolver information.  The lines  in  this
          file  are  included in the resolver configuration file even when
          no interfaces are configured.

มีไฟล์พิเศษอื่น ๆ (หัวและหาง) ซึ่งอาจช่วยให้คุณบรรลุสิ่งที่คุณต้องการ


4
คุณสามารถเพิ่มบรรทัดใน /etc/resolvconf/resolv.conf.d/base แต่เนื่องจากเนมเซิร์ฟเวอร์ทุกตัวสามารถเข้าถึงได้ผ่านทางอินเตอร์เฟสและเข้าถึงได้เฉพาะเมื่ออินเตอร์เฟสนั้นขึ้นอยู่จึงเป็นการดีที่สุดที่จะเชื่อมโยงข้อมูลเนมเซิร์ฟเวอร์กับอินเตอร์เฟสนั้น หากอินเตอร์เฟสถูกกำหนดค่าด้วย ifup หมายความว่า: วางข้อมูลบนบรรทัด "dns-search" และ "dns-nameservers" ใน / etc / network / interfaces stanzas หากอินเตอร์เฟสถูกกำหนดค่าผ่าน DHCP นี่หมายความว่า: กำหนดค่าเซิร์ฟเวอร์ DHCP เพื่อระบุชื่อการค้นหาและที่อยู่เซิร์ฟเวอร์ชื่อให้กับลูกค้า อื่น ๆ ใช้ไฟล์ "base" เป็นแฮ็กชั่วคราวหรือเป็นทางเลือกสุดท้าย
jdthood

อ๋อ ฉันเพิ่ม "nameserver 1.2.3.4" ใน /etc/resolvconf/resolv.conf.d/base
Bastion

8

ดังที่คำตอบอื่น ๆ ระบุไว้นี้เกี่ยวข้องกับresolvconfการติดตั้งในระบบ

ดังนั้นวิธีที่ดีที่สุดในการเก็บบางสิ่งresolv.confที่จะไม่หายไปเมื่อรีบูตคือการรวมไว้ในไฟล์การกำหนดค่า resolvconf ที่อยู่ใน:

/etc/resolvconf/resolv.conf.d/

ไปที่นั่นสำหรับheadไฟล์ สิ่งที่คุณใส่จะมีการเขียนที่ด้านบนของ/etc/resolv.conf

ดังนั้นทุกอย่างจะเป็นดังนี้:

# echo nameserver 8.8.8.8 >> /etc/resolvconf/resolv.conf.d/head
# resolvconf --enable-updates
# resolvconf -u

นี่คือคำตอบที่ถูกต้องจริง! ที่สุด!
user77232

6

สำหรับฉันคำตอบข้างต้นไม่เพียงพอด้วยเหตุผลดังต่อไปนี้:

  • ฉันไม่ได้ใช้เพียงแค่ธรรมดาresolvconf/etc/resolv.conf
  • การใช้chattr +iเพื่อล็อคresolv.confดูเหมือนว่าแฮ็คเกินไป ฉันต้องการหุ่นกระบอกให้เป็นอิสระในการเปลี่ยนแปลงเมื่อจำเป็น
  • AFAIK การแก้ไข/etc/network/interfacesไม่ได้ป้องกันresolv.confการเขียนทับ เพียงระบุเซิร์ฟเวอร์ชื่อที่ควรเขียน สำหรับฉันการระบุเซิร์ฟเวอร์ชื่อไม่ใช่ประเด็น ฉันกำลังพยายามที่จะตั้งค่าoptions timeout:1และoptions attempts:1ในresolv.confไฟล์ของฉัน

ทางออกที่ดีที่สุดที่ผมพบว่าแทนที่พฤติกรรมเริ่มต้นของdhclientการใช้ตะขอเอกสารของ

สร้างไฟล์ใหม่ที่/etc/dhcp/dhclient-enter-hooks.d/nodnsupdateมีเนื้อหาดังต่อไปนี้:

#!/bin/sh
make_resolv_conf() {
    :
}

จากนั้นทำให้ไฟล์ที่ปฏิบัติการได้:

chmod +x /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate

ตอนนี้เมื่อ dhclient รัน - ไม่ว่าจะเป็นการรีบูทหรือเมื่อคุณรันด้วยตนเองsudo ifdown -a ; sudo ifup -a- มันจะโหลดสคริปต์nodnsupdateนี้ สคริปต์นี้แทนที่ฟังก์ชันภายในที่เรียกmake_resolv_conf()ว่าปกติจะเขียนทับresolv.confและไม่ทำอะไรเลย

สิ่งนี้ใช้ได้กับฉันใน Ubuntu 12.04


1
ทำงานได้ดีบน Debian 8. ทางออกที่สวยงาม!
Artur Bodera

1
เพื่อความสมบูรณ์: manpage dhclient-scriptเก็บข้อมูลเกี่ยวกับสคริปต์การกำหนดค่าเครือข่ายไคลเอนต์ DHCP ที่กล่าวถึงคำตอบข้างต้น
hecke

สิ่งนี้ใช้งานไม่ได้ใน 16.04 ฉันได้เพิ่มสิ่งต่าง ๆ ใน /etc/network/interfaces.d ด้วยโดยไม่มีผลกระทบเพิ่มการแทนที่ว่างเปล่าของ make_resolv_conf แนะนำที่นี่ไม่มีผล .... แต่ไม่ได้แก้ไข / etc / dhcp / dhclient.conf - ฉันต้องแก้ไขไฟล์กำหนดค่าแบบคงที่จริงๆเพื่อแก้ไขปัญหานี้หรือไม่?
silverjam

3

นี่อาจเป็นเรื่องแปลก ๆ ในเครื่องของฉัน แต่บางคนอาจมีมุมที่เหมือนกัน

ฉันพยายามหลายวิธีเพื่อให้ ISP ของฉันที่รวมเซิร์ฟเวอร์ชื่อไว้ใน / etc / resolv.conf ไม่ประสบความสำเร็จ:

  • ฉันรวมพวกเขาไว้ใน/etc/network/interfacesและเริ่มระบบเครือข่ายใหม่ /etc/resolv.confพวกเขาไม่ได้แสดงใน

  • ฉันใส่มันไว้/etc/resolv.confอย่างชัดเจน แต่แน่นอนว่าพวกเขาถูกเขียนทับ พวกเขาได้แสดงในแต่ไม่เคยทำให้มันไป/run/resolvconf/interface/eth0.inet/etc/resolv.conf

  • ฉันพยายามกำหนดค่า resolvconf สำหรับการอัพเดทแบบไดนามิก ไม่มีการเปลี่ยนแปลง.

ในที่สุดฉันก็อ่านที่ไหนสักแห่งว่าหากเครื่องท้องถิ่น (127.0.0.1) แสดงในเนม/etc/resolv.confเซิร์ฟเวอร์อื่น ๆ จะไม่รวมอยู่ด้วย

ในความสิ้นคิดฉันแก้ไข/run/resolvconf/interface/lo.namedลบเพียงบรรทัดในนั้น ( nameserver 127.0.0.1) ifdown eth0 && ifup eth0และเริ่มต้นใหม่:

/etc/resolv.conf จึงรวมเซิร์ฟเวอร์ชื่อ ISP ของฉันเป็นครั้งแรก! ฉันวิ่งservice network-manager restartไปดูว่ามันเสถียรหรือไม่และ/etc/resolv.confยังรวมถึงเนมเซิร์ฟเวอร์ ISP ของฉันด้วย รีบูตเพียงเพื่อให้แน่ใจและก็ยังคงมีแต่ ได้ตั้งค่าไปที่:/run/resolvconf/interface/lo.namednameserver 127.0.0.1

การรีสตาร์ทเครือข่ายอย่างอยากรู้อยากเห็นยังคงใช้งานได้: /etc/resolv.confยังคงมีเซิร์ฟเวอร์ชื่อ ISP ของฉันอยู่ ฉันไม่สามารถอธิบายสิ่งนี้ได้ (สามารถมีใครซักคนได้) แต่สิ่งนี้อาจช่วยคนที่ติดอยู่ในจุดเดียวกัน


dnsmasqนี้น่าจะมีสาเหตุมาจาก คุณสามารถลบออกโดยใช้apt-get remove dnsmasqหรืออัปเดตการ/etc/dnsmasq.confกำหนดค่า
Tombart

2

เพิ่มเนมเซิร์ฟเวอร์ของคุณลงในไฟล์ /etc/resolvconf/resolv.conf.d/head ไฟล์มีข้อความที่คุณได้รับ:

ไฟล์นั้นควรมีลักษณะเช่นนี้หลังจากเพิ่ม 8.8.8.8

root@hvnatvcc: ~ # cat /etc/resolvconf/resolv.conf.d/head 
# 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 8.8.8.8

3
การเพิ่มบรรทัดลงใน /etc/resolvconf/resolv.conf.d/head เป็นวิธีการแก้ปัญหาที่แย่ยิ่งกว่าการเพิ่มบรรทัดลงใน /etc/resolvconf/resolv.conf.d/base โซลูชันที่ถูกต้องสำหรับอินเตอร์เฟสที่กำหนดค่าโดยใช้ ifup คือการเพิ่มบรรทัด "dns-search" และ "dns-nameservers" ไปยัง stanzas ใน / etc / network / interfaces ดูความเห็นของฉันเกี่ยวกับคำตอบอื่น ๆ
jdthood

3
มันเป็นสิ่งเดียวที่ใช้งานได้จริงสำหรับฉัน ... และดูเหมือนยากที่จะเข้าใจว่าทำไมการแก้ปัญหาที่ "ถูกต้อง" จึงไม่ทำงาน
silverjam

1

เพิ่มในบรรทัดสุดท้ายเช่น:

nameserver 8.8.8.8

เปิดเทอร์มินัลแล้วพิมพ์

sudo chattr +i /etc/resolv.conf

เครื่องหมาย + ฉันจะดูแลว่าไฟล์จะไม่ถูกลบทิ้งในการบู๊ต

เพื่อยกเลิกการข้างต้น

sudo chattr -i /etc/resolv.conf

สำหรับข้อมูลเพิ่มเติม

man chattr

1

โซลูชันอื่น ๆ ใช้ไม่ได้กับระบบ Fedora 20 ของฉัน ปัญหาเฉพาะของฉันคือบรรทัด "ค้นหา" ใน /etc/resolv.conf ถูกเขียนทับ นี่คือสิ่งที่แก้ไขมัน (นี่ถือว่า NetworkManager กำลังสร้างบรรทัด search rn.yourcompany.com และคุณต้องการให้เป็น search rn.yourcompany.com yourcompany.com intnet.yourcompany.com:

1. ใช้คำสั่ง "ifconfig" เพื่อค้นหาว่าอินเตอร์เฟสใดที่น่าสนใจ:

$ ifconfig
  :
  :

em2:  <this was the one which was connected>

2. กลายเป็นรูตและเปลี่ยนเป็นไดเร็กทอรีอุปกรณ์เน็ตเวิร์กคอนฟิกูเรชัน:

$ sudo su -[sudo] 
password for youruser:
# cd /etc/sysconfig/networking/devices`
  1. ใช้เครื่องมือแก้ไขที่คุณชื่นชอบเพื่อเพิ่มDomainบรรทัดที่มีโดเมนเพิ่มเติมเพื่อค้นหา:

DOMAIN="yourcompany.com intnet.yourcompany.com"

บันทึกออกจากระบบและลงชื่อเข้าใช้ใหม่ NetworkManager ควรมีบรรทัดใน\etc\resolve.conf:

search rn.yourcompany.com yourcompany.com intnet.yourcompany.com

3
อย่าให้ฝนตกในขบวนพาเหรดของคุณ แต่นี่คือ Ask Ubuntu ดังนั้น Fedora จึงไม่ใช่หัวข้อ
Flimm

1

เพิ่มรายการ /etc/resolvconf/resolv.conf.d/head

echo 'search puppetmaster.com' | sudo tee -a /etc/resolvconf/resolv.conf.d/head
echo 'nameserver 192.168.1.XXX' | sudo tee -a /etc/resolvconf/resolv.conf.d/head

และเรียกใช้คำสั่งต่อไปนี้

sudo resolvconf -u

1

สำหรับ Ubuntu Server 18 Netplan เป็นยูทิลิตี้ใหม่สำหรับการกำหนดค่าเครือข่าย

# cd /etc/netplan

จากนั้นแก้ไขรายการที่อยู่เนมเซิร์ฟเวอร์ในไฟล์ yaml (ใช้การเยื้องที่ถูกต้อง) ตัวอย่างเช่นหากคุณใช้เซิร์ฟเวอร์ DNS ของ Google:

nameservers:
    addresses: [8.8.8.8,8.8.4.4]

เพื่อเริ่มบริการใหม่

# netplan apply

ดูhttps://netplan.io/

https://www.techrepublic.com/article/how-to-set-dns-nameservers-in-ubuntu-server-18-04/


0

หากคุณใช้ DHCP ให้แก้ไข/etc/dhcp/dhclient.confเพื่อเพิ่มเซิร์ฟเวอร์ DNS เพิ่มเติม:

prepend domain-name-servers 12.34.56.78, 12.34.56.79;

ไคลเอ็นต์ DHCP เขียนทับdns-nameserversอินetc/network/interfacesและฉันก็คิด/etc/resolvconf/resolv.conf.d/baseเช่นกัน

สิ่งนี้ใช้ได้กับฉันในเซิร์ฟเวอร์ Ubuntu 14.04.3

ดูDebian NetworkConfiguration Wikiสำหรับรายละเอียด


0

เพียงสำรองข้อมูล resol.conf ของคุณและลบ pacage resolvconf และแก้ไขไฟล์ /etc/resolv.conf ไปยังสิ่งที่คุณต้องการ

apt-get remove -y resolvconf
echo 'nameserver 8.8.8.8' > /etc/resolv.conf

เราควรมีสิทธิ์เลือกที่จะไม่ใช้ซอฟต์แวร์ที่ไม่ดีเช่น resolvconf

อย่างไรก็ตามฟิลด์ค้นหาใน /etc/resolv.conf นั้นไร้ประโยชน์


0

การใช้resolvconfและการปิดการใช้งานsystemd-resolved.service(สิ่งนี้ใช้ได้กับฉันใน Ubuntu 19.04)

  1. ติดตั้ง resolvconf

    sudo apt install resolvconf
    
  2. การเพิ่มเนมเซิร์ฟเวอร์

    เปิดด้วยโปรแกรมแก้ไขข้อความของคุณผมใช้/etc/resolvconf/resolv.conf.d/basevim

    sudo vim /etc/resolvconf/resolv.conf.d/base
    

    จากนั้นเพิ่มเนมเซิร์ฟเวอร์ภายในไฟล์ที่เปิดเช่น:

    nameserver 1.1.1.1
    nameserver 1.0.0.1
    
  3. อัปเดต resolv.conf

    sudo resolvconf -u
    
  4. ปิดการใช้งานsystemd-resolved.serviceและรีบูต ไม่ได้เขียนเพื่อnameserver 127.0.0.53/etc/resolv.conf

    sudo systemctl disable systemd-resolved.service
    sudo reboot
    

ทำ!

แหล่ง


คุณสามารถระบุรุ่นของ Ubuntu ที่คุณใช้ทำสิ่งนี้? คำถามเดิมหมายถึง ubuntu 12.04 เนื่องจากเลิกใช้มานาน
Marc Vanhoomissen

0

ฉันพบสิ่งนี้การแก้ไขที่ง่ายที่สุด หากคุณมีresolv.confและresolvconfไฟล์พวกเขาจะเหยียบกัน คุณต้องลบresolv.confไฟล์ที่รับและเขียนทับทุกครั้งที่คุณทำการรีบูต

วางnameserver 1.1.1.1 1.0.0.1ที่ด้านล่างของไฟล์ resolvconf แล้วรัน

sudo rm /etc/resolv.conf

เพื่อกำจัดไฟล์ จากนั้นทำการรีสตาร์ทและทุกอย่างจะทำงาน


0

โซลูชัน Mi ใน 12.04:

ฉันสังเกตเห็นว่าถ้าคุณเพิ่ม dns-nameserver ในอินเตอร์เฟสที่ไม่ใช้เซิร์ฟเวอร์การจำแนกชื่อ

resolvconf man page

ในการทำให้ resolv.conf ไม่เปลี่ยนแปลงเมื่อเราแก้ไขด้วยตนเองให้ทำเช่นนี้ในเทอร์มินัล:

sudo resolvconf –disable-updates

หลังจาก:

sudo resolvconf -a eth0 # or your network interface

จากนั้นแก้ไขด้วยตนเองโดย/run/resolvconf/resolv.confเพิ่มเซิร์ฟเวอร์ DNS ได้สูงสุดสองตัว

จากนั้นเริ่มบริการ:

sudo /etc/init.d/networking restart

4
นี่ไม่ใช่วิธีที่ถูกต้องในการแก้ปัญหา
jdthood

1
@jdthood ในฐานะคนที่กำลังดูข้อมูลนี้คุณสามารถอธิบายได้อย่างละเอียดว่าทำไมนี่จึงไม่ใช่วิธีที่ถูกต้อง? ดูเหมือนว่าฉันจะมีเหตุผล แต่ฉันไม่รู้อะไรเกี่ยวกับเรื่องนี้
ErikPerik

-1

เพียงแค่ใส่

dns-search google.com && dns-nameservers (sample: 8.8.8.8)

คำสั่งเกี่ยวกับ/etc/network/interfacesการกำหนดค่าของคุณ จากนั้นรีสตาร์ทเครือข่ายของคุณ

มันควรจะทำงาน


-2

การกำหนดค่านั้นถูกประกาศใน /etc/default/bind9

RESOLVCONF=no|yes

ไม่ = ไม่ใช้เงื่อนไขในinit.d bind9

ใช่หรือค่าอื่น ๆ = แทนที่resolv.conf

ปัญหานี้เกิดขึ้นเมื่อคุณติดตั้งbind9และไม่สนใจการตรวจสอบทั้งหมด

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