นี่เป็นคำถามที่ได้รับความนิยมมากโดยมีคำตอบมาตรฐานที่เป็นไปได้ทั้งหมดซึ่ง IMO นั้นค่อนข้างแฮ็ค ฉันคนหนึ่งมักมีปัญหาในการให้ Ubuntu เคารพการตั้งค่า DNS ที่ฉันตั้งใน NetworkManager - โดยเฉพาะการตั้งค่าเซิร์ฟเวอร์ DNS แบบคงที่ด้วย "ที่อยู่อัตโนมัติ (DHCP) ที่อยู่เท่านั้น" - และวันนี้ในที่สุดฉันก็พบสิ่งผิดจริง
ปัญหาอยู่ในการโต้ตอบระหว่าง resolvconf และ NetworkManager resolvconf /etc/resolvconf/interface-order
มีไฟล์นี้เรียกว่า อย่างน้อยในระบบของฉัน NetworkManager ไม่ได้อยู่ในไฟล์นี้เลย (ยกเว้นว่าจะครอบคลุมด้วย * wild card ในตอนท้าย) ดังนั้นสิ่งที่เกิดขึ้นคือรายงานล่าสุดของ dhclient สำหรับ resolvconf นั้นสำคัญกว่า NetworkManager ทุกอย่างที่ต้องพูด
ดังนั้นอย่างน้อยในกรณีของฉันคำตอบที่แท้จริงคือการเพิ่ม
NetworkManager
/etc/resolvconf/interface-order
หรือใกล้ด้านบนของ
(ใช่ฉันรู้ว่าหลายคนแค่พูดว่า "ถอนการติดตั้ง resolvconf" ซึ่งดูเหมือนว่าเป็นความคิดที่ไม่ดีในตัวฉันเอง แต่ยิ่งไปกว่านั้นอย่างน้อยเจ้าเล่ห์และ xenial พิจารณา resolvconf เป็นส่วนสำคัญของระบบ [เช่น Ubuntu - น้อยที่สุดขึ้นอยู่กับมัน] ดังนั้นจึงเป็นเรื่องยากที่จะทำให้ระบบของคุณอยู่ในสถานะที่สอดคล้องและอัปเดตโดยไม่ต้อง resolvconf)
เมื่อได้รับการร้องขอฉันสามารถให้รายละเอียดเพิ่มเติมเกี่ยวกับวิธีคิดออก ( แก้ไข : เห็นได้ชัดว่าฉันไม่ได้ทำเมื่อมีการร้องขอขอโทษ ณ จุดนี้ฉันจำรายละเอียดไม่ได้มากไปกว่าสิ่งที่ฉันพูดต่อไป :) โดยสรุปฉันเปลี่ยนแทน executvconf ที่มีตัวห่อตัวรอบตัวมัน ซึ่งทิ้งอาร์กิวเมนต์, อินพุต, เอาต์พุตและ stderr ไปยังไฟล์ และเพิ่ม set -x เพื่อแก้ไขสคริปต์การอัพเดทของ resolvconf
( แก้ไข : ฉันสามารถพูดได้ว่าสิ่งที่ฉันหมายถึงโดยส่วนแรกคือฉันใช้ sudo เพื่อย้ายปฏิบัติการจริง resolvconf ซึ่งสามารถพบได้โดยใช้คำสั่งที่หรือคำสั่งพิมพ์จากนั้นสร้างเชลล์สคริปต์ที่ในที่สุดก็ดำเนินการย้าย resolvconf แต่ยังรวมถึงข้อโต้แย้งไปยังไฟล์บางไฟล์และใช้การเปลี่ยนเส้นทางเชลล์เพื่อส่ง stdin, stdout และ stderr ไปยังไฟล์อื่น ๆ ฉันไม่จำที่ "สคริปต์อัพเดตของ resolvconf" อยู่และไม่สามารถตรวจสอบได้ง่ายในขณะนี้ฉันคิดว่า ลินุกซ์หลายคนสามารถเข้าใจสิ่งที่ฉันหมายถึงบางทีพลเมืองดีบางคนอาจให้รายละเอียดเพิ่มเติมในความคิดเห็น)
nm-tool
nmcli