Bind9 ubuntu ตั้งค่าโซนภายในและภายนอก การสร้างโซนการค้นหาไปข้างหน้าและย้อนกลับ การตั้งค่าการเชื่อมต่อ PPPoE

ในบทความนี้ เราจะดูหนึ่งในตัวเลือกสำหรับการปรับใช้เซิร์ฟเวอร์ DNS สำหรับเครือข่ายท้องถิ่นที่ใช้ Ubuntu (ฉันมี 14.04.3 LTS) และ bind9 สำหรับการแจกแจงแบบอื่นส่วนใหญ่จะมีความแตกต่างเพียงเล็กน้อย สำหรับการแจกแจงแบบ Debian จะไม่มีเลย หากคุณได้อ่านบทความก่อนหน้าเกี่ยวกับการตั้งค่าเซิร์ฟเวอร์ DHCP แล้ว คุณจะรู้ว่าในตอนแรกฉันได้ติดตั้ง dnsmasq ซึ่งการแจกจ่ายไม่รองรับซึ่งตัดสินใจเปลี่ยน ตั้งแต่ครั้งสุดท้ายที่ฉันลบ dnsmasq (และเป็นทั้ง DHCP และเซิร์ฟเวอร์ DNS ซึ่งไม่ได้รับการกำหนดค่าอย่างเหมาะสมและใช้งานไม่ได้) จำเป็นต้องมี DNS ซึ่งฉันตัดสินใจทำในเวลาว่าง . การตั้งค่า DNS ใช้เวลานานกว่าเล็กน้อย แต่เนื่องจากมีไฟล์การกำหนดค่ามากกว่าเท่านั้น

เอาล่ะ มาเริ่มกันเลย ก่อนอื่น มาอัพเดตระบบกันก่อน (อัพเดตแพ็คเกจ):

sudo apt-get อัปเดต && sudo apt-get อัปเกรด -y

ตอนนี้มาติดตั้งเซิร์ฟเวอร์ DNS ของ bind9:

sudo apt-get ติดตั้ง bind9

ตอนนี้คุณสามารถสร้างคีย์เพื่อให้ daemons อื่นสามารถอัปเดตบันทึก DNS ของเซิร์ฟเวอร์นี้ได้ สิ่งเหล่านี้อาจเป็นเซิร์ฟเวอร์อื่นบนเครือข่ายหรือบริการอื่นของเซิร์ฟเวอร์เดียวกัน สำหรับฉัน นี่จะเป็นเซิร์ฟเวอร์ DHCP ที่ติดตั้งในเครื่อง ตามทฤษฎีแล้ว เพื่อความปลอดภัย แต่ละบริการหรือเซิร์ฟเวอร์จำเป็นต้องสร้างคีย์ของตัวเอง ดังนั้นหากหนึ่งในนั้นถูกโจมตี ก็สามารถบล็อกได้ และที่เหลือจะยังคงทำงานต่อไป แต่ในกรณีของฉัน เฉพาะเซิร์ฟเวอร์ DHCP ของฉันเท่านั้นที่จะอัปเดตบันทึก ดังนั้นฉันจึงสร้างคีย์เดียวเท่านั้น:

dnssec-keygen -a HMAC-MD5 -b 128 -r /dev/urandom -n ผู้ใช้ DHCP_UPDATER

ในโฮมไดเร็กตอรี่ของผู้ใช้ที่เรียกใช้คำสั่ง 2 ไฟล์จะปรากฏขึ้น:

Rw------- ผู้ใช้ 1 ราย ม.ค. 54 21 12:17 Kdhcp_updater.+157+55379.คีย์
-rw------- ผู้ใช้ 1 คน ม.ค. 165 21 12:17 Kdhcp_updater.+157+55379.private

ปล่อยให้ไฟล์ยังคงเป็นแบบนี้ไฟล์จะไม่สูญหาย หากต้องการดูคีย์ที่ต้องการ ให้รัน:

หาง Kdhcp_updater*.private

คุณจะเห็นเนื้อหาเช่นนี้ โดยที่ค่า "คีย์" เป็นคีย์ที่จำเป็น:

