วิธีการแทนที่เนมเซิร์ฟเวอร์ DHCP ที่จัดมาให้?


13

ฉัน (คิด) ว่าฉันได้กำหนดค่าที่อยู่ IP แบบคงที่ใน/etc/network/interfaces:

# The primary network interface 
auto eth0 
iface eth0 inet static
    address 10.1.1.2
    netmask 255.255.255.0
    network 10.1.1.0
    broadcast 10.1.1.255
    gateway 10.1.1.1

และฉันเปลี่ยนไฟล์/etc/resolv.confเพื่อรวมเนมเซิร์ฟเวอร์ที่ต้องการ

จากนั้นฉันรีสตาร์ทเครือข่าย sudo /etc/init.d/networking restart

แต่หลังจากผ่านไปหลายชั่วโมง resolv.conf จะเปลี่ยนกลับไปเป็นเนมเซิร์ฟเวอร์ DHCP


ฉันควรจะบอกว่านี่คือเซิร์ฟเวอร์ Ubuntu ที่มีเฉพาะl0และeth0ส่วนต่อประสาน


เป็นresolvconfแพคเกจติดตั้ง?
Gilles 'หยุดชั่วร้าย'

คุณกำลังพยายามใช้ dhclient บนอินเทอร์เฟซเครือข่ายอื่น (อาจจะเป็น wifi หรือ dial up interface) หรือ dhclient ทำงานไม่ถูกต้องบน eth0 แม้ว่ามันควรจะเป็นแบบคงที่หรือไม่?
poolie

มีเฉพาะ eth0 และ lo0, IP ที่ฉันตั้งด้วยตนเองจะเหมือนกับ DHCP IP ที่ฉันจะได้รับ (เซิร์ฟเวอร์ DHCP จะให้บริการ IP แบบคงที่เสมอ) แต่ฉันไม่ต้องการใช้เนมเซิร์ฟเวอร์ที่กำหนดโดยเซิร์ฟเวอร์ DHCP ดังนั้นฉันคิดว่าฉันจะตั้งค่า IP ด้วยตัวเองและจะไม่มี DHCP ใด ๆ แต่ฉันไม่เข้าใจว่าทำไม resolv.conf จึงได้รับการอัปเดต
David Parks

Gilles - ไม่ฉันวิ่ง: dpkg -L resolvconf และรับ: ไม่ได้ติดตั้งแพ็คเกจ `resolvconf '
David Parks

คำตอบ:


35

หากคุณต้องการแทนที่หรือผนวกเข้ากับเซิร์ฟเวอร์ชื่อที่เซิร์ฟเวอร์ DHCP แนะนำให้คุณสามารถกำหนดค่านี้ใน/etc/dhcp/dhclient.confเช่น:

interface "eth0" {
    prepend domain-name-servers 10.0.0.2;
}

คุณสามารถทำได้จากการควบคุม "แก้ไขการเชื่อมต่อ" ในตัวบ่งชี้เครือข่ายใน Unity หรือ GNOME


4
นี่เป็นทางออกที่ดีที่สุดฉันโพสต์ตัวเลือกอื่น แต่ตระหนักว่าการตั้งค่า IP แบบคงที่ไม่ใช่ความคิดที่ดีในสภาพแวดล้อม AWS EC2 :)
David Parks

ถ้าคุณต้องการเพิ่มเซิร์ฟเวอร์ชื่อโดเมนหลายรายการ
dangonfast

การเตรียมเนมเซิร์ฟเวอร์ชื่อโดเมน127.0.0.1ดูเหมือนว่าจะทิ้งเนมเซิร์ฟเวอร์ที่ให้บริการโดย dhcp (กรณีนี้จะไม่เกิดขึ้นกับการเพิ่มเซิร์ฟเวอร์ชื่ออื่น)
dangonfast

2
แทนที่prependด้วยsupersedeเพื่อเขียนทับค่า DHCP อย่างสมบูรณ์
Sqerstet

ขอบคุณ ฉันสามารถพูดเพื่อเพิ่มเซิร์ฟเวอร์ DNS สำหรับอินเทอร์เฟซทั้งหมด (อาจมีข้อยกเว้น) ได้หรือไม่ หรือรายการอินเตอร์เฟส?
ctrl-alt-delor

1

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

แก้ไขไฟล์: /etc/resolvconf/resolv.conf.d/head

วางเนมเซิร์ฟเวอร์ที่คุณต้องการและการกำหนดค่าอื่น ๆ ที่คุณต้องการใช้เมื่อมีการเปลี่ยนแปลงเครือข่าย เมื่อมีการเปลี่ยนแปลงเครือข่ายเกิดขึ้นการกำหนดค่าจะมีความสำคัญกว่าเสมอ

ตัวอย่างของ/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
search mydomain.com

ดูคำตอบของคำถามที่คล้ายกัน:
แทนที่ dns nameserver

หมายเหตุ:
ต้องแน่ใจว่ามี linefeed หลังจากรายการสุดท้าย ผู้แก้ไขส่วนใหญ่จะจัดเตรียม linefeed ให้โดยอัตโนมัติเมื่อบันทึกไฟล์


-2

ฉันพบการอ้างอิงเพื่อลบไคลเอ็นต์ dhcp ฉันคิดว่านั่นเป็นผู้ร้ายหลัก ฉันทำสิ่งนี้แล้วและยังไม่เห็นปัญหา จะรอ 'จนถึงเช้าเพื่อยืนยัน แต่ปรากฏว่าไคลเอ็นต์ dhcp ยังคงทำงานอยู่และจะต้องหยุดและถอนการติดตั้ง

apt-get remove isc-dhcp-client dhcp3-client dhcpcd

ฉันสับสนเล็กน้อยหากวิธีแก้ปัญหาเป็นคำสั่ง prepend หรือหากเป็นการลบไคลเอ็นต์ DHCP ออก
Eugene van der Merwe

@EugenevanderMerwe มันเป็นคำสั่งที่เพิ่มเข้ามา ผู้โพสต์กล่าวว่า "นี่เป็นทางออกที่ดีที่สุดฉันโพสต์อีกตัวเลือกหนึ่ง แต่ตระหนักว่าการตั้งค่า IP แบบคงที่ไม่ใช่ความคิดที่ดีในสภาพแวดล้อม AWS EC2 :)"
Grammargeek

-3

ตามกฎทั่วไปคุณควรถอนการติดตั้งบริการเครือข่ายทั้งหมดที่ใช้apt-get --purge remove <package-name>อยู่เสมอ ด้วยวิธีนี้ไฟล์การกำหนดค่าทั้งหมดจะถูกลบเช่นกัน

ในกรณีนี้คำสั่งจะเป็น:

apt-get --purge remove isc-dhcp-client isc-dhcp-common

isc-dhcp-clientคำสั่งนี้จะเป็นการลบ


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