ทำไมไฟล์ resolv.conf ของฉันถึงถูกสร้างใหม่ทุกครั้ง?


17

/etc/resolv.confไฟล์ของฉันถูกสร้างใหม่ทุกครั้งทำให้ฉันหลวมเซิร์ฟเวอร์ Google DNS เมื่อฉันเชื่อมต่อโมเด็ม 3G อีกครั้ง

สำหรับการเปลี่ยนการตั้งค่า DNS ผมมองhttp://code.google.com/intl/fr-FR/speed/public-dns/docs/using.html

ฉันdhclient.confเป็นใหญ่สวย (58 เส้น) ดังนั้นผมโพสต์ไว้บนPastebin

อย่างไรก็ตามนี่คือทั้งหมดที่dhclient.confไม่มีบรรทัดความคิดเห็นหรือบรรทัดว่าง:

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
send host-name "<hostname>";
request subnet-mask, broadcast-address, time-offset, routers,
    domain-name, domain-name-servers, domain-search, host-name,
    netbios-name-servers, netbios-scope, interface-mtu,
    rfc3442-classless-static-routes, ntp-servers;
prepend domain-name-servers 8.8.8.8, 8.8.4.4;

ฉันใช้wvdialแทนตัวจัดการเครือข่าย


น่าเสียดายที่ฉันไม่รู้อะไรwvdialเลย ณ จุดนี้ฉันสงสัยว่ามันหรือแพคเกจอื่นที่ยังไม่ได้ค้นพบมีส่วนเกี่ยวข้องที่นี่ คุณรู้หรือไม่ว่าคุณได้ติดตั้งแอพพลิเคชั่นหรือเครื่องมือที่เกี่ยวข้องกับเครือข่ายอื่น ๆ ที่อาจจะสัมผัส DNS, DHCP, อินเตอร์เฟส ฯลฯ ในบางรูปแบบ?
belacqua

คำตอบ:


6

ใน 12.04, resolvconf จะถูกติดตั้งตามค่าเริ่มต้น นี่คือข้อมูลสรุปโดยย่อเกี่ยวกับวิธีเปลี่ยนแปลงการกำหนดค่า DNS สำหรับกรณีการใช้งานทั่วไปบางกรณี:

สำหรับการกำหนดค่าคงที่โดยใช้ifupการใช้งานdns-nameserversและรายการในdns-search/etc/network/interfaces

สำหรับการกำหนดค่าแบบคงที่โดยใช้NetworkManagerให้เลือกAutomatic (DHCP) addresses only Methodและป้อนที่อยู่และชื่อโดเมนในAdditional DNS serversและAdditional search domainsฟิลด์ในเครื่องมือแก้ไขการเชื่อมต่อ

เมื่อต้องการแทนที่ resolvconf กำหนดค่าเริ่มต้นของการใช้งานbase, headและในtail /etc/resolvconf/resolv.conf.d/ป้อนที่อยู่และชื่อโดเมนในไฟล์เหล่านี้เป็นการวัดชั่วคราวเนื่องจากเป็นของจริงตามที่อธิบายไว้ข้างต้น

ไม่แนะนำให้ปิดใช้งาน resolvconf แต่คุณสามารถแทนที่ symlink /etc/resolv.confด้วยไฟล์ปกติ

สำหรับข้อมูลเพิ่มเติมโปรดดูที่Stéphane Graber ของบล็อกโพสต์


4

หากสิ่งที่คุณต้องทำคือการรักษาเซิร์ฟเวอร์ Google DNS ของคุณใน resolv.conf คุณสามารถแก้ไข
/etc/dhcp3/dhclient.confและเพิ่ม:

prepend domain-name-servers 8.8.8.8;
prepend domain-name-servers 8.8.4.4;

ข้อแตกต่างระหว่างสิ่งที่คุณมีกับสิ่งที่ฉันแสดงที่นี่คือคุณมีทั้งเซิร์ฟเวอร์ชื่อในบรรทัดเดียวตามเอกสารที่คุณพูดถึง

นอกจากว่าฉันขาดอะไรไป dhclient.conf ของคุณก็ไม่มีปัญหา ณ จุดนี้ฉันสมมติว่าปัญหาเกี่ยวข้องกับ wvdial

นี่คือสิ่งที่ควรลองจากubuntuforums :

gksudo gedit /etc/ppp/peers/wvdial

ลบพารามิเตอร์ usepeerdns และบันทึกไฟล์ รหัส:

gksudo gedit /etc/wvdial.conf

เพิ่มบรรทัดเหล่านี้:

check DNS = no
auto DNS = no

@jgbelacqua ฉันลองใช้งานในรูปแบบ spearated แต่ไม่ได้ผล: P
Jakh Saidlikp

@Jakh ฉันสมมติว่าการย้ายบรรทัดที่อยู่ใกล้กับส่วนบนสุดนั้นก็ล้มเหลวเช่นกัน? (นี่คือวิธีการที่ฉันได้มีเหมืองตั้งค่า.)
belacqua

@jgbelacqua ใช่ฉันพยายามเช่นกัน;]
Jakh Saidlikp