ขั้นแรก มาทำให้เซิร์ฟเวอร์ DNS ของเราเป็นเนมเซิร์ฟเวอร์สำหรับแคช นั่นคือ เราจะบังคับให้แก้ไขชื่อโดเมนโดยการร้องขอจากเซิร์ฟเวอร์ต้นทาง ครั้งแรกที่ไคลเอนต์ร้องขอชื่อโดเมน เซิร์ฟเวอร์จะส่งต่อคำขอไปยังเซิร์ฟเวอร์ต้นทางแล้วส่งคืนจากแคช ซึ่งจะเพิ่มความเร็วเล็กน้อยในการประมวลผลการสืบค้น DNS สำหรับลูกค้าบนเครือข่ายของเรา นอกจากนี้เรายังจะระบุไปยังเซิร์ฟเวอร์ซึ่งที่อยู่ DNS ของเราจะให้บริการลูกค้าด้วย เมื่อต้องการทำเช่นนี้ คุณต้องแก้ไขไฟล์ /etc/bind/named.conf.options:

sudo cp /etc/bind/named.conf.options /etc/bind/named.conf.options.dist && sudo นาโน /etc/bind/named.conf.options

มาเพิ่มบรรทัดต่อไปนี้ที่นั่น:

ผู้ส่งต่อ (
212.120.160.130;
8.8.8.8;
};
ฟังบน (
127.0.0.1;
192.168.0.231;
};

พิจารณาส่วนเหล่านี้:

  • ผู้ส่งต่อ - ที่นี่เราระบุเซิร์ฟเวอร์ชื่อระดับที่สูงกว่า ไม่จำกัดจำนวน หากคำขอใดคำขอหนึ่งไม่ว่าง คำขอจะถูกส่งต่อไปยังคำขอถัดไปในรายการ ฉันระบุ DNS ของ ISP และ Google Public DNS แล้ว
  • lisnen-on - ที่อยู่ของอินเทอร์เฟซภายในที่เซิร์ฟเวอร์จะยอมรับคำขอ DNS จากไคลเอนต์

ในนาโนจะมีลักษณะดังนี้:

บันทึกการกำหนดค่า ตอนนี้คุณสามารถเริ่มบริการ DNS ใหม่ได้:

บริการ sudo bind9 รีสตาร์ท

ตอนนี้เซิร์ฟเวอร์ของเราทำงานเป็นแคช DNS ซึ่งช่วยให้เราสามารถระบุเป็นเซิร์ฟเวอร์ DNS ให้กับลูกค้าในเครือข่ายของเราได้แล้ว มาตรวจสอบการทำงานของมันกันดีกว่า คอมพิวเตอร์ทุกเครื่องบนเครือข่ายหรือเซิร์ฟเวอร์จะทำสิ่งนี้ ฉันจะแสดงให้คุณเห็นโดยใช้เวิร์กสเตชันที่มี Windows 7 เป็นตัวอย่าง กด Win+R เขียน cmd ในหน้าต่างที่ปรากฏขึ้น และเชลล์คำสั่ง Windows จะเริ่มทำงาน เราเขียนสิ่งต่อไปนี้ที่นั่น:

nslookup - 192.168.0.231

โดยปกติแล้ว คุณเขียน IP ของเซิร์ฟเวอร์ของคุณ ยูทิลิตี้การวินิจฉัย DNS ของคอนโซลสำหรับ Windows - nslookup - จะเริ่มทำงานและไม่ใช่ DNS ของระบบ แต่อันที่ระบุในพารามิเตอร์จะถูกใช้เป็นเซิร์ฟเวอร์ DNS Nslookup นั้นดีเพราะมันส่งคำขอไปยังเซิร์ฟเวอร์ที่ต้องการโดยข้ามแคช Windows DNS ก่อนอื่น เรามาตรวจสอบการทำงานของการสืบค้น DNS โดยตรงกัน:

จากนั้นประสิทธิภาพของคำขอย้อนกลับ:

ใน cmd.exe มีลักษณะดังนี้:

หากทุกอย่างเหมือนกันสำหรับคุณ แสดงว่า DNS ของคุณทำงานได้อย่างสมบูรณ์แบบในฐานะเซิร์ฟเวอร์แคช ในกรณีของ google.ru เรายังเห็นได้ว่าเซิร์ฟเวอร์ของเราสามารถอนุญาต IPv6 ได้

