/etc/resolv.conf
ฉันไม่สามารถเก็บที่อยู่ชื่อเซิร์ฟเวอร์ฉันตั้งค่าผ่านทาง ทุกครั้งที่ฉันตั้งค่าตัวจัดการเครือข่ายจะแทนที่ด้วยเกตเวย์เริ่มต้นเมื่อรีบูต
วิธีการตั้งค่ามันถูกต้อง?
ฉันต้องการวิธีอื่นนอกเหนือจากการเปลี่ยนเนมเซิร์ฟเวอร์ในเราเตอร์
/etc/resolv.conf
ฉันไม่สามารถเก็บที่อยู่ชื่อเซิร์ฟเวอร์ฉันตั้งค่าผ่านทาง ทุกครั้งที่ฉันตั้งค่าตัวจัดการเครือข่ายจะแทนที่ด้วยเกตเวย์เริ่มต้นเมื่อรีบูต
วิธีการตั้งค่ามันถูกต้อง?
ฉันต้องการวิธีอื่นนอกเหนือจากการเปลี่ยนเนมเซิร์ฟเวอร์ในเราเตอร์
คำตอบ:
มันขึ้นอยู่กับ. โปรดอ่านให้จบ
หากคุณไม่ได้ติดตั้งแพคเกจ resolvconfมันเป็นเรื่องง่าย: หลังจากเปลี่ยนวิธีที่คุณต้องการออกคำสั่ง
sudo chattr +i /etc/resolv.conf
คำสั่งจะเปลี่ยนคุณสมบัติของไฟล์ทำให้immutable
(+ + ตัวเลือก)
อย่างไรก็ตามหากคุณติดตั้งแพคเกจ resolvconf ไว้ไฟล์ /etc/resolv.conf อาจถูกแปลงเป็นลิงก์สัญลักษณ์
# file /etc/resolv.conf
/etc/resolv.conf: symbolic link to `../run/resolvconf/resolv.conf'
ซึ่งเป็นไฟล์บนระบบไฟล์เสมือนสิ่งที่ดีเลิศของรุ่นที่ไม่ถาวร สิ่งที่ตลกคือคุณอาจไม่รู้ว่าคุณได้ติดตั้ง resolvconf ไว้แล้วเพราะระบบปฏิบัติการที่คล้าย Debian เวอร์ชันล่าสุดติดตั้งมาให้ล่วงหน้า คุณสามารถกำหนดได้ว่า distro ของคุณได้ติดตั้งไว้ให้คุณหรือไม่โดยใช้คำสั่ง:
#whereis resolvconf
resolvconf: /sbin/resolvconf /etc/resolvconf /lib/resolvconf /usr/share/man/man8/resolvconf.8.gz
ที่สำคัญที่สุดคือคุณสามารถระบุได้ว่าคุณ/etc/resolv.conf
ถูกแปลงเป็นลิงก์โดยใช้คำสั่ง (ไฟล์ /etc/resolv.conf) ด้านบน ถ้าคำตอบคือASCII text
ใช้chattr
มิฉะนั้น ...
หากคุณใช้ IP แบบคงที่สิ่งที่ง่ายที่สุดคือการเพิ่มบรรทัดต่อไปนี้ (หรือบางสิ่ง)
dns-nameservers 8.8.4.4 8.8.8.8
ไปยัง stanza ที่กำหนดคุณสมบัติของอินเตอร์เฟสแบบสแตติกของคุณใน / etc / network / interfaces
หากคุณอยู่บนแล็ปท็อปที่เชื่อมต่อตลอดเวลากับเครือข่ายที่แตกต่างกันคุณอาจปฏิบัติตามLawrenceC
คำแนะนำที่ยอดเยี่ยม แต่ถ้าคุณมีresolvconfในระบบของคุณที่ถูกต้อง (และง่าย) วิธีที่จะให้สำหรับการตั้งค่าคงที่ของ DNSs คือการใช้ไฟล์ใน/etc/resolvconf/resolv.conf.d โดยเฉพาะอย่างยิ่งไฟล์ต่อไปนี้จะถูกใช้ (ดูหน้าStephane Graber's ):
base : ใช้เมื่อไม่พบข้อมูลอื่น
ส่วนหัว : ใช้สำหรับส่วนหัวของ resolv.conf สามารถใช้เพื่อให้แน่ใจว่าเซิร์ฟเวอร์ DNS เป็นรายการแรกเสมอในรายการ
tail : รายการใด ๆ ในส่วนท้ายจะถูกต่อท้ายท้าย resolv.conf ผลลัพธ์
ดังนั้นให้คุณตั้งชื่อเซิร์ฟเวอร์ที่คุณชื่นชอบไว้ในหัวดังนี้
nameserver 8.8.8.8
และคุณทำเสร็จแล้ว
LawrenceC
ด้านล่าง
/etc/resolvconf/
ไม่มีอยู่ตามค่าเริ่มต้นบน Ubuntu 18.04
เพิ่มบรรทัดที่คล้ายกันเพื่อ/etc/dhcp/dhclient.conf
ใช้รูทเทอร์มินัล:
supersede domain-name-servers 74.122.198.48, 50.116.23.211;
นี่เป็นสาเหตุdhclient
โปรแกรมที่ออกคำร้องขอ DHCP และทำการเปลี่ยนแปลงตามสิ่งที่การตอบสนองบอกเพื่อแทนที่ข้อมูลที่ได้รับจากเซิร์ฟเวอร์ DHCP ด้วยข้อมูลข้างต้นก่อนทำการเปลี่ยนแปลง
ด้านบนเป็นเซิร์ฟเวอร์ OpenNIC DNS สองตัว แทนที่ตามที่จำเป็นสำหรับเซิร์ฟเวอร์ที่คุณต้องการใช้
เนื่องจากสิ่งนี้เกิดขึ้นเมื่อใดก็ตามที่คุณได้รับข้อมูลการกำหนดค่าจาก DHCP ดังนั้นให้ใช้dhclient -v eth0
หรืออินเทอร์เฟซอะไรก็ตามเพื่อรีเฟรชและดูการเปลี่ยนแปลง
prepend domain-name-servers 8.8.8.8
ได้ สิ่งนี้จะใช้ DNS ของ ISP เมื่อพร้อมใช้งาน
ปรากฏตามที่ระบุไว้โดย @Rik ว่าสาเหตุของการเปลี่ยน DNS ในการรีบูตนั้นเกิดจากผู้จัดการเครือข่าย / ยูทิลิตี้ที่ตั้งค่าไว้ ใน Linux Mint ตามภาพหน้าจอฉันได้ตั้งค่าวิธี IPv4 เป็นที่อยู่ Automatic (DHCP) เท่านั้น จากนั้นคุณสามารถป้อนการตั้งค่าที่ถูกต้องใน /etc/resolv.conf หรือที่ส่วนเซิร์ฟเวอร์ DNS ฉันจำได้ใน Ubuntu 13.04 เซิร์ฟเวอร์ชื่อของฉันเปลี่ยนไปสองสามครั้งในช่วงระยะเวลานาน แต่หลังจากที่ฉันไปและแก้ไขพวกเขาใน GUI จริง ๆ แล้วทุกคนดูเหมือนจะมีเสถียรภาพจากที่นั่นไปข้างหน้า
มีปัญหาเดียวกัน แต่ฉันใช้ที่อยู่ IP แบบคงที่ การแก้ไขเป็นเพียงการเพิ่ม dns ใน / etc / network / interfaces
iface eth0 inet static
address [your ip>
netmask [your netmask]
network [your network]
broadcast [your broadcast]
gateway [your gateway]
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers [dns server1] [dns server2]
dns-search [your domain]
/etc/network/interfaces
ละเว้นอินเตอร์เฟซที่ระบุไว้ใน จับดี!
หากคุณใช้ wicd ให้คลิกขวาที่ไอคอนและคลิกข้อมูลการเชื่อมต่อ เมื่อหน้าต่างเปิดขึ้นให้คลิกคุณสมบัติของหน้าต่างที่คุณเชื่อมต่ออยู่
ตรวจสอบการใช้ DNS แบบคงที่และในบรรทัดที่ระบุว่าเซิร์ฟเวอร์ DNS 1 พิมพ์ใน IP สำหรับ Google DNS 8.8.8.8
และในบรรทัดสำหรับเซิร์ฟเวอร์ DNS 2 ประเภท8.8.4.4
จากนั้นคลิก "ตกลง"
หากคุณได้รับข้อผิดพลาดจากค่าเริ่มต้นคุณสามารถติดต่อ ISP ของคุณและแจ้งให้พวกเขาทราบ พวกเขามักจะกำหนดเซิร์ฟเวอร์ DNS ให้กับโมเด็มของคุณเมื่อคุณเชื่อมต่อกับพวกเขา
การแฮ็กในแบบที่คุณคุ้นเคยchattr +i
หรือใกล้เคียงนั้นเป็นวิธีการทำงานที่รวดเร็วและควรหลีกเลี่ยงเมื่อเป็นไปได้ (อย่างน้อยก็ในระยะยาว - อย่างที่กล่าวมามันเป็นงานระยะสั้นจนกว่าจะหาเวลาแก้ปัญหาจริง) . ตามที่ระบุไว้แล้วนี่เป็นงานสำหรับ NetworkManager ซึ่งเสนอ CLI ที่เราสามารถใช้สำหรับ:
# ค้นหาอินเทอร์เฟซที่จะปรับ อุปกรณ์ nmcli # เอาต์พุตดูเหมือนว่า: # การเชื่อมต่ออุปกรณ์ประเภทสถานะ # enp0s3 ethernet เชื่อมต่อสำนักงานของฉัน # lo loopback ไม่มีการจัดการ - # จากนั้นเราต้องการการเชื่อมต่อ # ตอนนี้เพิ่ม "โดเมนการค้นหา" ของเรา: การเชื่อมต่อ nmcli แก้ไข my-office ipv4.dns-search example1.com nmcli แก้ไข mod my-office + ipv4.dns-search example2.com # และเซิร์ฟเวอร์ชื่อของเรา: nmcli แก้ไข my-office ipv4.dns 213.73.91.35 nmcli มีการแก้ไข my-office + ipv4.dns 87.118.100.175 # note "+" ในบรรทัดที่สอง: เพิ่มอันใหม่ # ในขณะที่บรรทัดแรกเขียนทับรายการที่มีอยู่ # เราสามารถทำได้ด้วยการโทรเพียงครั้งเดียว: nmcli แก้ไข my-office ipv4.dns "213.73.91.35 87.118.100.175" # ตกลงดังนั้นตอนนี้เราจะบอกให้ละเว้นการอัปเดตจากเซิร์ฟเวอร์ DHCP: nmcli แก้ไข my-office ipv4.ignore-auto-dns ใช่ # และใช้การปรับเปลี่ยนกับการกำหนดค่าการทำงานของเรา nmcli ร่วมสำนักงานของฉัน
หากคุณใช้ที่อยู่ IP แบบคงที่คุณยังสามารถใช้วิธีการแก้ปัญหาจากคำตอบ kanelbolle's
ที่น่าตื่นตาตื่นใจวิธีกำจัดปัญหาเล็ก ๆ น้อย ๆ นี้จะได้รับเมื่อการแก้ปัญหาที่ได้รับสำหรับการทำงานไม่ได้อยู่บน Ubunutu 18.04
สิ่งที่ใช้ได้ผลสำหรับฉันคือการเขียนทับnameserver
ค่าใน/etc/resolv.conf
ทุก ๆ การบู๊ต sudo
แก้ไข/etc/rc.local
และเพิ่มบรรทัดนี้:
sed -i "s/nameserver 127.0.0.53/nameserver 8.8.8.8/" /etc/resolv.confsudo /etc/rc.local
NetworkManager
(เช่นที่ระบุไว้ในบรรทัดแรก)NetworkManager
ไฟล์นี้เป็นอีกครั้งที่สร้างขึ้นในการบูตโดยทุก มันขึ้นอยู่กับคุณลินุกซ์ distro (ซึ่งคุณไม่ได้พูดถึง)NetworkManager
วิธีการเข้าถึงนี้