@Jakh - คุณได้ลองแก้ไขrequest subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, domain-search, host-name, netbios-name-servers, netbios-scope, interface-mtu, rfc3442-classless-static-routes, ntp-servers;บรรทัดเพื่อลบชื่อเซิร์ฟเวอร์ที่นั่นหรือไม่
belacqua

@jgbelacqu ไม่ลองตอนนี้เลยแล้วให้คุณรู้ว่า
Jakh Saidlikp

4

วิธีที่ดีที่สุดในการตั้งค่าเนมเซิร์ฟเวอร์ผ่าน CLI โดยไม่มี NetworkManger พร้อมที่อยู่คงที่หรือเป็นอิสระจากการเชื่อมต่อคือ:

ติดตั้งแพคเกจresolvconf

วิ่ง

sudo nano /etc/resolvconf/resolv.conf.d/head

(เพิกเฉยต่อคำเตือนที่น่ากลัว /etc/resolv.conf ถูกสร้างขึ้นโดยอัตโนมัติดังนั้นคำเตือนจะอยู่ที่นั่นจึงจะใส่ /etc/resolv.conf เมื่อสร้าง /etc/resolv.conf ขึ้นที่ท้ายไฟล์ เพิ่ม

 nameserver <ip_of_nameserver>

กดCtrl xและตอบตกลงเพื่อบันทึกไฟล์ หากต้องการทำให้เสร็จให้สร้าง /etc/resolv.conf ขึ้นใหม่เพื่อให้การเปลี่ยนแปลงมีผลทันที:

 sudo resolvconf -u

ควรเพิ่มว่าโดยทั่วไปแล้วไม่ใช่ความคิดที่ดีที่จะใส่ที่อยู่เซิร์ฟเวอร์ชื่อคงที่ใน resolv.conf โปรดอ่าน /usr/share/doc/resolvconf/README.gz
jdthood

0

คุณสามารถตั้งค่าdomain-name-serversตัวเลือก dhclient.conf


ตรวจสอบ pastebin ของเขา - ดูเหมือนว่าเขามีอยู่แล้ว
belacqua

ขอบคุณฉันไม่ได้สังเกตว่า โดยวิธีการแก้ปัญหาของคุณอาจถูกต้องดังนั้นพิจารณาโพสต์มันเป็นคำตอบแทนความคิดเห็น
Adam Byrtek

สวัสดี @adam คุณสามารถทำให้ฉันชัดเจนยิ่งขึ้น a noob:] ขอบคุณ
Jakh Saidlikp

0

ฉันแก้ไขปัญหาเดียวกันด้วยคำสั่งต่อไปนี้:

echo "nameserver 212.217.0.1" >> /etc/resolvconf/resolv.conf.d/head
ln -s /etc/resolvconf/resolv.conf.d/head /etc/resolv.conf
resolvconf -u
/etc/init.d/networking restart

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

-1

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


noo ฉันไม่ได้ติดตั้งแพ็คเกจนี้เลย
Jakh Saidlikp

โปรแกรม resolvconf จะอัพเดต /etc/resolv.conf แต่เฉพาะในกรณีที่ /etc/resolv.conf เป็นลิงก์สัญลักษณ์ไปยัง ../run/resolvconf/resolv.conf แพคเกจ resolvconf ถูกนำเสนอเนื่องจากมีโปรแกรมอื่น ๆมากมายที่เหยียบย่ำ/etc/resolv.conf โดยไม่ขึ้นต่อกันทำให้เกิดความวุ่นวาย โปรดอ่าน /usr/share/doc/resolvconf/README.gz ดังนั้นจากข้อเท็จจริงที่ว่า /etc/resolv.conf ได้รับการอัปเดตจึงไม่ปฏิบัติตาม (ในเดือนมีนาคม 2011 เมื่อมีการถามคำถาม) ที่ติดตั้ง resolvconf ไว้ มีความเป็นไปได้มากที่ pppd จะเขียนไฟล์ใหม่ ( ณ อูบุนตู 12.04 แต่ resolvconf เป็นส่วนหนึ่งของระบบฐาน.)
jdthood

-1

ฉันมีปัญหาเดียวกันแน่นอนเซิร์ฟเวอร์ DNS ที่ผู้ให้บริการมือถือของฉันให้นั้นค่อนข้างแย่ดังนั้นฉันจึงต้องการใช้ DNS ของ Google NetworkManager ยังทำงานได้ไม่ดีในการจัดการการเชื่อมต่อบรอดแบนด์มือถือดังนั้นจึงwvdialเป็นสิ่งจำเป็น

ตามที่ปรากฎออกมา/etc/resolv.confคือการเชื่อมโยงสัญลักษณ์และแม้กระทั่งubuntu 12.10 12.04นี่คือสิ่งที่ฉันได้ทำ sudo unlink /etc/resolv.confหลังจากนี้คุณสามารถสร้างใหม่resolv.confด้วยvimหรือแก้ไขที่คุณเลือกและเพิ่มเซิร์ฟเวอร์ชื่อ google หรือเซิร์ฟเวอร์อื่น ๆ ที่คุณต้องการ บันทึกและคุณทำเสร็จแล้ว

หากคุณกำลังกลัวของการทำลายสิ่งที่คุณสามารถจดบันทึก symlink ที่มีอยู่ด้วยการทำls -la /etc/resolv.confก่อนunlinkingมัน

หวังว่ามันจะช่วย


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