ตอนนี้เราต้องบอกให้เซิร์ฟเวอร์ของเราใช้ตัวเองเป็น DNS มันจะทำสิ่งนี้ผ่านอินเทอร์เฟซแบบวนกลับ ในการดำเนินการนี้ เราจำเป็นต้องเปลี่ยนไฟล์ /etc/resolv.conf แต่การเปลี่ยนแปลงด้วยตนเองไม่มีประโยชน์ เนื่องจากผู้จัดการเครือข่ายจะแก้ไขหลังจากรีบูตเครื่อง ดังนั้นเราจะแก้ไข /etc/network/interfaces:

sudo nano /etc/network/interfaces

เราพบส่วนที่มีอินเทอร์เฟซเครือข่ายท้องถิ่น (สำหรับฉันมันคือ eth0) และเพิ่มหรือเปลี่ยนแปลงบรรทัดต่อไปนี้:

DNS-เนมเซิร์ฟเวอร์ 127.0.0.1
ค้นหา DNS ordaupfin.local

*แทนที่จะเป็น ordaupfin.local คุณระบุโดเมนหรือเวิร์กกรุ๊ปของคุณ

มันควรมีลักษณะคล้ายกับของฉัน:

ตอนนี้ หากคุณอยู่ด้านหลังคอนโซลเซิร์ฟเวอร์โดยตรง เพียงรีสตาร์ทบริการเครือข่ายด้วยคำสั่ง:

รีสตาร์ทเครือข่ายบริการ sudo

และหากคุณเชื่อมต่อกับเซิร์ฟเวอร์ผ่าน SSH (เช่นฉัน) เซสชันที่ใช้งานอยู่จะไม่อนุญาตให้รีสตาร์ทบริการ ดังนั้นเซิร์ฟเวอร์จะต้องรีบูต:

ตอนนี้คุณสามารถตรวจสอบว่าเซิร์ฟเวอร์ส่งคำขอ DNS ถึงตัวเองจริง ๆ หรือไม่โดยเขียนลงในเทอร์มินัล:

หากบรรทัดสุดท้ายระบุว่า SERVER: 127.0.0.1 แสดงว่าทุกอย่างได้รับการกำหนดค่าอย่างถูกต้อง นี่คือลักษณะของท่อไอเสียที่ขุดบน google.ru:

หากคุณเรียกใช้ dig google.ru อีกครั้ง คุณจะเห็นว่าเวลาในการดำเนินการค้นหาลดลงอย่างมาก เนื่องจากเซิร์ฟเวอร์จะนำคำขอที่ตามมาทั้งหมดสำหรับโดเมนเดียวกันจากแคช โดยไม่ส่งต่อคำขอไปยังเซิร์ฟเวอร์ระดับที่สูงกว่า

เซิร์ฟเวอร์ DNS ของเราทำงานได้ดีในการแก้ปัญหาชื่อบนที่อยู่ภายนอก แต่ไม่รู้อะไรเลยเกี่ยวกับไคลเอนต์ในเครือข่ายท้องถิ่นเลย เพื่อให้สามารถแก้ไขชื่อของเครื่องและอุปกรณ์ภายในเครื่องได้ คุณต้องกำหนดค่าให้เป็นอุปกรณ์หลักสำหรับเครือข่ายของคุณ นอกจากนี้ยังจำเป็นสำหรับการทำงานของเครือข่ายอย่างเต็มรูปแบบ

สร้างโซนการมองไปข้างหน้า เซิร์ฟเวอร์มีไฟล์การตั้งค่ามาตรฐานอยู่แล้ว ดังนั้นคุณเพียงแค่ต้องคัดลอกไฟล์เหล่านั้นไปยังไดเร็กทอรีการทำงานและแก้ไขให้เหมาะกับคุณ ฉันใช้ข้อมูลของฉัน แน่นอนว่าคุณต้องทดแทนข้อมูลของคุณ คัดลอกไฟล์การกำหนดค่าโซนมุมมองไปข้างหน้าและเปิดเพื่อแก้ไข:

sudo cp /etc/bind/db.local /var/lib/bind/db.ordaupfin.local && sudo นาโน /var/lib/bind/db.ordaupfin.local

มาสู่แบบฟอร์มนี้กัน (อย่าลืมระบุข้อมูลของคุณแทนต้นฉบับ):

- ไฟล์ข้อมูล BIND สำหรับอินเทอร์เฟซลูปแบ็คในเครื่อง
;
$TTL 604800
20150122; อนุกรม
604800 ; รีเฟรช
86400 ; ลองอีกครั้ง
2419200; หมดอายุ
;
@ ใน NS ubunturoute.ordaupfin.local
@ ที่ 192.168.0.231
@ ใน AAAA::1
ubunturute ใน 192.168.0.231

ตอนนี้เราสร้างและแก้ไขไฟล์โซนการค้นหาแบบย้อนกลับในลักษณะเดียวกัน:

sudo cp /etc/bind/db.127 /var/lib/bind/db.192 && sudo nano /var/lib/bind/db.192

และเรานำมาสู่รูปแบบต่อไปนี้:

- BIND ไฟล์ข้อมูลย้อนกลับสำหรับอินเทอร์เฟซลูปแบ็คในเครื่อง
;
$TTL 604800
@ ใน SOA ubunturoute.ordaupfin.local. root.ubunturoute.ordaupfin.local -
20150122; อนุกรม
604800 ; รีเฟรช
86400 ; ลองอีกครั้ง
2419200; หมดอายุ
604800); TTL แคชเชิงลบ
;
@ ใน NS อูบุนตูรูต
231 ใน PTR ubunturute.ordaupfin.local

โปรดทราบว่า "231" ที่ขึ้นต้นบรรทัดสุดท้ายคือส่วนสุดท้ายในที่อยู่ IP ของเซิร์ฟเวอร์ของฉัน ในกรณีของคุณ ส่วนใหญ่จะแตกต่างออกไป

ตอนนี้โซนเหล่านี้จำเป็นต้องลงทะเบียนในการกำหนดค่าเซิร์ฟเวอร์หลัก เพื่อว่าในครั้งถัดไปที่เริ่มต้นโซนจะได้รู้เกี่ยวกับการมีอยู่ของมัน เมื่อต้องการทำเช่นนี้ ให้เปิด /etc/bind/named.conf.local เพื่อแก้ไข

sudo cp /etc/bind/named.conf.local /etc/bind/named.conf.local.dist && sudo นาโน /etc/bind/named.conf.local

และเพิ่มเนื้อหาต่อไปนี้ที่นั่น:

คีย์ DHCP_UPDATER (
อัลกอริทึม HMAC-MD5.SIG-ALG.REG.INT;
ความลับ "s5Efp/-/-/-/wQtvg9rR7Q==";
};

โซน "ordaupfin.local" (
ประเภทต้นแบบ;
ไฟล์ "/var/lib/bind/db.ordaupfin.local";
};

โซน "0.168.192.in-addr.arpa" (
ประเภทต้นแบบ;
ไฟล์ "/var/lib/bind/db.192";
อนุญาตให้อัปเดต (คีย์ DHCP_UPDATER;);
};

  • คีย์ DHCP_UPDATER - ข้อมูลสำหรับการอัพเดตบันทึก ที่นี่คุณป้อนรหัสที่สร้างไว้ก่อนหน้านี้
  • โซน "ordaupfin.local" - โซนการดูโดยตรง
  • โซน "0.168.192.in-addr.arpa" - โซนการค้นหาแบบย้อนกลับ

มันจะมีลักษณะดังนี้:

บันทึกและรีสตาร์ทเซิร์ฟเวอร์:

บริการ sudo bind9 รีสตาร์ท

ตรวจสอบการทำงานของเซิร์ฟเวอร์:

nslookup ubunturute.ordaupfin.local

ผลลัพธ์ควรเป็นเช่นนี้:

เซิร์ฟเวอร์: 127.0.0.1
ที่อยู่: 127.0.0.1#53

ชื่อ: ubunturute.ordaupfin.local
ที่อยู่: 192.168.0.231

เราตรวจสอบการทำงานของโซนการค้นหาแบบย้อนกลับในลักษณะเดียวกัน:

nslookup 192.168.0.231

และเราได้รับ:

เซิร์ฟเวอร์: 127.0.0.1
ที่อยู่: 127.0.0.1#53

231.0.168.192.in-addr.arpa ชื่อ = ubunturoute.ordaupfin.local

หากทุกอย่างถูกต้องสำหรับคุณ งานก็เกือบจะเสร็จแล้ว เกือบแล้ว เพราะตอนนี้เราต้องการเซิร์ฟเวอร์ DHCP ของเราเพื่อให้สามารถอัปเดตบันทึก DNS เมื่อมีไคลเอนต์ใหม่ปรากฏขึ้น ฉันจะดูการตั้งค่าโดยใช้ตัวอย่างของ isc-dhcp-server ที่ติดตั้งกับฉัน แก้ไข /etc/dhcp/dhcpd.conf:

sudo นาโน /etc/dhcp/dhcpd.conf

และวางเนื้อหาต่อไปนี้ที่นั่น:

ddns-update-style ชั่วคราว;
อัปเดตสัญญาเช่าแบบคงที่;
คีย์ DHCP_UPDATER (
อัลกอริทึม hmac-md5;
ความลับ "s5EfpF53BBE9/-/tvg9rR7Q==";
) โซน ordaupfin.local -
หลัก 127.0.0.1;
คีย์ DHCP_UPDATER;
) โซน 0.168.192.in-addr.arpa -
หลัก 127.0.0.1;
คีย์ DHCP_UPDATER;
}

แน่นอนว่าคุณต้องทดแทนค่าของคุณ หลังจากนี้เราจะรีสตาร์ทเซิร์ฟเวอร์ DNS และ DHCP หากเซิร์ฟเวอร์เริ่มทำงานโดยไม่มีข้อผิดพลาด ทุกอย่างก็โอเค หากเซิร์ฟเวอร์ไม่เริ่มทำงาน โปรดดูการกำหนดค่าอย่างละเอียด นอกจากนี้ syslog จะช่วยคุณได้มากในการวินิจฉัยข้อผิดพลาด:

หาง -f /var/log/syslog

ขอขอบคุณสำหรับความสนใจของคุณ!

ข้อเสนอแนะและการอภิปรายของบทความนี้ดำเนินการในความคิดเห็น

วันนี้เราจะพูดถึงการตั้งค่าเซิร์ฟเวอร์ DNS ที่ได้รับความนิยมมากที่สุด ผูก9- ทำตามคำแนะนำแล้วคุณจะประสบความสำเร็จ ไม่มีอะไรซับซ้อนเกี่ยวกับเรื่องนี้ ในตัวอย่างนี้ คุณจะเห็นวิธีการสร้างไฟล์โซนและทำตามขั้นตอนการกำหนดค่าง่ายๆ โดยไม่ต้องลงรายละเอียด นี่เป็นเพียงเรื่องเล็ก ๆ วิธีออกแบบมาเพื่อช่วยให้คุณเข้าใจวิธีการทำงานของเซิร์ฟเวอร์ DNS หากคุณกำลังตั้งค่าเซิร์ฟเวอร์ DNS บนเกตเวย์ในส่วนของเครือข่ายท้องถิ่นของคุณ ในตอนท้ายของบทความคุณจะเห็นวิธีสร้างเซิร์ฟเวอร์ DNS ของคุณ เก็บเอาไว้ซึ่งจะช่วยลดเวลาของการร้องขอซ้ำไปยังเซิร์ฟเวอร์ NS ได้อย่างมาก เนื่องจากที่อยู่ที่เยี่ยมชมจะถูกนำมาจากแคชในเครื่องของคุณ เอาล่ะ มาเริ่มกันเลย

หากคุณยังไม่ได้ติดตั้ง bind9 ให้ทำดังนี้:

มาแก้ไขไฟล์ /etc/init.d/sysklogd ซึ่งควรมีลักษณะดังนี้:

ตอนนี้เรามาสร้างไฟล์โซนของเราโดยตรง เว็บไซต์ในโฟลเดอร์เดียวกัน /etc/bind:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

ไซต์ $ORIGIN
$TTL 86400 ; 1 วัน
@ ในไซต์ SOA root.site. -
2008082859 ; อนุกรม
14400 ; รีเฟรช (4 ชั่วโมง)
3600 ; ลองอีกครั้ง (1 ชั่วโมง)
2592000; หมดอายุ (4w2d)
600 ; ขั้นต่ำ (10 นาที)
NS ns1.ไซต์
NS ns2.bla-bla-bla.com
เว็บไซต์. 192.168.0.1
*.เว็บไซต์. CNAME@
เว็บไซต์. MX 10 mail.site
เมล.ไซต์ 192.168.0.1
ns1 A 192.168.0.1

โดยที่ 192.168.0.1 คือ IP ของเซิร์ฟเวอร์ของคุณ เราจำเป็นต้องมีระเบียน MX หากคุณใช้งานเซิร์ฟเวอร์อีเมลบนเซิร์ฟเวอร์ของคุณ ns1.ไซต์— เซิร์ฟเวอร์ DNS ของเรา เนื่องจากจำเป็นต้องมีการทำงานของเซิร์ฟเวอร์ DNS นอกเหนือจากนี้ ผู้เชี่ยวชาญเซิร์ฟเวอร์ ns และ ทาสเราลงทะเบียนมัน - ns2.bla-bla-bla.com- โดยปกติแล้ว คุณจะต้องมี IP ดังกล่าวบนเซิร์ฟเวอร์ของบริษัทอื่น หรือหากคุณมี IP เฉพาะสำหรับเซิร์ฟเวอร์ของคุณด้วย งานก็จะง่ายขึ้น สำหรับเซิร์ฟเวอร์ที่อยู่บนเครือข่ายท้องถิ่นและออกชื่อให้กับเครือข่ายท้องถิ่นเท่านั้น (เช่น คุณมีเว็บเซิร์ฟเวอร์ที่ติดตั้งซึ่งให้บริการเครือข่ายของคุณและโฮสต์เสมือนได้รับการกำหนดค่า) คุณเพียงแค่ต้องลงทะเบียน ns1 เช่น ที่อยู่เซิร์ฟเวอร์ DNS ของคุณ 2008082859 - เปลี่ยนเป็นวันที่ปัจจุบัน

ตั้งค่าสิทธิ์ที่จำเป็นสำหรับไฟล์โซน เว็บไซต์:

ผูก chown:bind /etc/bind/site

มาแก้ไขไฟล์การกำหนดค่าการผูก /etc/bind/named.conf เพื่อรวมการกำหนดค่าสำหรับโซนของเราและเพิ่มที่ส่วนท้ายของไฟล์:

เรามาอัพเดตการกำหนดค่าการผูกด้วยคำสั่ง:

หากคุณมีเซิร์ฟเวอร์ DNS ติดตั้งอยู่บนเกตเวย์บนเครือข่ายท้องถิ่นของคุณ มาสร้างแคชกันดีกว่า เปิดไฟล์ /etc/bind/named.conf.options และยกเลิกการใส่เครื่องหมายข้อคิดเห็นในบรรทัดต่อไปนี้:

ผู้ส่งต่อ (
...
};

มาเพิ่มที่อยู่ IP ของเซิร์ฟเวอร์ DNS ที่เซิร์ฟเวอร์ของเราจะเข้าถึง ด้วยความน่าจะเป็นไปได้สูง ผู้ให้บริการของคุณมีเซิร์ฟเวอร์ DNS ของตัวเอง เราจะระบุพวกเขาก่อน จึงช่วยประหยัดการรับส่งข้อมูล:

เมื่อตั้งค่าบนเซิร์ฟเวอร์ทาส myzones.confจะมีลักษณะเช่นนี้:

เพียงเท่านี้การตั้งค่าก็เสร็จสมบูรณ์ ;) ขอให้โชคดี!

ระบบใช้เซิร์ฟเวอร์ DNS เพื่อแปลงที่อยู่ IP ที่จำยากให้เป็นชื่อโดเมนแบบง่าย ที่ทำสิ่งนี้เพราะว่าผู้คนพบว่าการจำตัวเลขที่ไม่เกี่ยวข้องหลายๆ ตัวเป็นเรื่องยาก แต่การจำคำศัพท์นั้นง่ายมาก

เมื่อคอมพิวเตอร์จำเป็นต้องค้นหาที่อยู่ IP ของโดเมน คอมพิวเตอร์จะส่งคำขอไปยังเซิร์ฟเวอร์ DNS ที่คอมพิวเตอร์รู้จัก สามารถรับเซิร์ฟเวอร์เหล่านี้ได้โดยอัตโนมัติจากเราเตอร์ผ่าน DHCP หรือตั้งค่าด้วยตนเอง ในบทความนี้เราจะดูวิธีกำหนดค่า DNS บน Ubuntu 16.04 และเวอร์ชันที่เก่ากว่า

ก่อนหน้านี้ หากต้องการกำหนดค่าเซิร์ฟเวอร์ DNS ที่จะใช้โดยระบบ การป้อนที่อยู่ของเซิร์ฟเวอร์ที่จำเป็นลงในไฟล์ /etc/resolv.conf ก็เพียงพอแล้ว แต่ตอนนี้การกำหนดค่าเครือข่ายทั้งหมดใน Ubuntu ได้รับการจัดการโดย NetworkManager และตอนนี้ไฟล์นี้เป็นเพียงลิงก์ไปยังไฟล์ NetworkManager

วิธีนี้ยังใช้งานได้ แต่ด้วยวิธีนี้ คุณสามารถกำหนดค่า DNS บน LiveCD หรือก่อนที่จะรีบูตเครื่องได้ หลังจากรีบูต การตั้งค่าทั้งหมดจะหายไป และคุณจะต้องทำทุกอย่างอีกครั้ง ดังนั้นเพื่อที่จะบันทึกทุกอย่างคุณต้องดำเนินการทั้งหมดผ่านอินเทอร์เฟซ NetworkManager ขั้นแรก เปิดเมนูบริบทสำหรับไอคอนเครือข่ายในแผงควบคุมแล้วเลือก "เปลี่ยนการเชื่อมต่อ":

เลือกการเชื่อมต่อของคุณแล้วคลิก "เปลี่ยน":

ในหน้าต่างที่เปิดขึ้น ให้ไปที่แท็บ "การตั้งค่า IPv4":

แล้วในสนาม. “วิธีการตั้งค่า”เลือก "อัตโนมัติ (DHCP ที่อยู่เท่านั้น)":

ตอนนี้ฟิลด์จะปรากฏต่ำลงเล็กน้อย "เซิร์ฟเวอร์ DNS"ซึ่งคุณต้องลงทะเบียนเซิร์ฟเวอร์ที่จำเป็น คุณสามารถใช้ที่อยู่หลายแห่งโดยคั่นด้วยเครื่องหมายจุลภาค ตัวอย่างเช่น คุณสามารถระบุเซิร์ฟเวอร์จาก Google ได้:

ที่จริงแล้วนั่นคือทั้งหมด แต่มีวิธีอื่นในการกำหนดค่าผ่านคอนโซลหากไม่ได้ผลหรือคุณต้องการทำงานจากคอนโซล

การตั้งค่า DNS ผ่านเทอร์มินัล Ubuntu

Ubuntu มีอินเทอร์เฟซการกำหนดค่าเครือข่ายแบบรวม ซึ่งกำหนดค่าผ่านไฟล์กำหนดค่า /etc/network/interfaces ขั้นแรก ให้ดูรายการอินเทอร์เฟซเครือข่าย:

ls /sys/คลาส/สุทธิ/

เปิดไฟล์เพื่อแก้ไขและค้นหาชื่ออินเทอร์เฟซเครือข่ายของคุณเช่น auto enp0s3 หากไม่มีส่วนดังกล่าวคุณจะต้องเพิ่ม:

sudo vi /etc/network/interfaces

enp0s3 อัตโนมัติ
iface enp0s3 inet dhcp

จากนั้นเพิ่มบรรทัดต่อไปนี้ในส่วนนี้:

DNS-เนมเซิร์ฟเวอร์ 8.8.8.8

ที่นี่ที่อยู่ 8.8.8.8 คือที่อยู่ของเซิร์ฟเวอร์ DNS ของคุณ แต่การตั้งค่านี้จะใช้ได้ก็ต่อเมื่อไคลเอนต์ DHCP ของคุณไม่ได้พยายามกำหนดที่อยู่เอง หากต้องการระบุที่อยู่ DNS ที่ระดับเซิร์ฟเวอร์ DHCP คุณต้องเพิ่มบรรทัดต่อไปนี้ในไฟล์การกำหนดค่า /etc/dhcp/dhclient.conf:

sudo vi /etc/dhcp/dhclient.conf

แทนที่โดเมนเนมเซิร์ฟเวอร์ 8.8.8.8

ที่นี่เช่นกัน ที่อยู่ 8.8.8.8 หมายถึงที่อยู่เซิร์ฟเวอร์ DNS เพื่อให้แน่ใจ คุณสามารถเพิ่มที่อยู่เซิร์ฟเวอร์ DNS ของคุณลงในไฟล์ /etc/resolvconf/resolv.conf.d/base:

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

เนมเซิร์ฟเวอร์ 8.8.8.8

เพื่อให้การตั้งค่ามีผล คุณต้องรีสตาร์ทเครือข่าย:

sudo systemctl รีสตาร์ทเครือข่าย

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

อย่างที่คุณเห็นในตัวอย่างของฉันทุกอย่างได้ผล ในทำนองเดียวกัน คุณสามารถกำหนดค่า DNS linux สำหรับการแจกจ่ายใดๆ ได้

ข้อสรุป

ในบทความสั้น ๆ นี้ เราดูวิธีกำหนดค่า DNS ใน Ubuntu 16.04 ผ่านอินเทอร์เฟซแบบกราฟิกหรือเทอร์มินัล ใน Ubuntu ยูทิลิตี้จำนวนมากสามารถจัดการการกำหนดค่า DNS อัตโนมัติได้ และทำให้เกิดปัญหาบางอย่างระหว่างการกำหนดค่า แต่ทุกอย่างสามารถจัดการได้ ฉันหวังว่าข้อมูลนี้จะเป็นประโยชน์กับคุณ

เกี่ยวกับผู้เขียน

ผู้ก่อตั้งและผู้ดูแลไซต์ ฉันหลงใหลเกี่ยวกับซอฟต์แวร์โอเพ่นซอร์สและระบบปฏิบัติการ Linux ปัจจุบันฉันใช้ Ubuntu เป็นระบบปฏิบัติการหลักของฉัน นอกจาก Linux แล้ว ฉันสนใจทุกสิ่งที่เกี่ยวข้องกับเทคโนโลยีสารสนเทศและวิทยาศาสตร์สมัยใหม่

วันนี้เราจะมาต่อบทความเกี่ยวกับการตั้งค่าเซิร์ฟเวอร์และพิจารณาว่าการตั้งค่าเซิร์ฟเวอร์ DNS ใน Ubuntu เป็นอย่างไร เรามีเซิร์ฟเวอร์ที่ใช้ Ubuntu 14.04.1 LTS อยู่แล้ว โดยมีการกำหนดค่าเซิร์ฟเวอร์ DHCP ไว้ วันนี้เราจะเพิ่มบริการ DNS ที่นั่นด้วย

ก่อนอื่น เรามาทำความเข้าใจว่าทำไมเราถึงต้องการมัน DNS คือระบบชื่อโดเมนที่ออกแบบมาเพื่อรับที่อยู่ IP ของคอมพิวเตอร์ตามชื่อ และในทางกลับกัน คือชื่อตามที่อยู่ IP เหล่านั้น. เมื่อรู้ชื่อคอมพิวเตอร์แล้ว คุณไม่จำเป็นต้องจำ IP ของมันเพื่อใช้อ้างอิงในภายหลัง บริการนี้สร้างขึ้นโดยเกี่ยวข้องกับการขยายเครือข่ายและการเกิดขึ้นของที่อยู่ IP จำนวนมากซึ่งแทบจะจำไม่ได้ในครั้งแรก

เนื่องจากผู้อ่านร้องขอจำนวนมาก ฉันจึงตรวจสอบทุกประเด็นอีกครั้งและพบความแตกต่างบางประการเนื่องจากเซิร์ฟเวอร์ทำงานไม่ถูกต้อง (เดิมบทความนี้เขียนขึ้นสำหรับเซิร์ฟเวอร์ Ubuntu 11.04) บทความนี้ได้รับการเขียนใหม่และทดสอบอย่างสมบูรณ์บน Ubuntu Server 14.04.1



มีคำถามหรือไม่?

แจ้งการพิมพ์ผิด

ข้อความที่จะส่งถึงบรรณาธิการของเรา: