เราสร้าง DNS ในเครื่องของเราเอง (PDNSD) พร้อมแบล็คแจ็คและเร็วกว่า Google Public DNS สร้าง DNS ในเครื่องของคุณเอง (PDNSD) ด้วยแบล็คแจ็คและเร็วกว่าผลการทดสอบ DNS สาธารณะของ Google ใน NameBench

💖 ชอบไหม?แชร์ลิงก์กับเพื่อนของคุณ

DNS (Domain Name System) เป็นองค์ประกอบที่สำคัญและค่อนข้างยากในการกำหนดค่าที่จำเป็นสำหรับการทำงานของเว็บไซต์และเซิร์ฟเวอร์ ผู้ใช้จำนวนมากใช้เซิร์ฟเวอร์ DNS ที่ให้บริการโดยผู้ให้บริการโฮสติ้ง แต่การเป็นเจ้าของเซิร์ฟเวอร์ DNS ของคุณเองก็มีข้อดีบางประการ

ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีติดตั้ง Bind9 และกำหนดค่าให้เป็นเซิร์ฟเวอร์ DNS สำหรับแคชหรือการส่งต่อบนเซิร์ฟเวอร์ Ubuntu 14.04

ความต้องการ

  • ทำความเข้าใจเกี่ยวกับประเภทพื้นฐานของเซิร์ฟเวอร์ DNS สามารถดูรายละเอียดเพิ่มเติมได้ที่
  • สองเครื่อง อย่างน้อยหนึ่งเครื่องใช้งาน Ubuntu 14.04 เครื่องแรกจะได้รับการกำหนดค่าเป็นไคลเอนต์ (ที่อยู่ IP 192.0.2.100) และเครื่องที่สองเป็นเซิร์ฟเวอร์ DNS (192.0.2.1)

คุณจะได้เรียนรู้วิธีกำหนดค่าเครื่องไคลเอนต์เพื่อส่งคำสั่งผ่านเซิร์ฟเวอร์ DNS

การแคชเซิร์ฟเวอร์ DNS

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

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

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

การส่งต่อเซิร์ฟเวอร์ DNS

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

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

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

1: ติดตั้ง Bind บนเซิร์ฟเวอร์ DNS

แพ็คเกจ Bind สามารถพบได้อย่างเป็นทางการ ที่เก็บอูบุนตู- อัปเดตดัชนีแพ็กเกจของคุณและติดตั้ง Bind โดยใช้ apt manager คุณต้องติดตั้งการอ้างอิงสองสามรายการด้วย

อัปเดต sudo apt-get
sudo apt-get ติดตั้ง bind9 bind9utils bind9-doc

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

2: การตั้งค่าเซิร์ฟเวอร์ DNS สำหรับแคช

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

ไฟล์คอนฟิกูเรชันการผูกจะถูกเก็บไว้ในไดเร็กทอรี /etc/bind

ไฟล์ส่วนใหญ่ไม่จำเป็นต้องแก้ไข ไฟล์การกำหนดค่าหลักเรียกว่าชื่อ.conf (ชื่อและการเชื่อมโยงเป็นสองชื่อสำหรับแอปพลิเคชันเดียวกัน) ไฟล์นี้อ้างอิงถึงไฟล์ชื่อ.conf.options,named.conf.local และnamed.conf.default-zones

หากต้องการกำหนดค่าเซิร์ฟเวอร์ DNS สำหรับแคช คุณจะต้องแก้ไขชื่อ.conf.options เท่านั้น

sudo nano ชื่อ.conf.options

ไฟล์นี้มีลักษณะเช่นนี้ (ละเว้นความคิดเห็นเพื่อความเรียบง่าย):

ตัวเลือก (
ไดเรกทอรี "/var/cache/bind";
อัตโนมัติตรวจสอบ DNSSEC;

Listen-on-v6 ( ใด ๆ ; );
};

หากต้องการตั้งค่าเซิร์ฟเวอร์แคช คุณต้องสร้างรายการควบคุมการเข้าถึงหรือ ACL

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

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

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

ก่อนบล็อกตัวเลือก ให้เพิ่มบล็อก acl สร้างป้ายกำกับสำหรับกลุ่ม ACL (ในบทช่วยสอนนี้ กลุ่มเรียกว่า goodclients)

ลูกค้าที่ดี (
};
ตัวเลือก (
. . .

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

ลูกค้าที่ดี (
192.0.2.0/24;
โลคัลโฮสต์;
โลคัลเน็ต;
};
ตัวเลือก (
. . .

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

ตัวเลือก (
ไดเรกทอรี "/var/cache/bind";
การเรียกซ้ำใช่

. . .

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

อย่างไรก็ตาม หากไม่ได้ตั้งค่าการอนุญาตการเรียกซ้ำ Bind จะถอยกลับไปที่รายการ Allow-Query-Cache จากนั้นไปที่รายการ Allow-Query และสุดท้ายไปที่ Localnets เริ่มต้นและรายการ Localhost เนื่องจากเราตั้งค่าเซิร์ฟเวอร์แคชเท่านั้น (ไม่มีโซนของตัวเองและไม่ส่งต่อคำค้นหา) รายการคำค้นหาที่อนุญาตจะใช้กับการเรียกซ้ำเสมอเท่านั้น นี่เป็นวิธีทั่วไปที่สุดในการกำหนด ACL

บันทึกและปิดไฟล์

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

บันทึก: หากคุณต้องการใช้ DNS ประเภทนี้เท่านั้น ให้ดำเนินการตรวจสอบการกำหนดค่า เริ่มบริการใหม่ และกำหนดค่าไคลเอนต์ของคุณ

3: การตั้งค่าเซิร์ฟเวอร์ DNS การส่งต่อ

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

บน ในขณะนี้ไฟล์ Name.conf.options มีลักษณะดังนี้:

ลูกค้าที่ดี (
192.0.2.0/24;
โลคัลโฮสต์;
โลคัลเน็ต;
};
ตัวเลือก (
ไดเรกทอรี "/var/cache/bind";
การเรียกซ้ำใช่
อนุญาตแบบสอบถาม (goodclients;);
อัตโนมัติตรวจสอบ DNSSEC;
รับรองความถูกต้อง-nxdomain หมายเลข; # สอดคล้องกับ RFC1035
Listen-on-v6 ( ใด ๆ ; );
};

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

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

ซึ่งทำได้ในบล็อก options() ขั้นแรก คุณต้องสร้างบล็อกการส่งต่อใหม่ในนั้น โดยที่ที่อยู่ IP ของเนมเซิร์ฟเวอร์แบบเรียกซ้ำที่คุณต้องการเปลี่ยนเส้นทางคำขอจะถูกเก็บไว้ ในกรณีนี้ สิ่งเหล่านี้จะเป็นเซิร์ฟเวอร์ Google DNS (8.8.8.8 และ 8.8.4.4):

. . .
ตัวเลือก (
ไดเรกทอรี "/var/cache/bind";
การเรียกซ้ำใช่
อนุญาตแบบสอบถาม (goodclients;);
ผู้ส่งต่อ (

8.8.8.8;

8.8.4.4;

};
. . .

การกำหนดค่าผลลัพธ์จะมีลักษณะดังนี้:

ลูกค้าที่ดี (
192.0.2.0/24;
โลคัลโฮสต์;
โลคัลเน็ต;
};
ตัวเลือก (
ไดเรกทอรี "/var/cache/bind";
การเรียกซ้ำใช่
อนุญาตแบบสอบถาม (goodclients;);
ผู้ส่งต่อ (
8.8.8.8;
8.8.4.4;
};
ไปข้างหน้าเท่านั้น
อัตโนมัติตรวจสอบ DNSSEC;
รับรองความถูกต้อง-nxdomain หมายเลข; # สอดคล้องกับ RFC1035
Listen-on-v6 ( ใด ๆ ; );
};

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

25 มิ.ย. 15:03:29 น. ชื่อแคช: ข้อผิดพลาด (ไล่ล่าเซิร์ฟเวอร์ DS) การแก้ไข "in-addr.arpa/DS/IN": 8.8.8.8#53
25 มิ.ย. 15:03:29 น. ชื่อแคช: ข้อผิดพลาด (ไม่มี DS ที่ถูกต้อง) การแก้ไข "111.111.111.111.in-addr.arpa/PTR/IN": 8.8.4.4#53

เพื่อหลีกเลี่ยงปัญหาดังกล่าว คุณจะต้องเปลี่ยนพารามิเตอร์การตรวจสอบ DNS เป็นใช่ และเปิดใช้งาน DNSSEC อย่างชัดเจน

. . .
ไปข้างหน้าเท่านั้น
dnssec เปิดใช้งานใช่;
การตรวจสอบความถูกต้อง DNS ใช่;
รับรองความถูกต้อง-nxdomain หมายเลข; # สอดคล้องกับ RFC1035
. . .

บันทึกและปิดไฟล์ การตั้งค่าเซิร์ฟเวอร์ DNS การส่งต่อเสร็จสมบูรณ์

4: ตรวจสอบการตั้งค่าและรีสตาร์ท Bind

ตอนนี้คุณต้องแน่ใจว่าการตั้งค่าทำงานตามที่คาดไว้

หากต้องการตรวจสอบไวยากรณ์ของไฟล์คอนฟิกูเรชัน ให้ป้อน:

sudo ชื่อ-checkconf

หากไม่มีข้อผิดพลาดในไฟล์ พรอมต์คำสั่งจะไม่แสดงผลใดๆ

หากคุณได้รับข้อความแสดงข้อผิดพลาด ให้แก้ไขและทดสอบอีกครั้ง

จากนั้นคุณสามารถรีสตาร์ท Bind daemon เพื่ออัพเดตการตั้งค่าได้

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

จากนั้นคุณจะต้องตรวจสอบบันทึกของเซิร์ฟเวอร์ รันคำสั่งบนเซิร์ฟเวอร์:

sudo tail -f /var/log/syslog.php

ตอนนี้ให้เปิดเทอร์มินัลใหม่และเริ่มการตั้งค่าเครื่องไคลเอนต์

5: การตั้งค่าไคลเอ็นต์

เข้าสู่ระบบเครื่องไคลเอนต์ ตรวจสอบว่าไคลเอ็นต์อยู่ในกลุ่ม ACL ของเซิร์ฟเวอร์ DNS ที่กำหนดค่าไว้ มิฉะนั้นเซิร์ฟเวอร์ DNS จะปฏิเสธที่จะให้บริการคำขอจากไคลเอนต์นี้

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

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

เปิดไฟล์ด้วย sudo ในโปรแกรมแก้ไขข้อความ:

sudo นาโน /etc/resolv.conf

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

เนมเซิร์ฟเวอร์ 192.0.2.1
# เนมเซิร์ฟเวอร์ 8.8.4.4
# เนมเซิร์ฟเวอร์ 8.8.8.8
# เนมเซิร์ฟเวอร์ 209.244.0.3

บันทึกและปิดไฟล์

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

คุณสามารถใช้ ping สำหรับสิ่งนี้:

ปิง -c 1 google.com
PING google.com (173.194.33.1) ข้อมูล 56 (84) ไบต์
64 ไบต์จาก sea09s01-in-f1.1e100.net (173.194.33.1): icmp_seq=1 ttl=55 เวลา=63.8 ms
--- สถิติการ Ping ของ google.com ---
ส่ง 1 แพ็กเก็ต, 1 ได้รับ, สูญเสียแพ็กเก็ต 0%, เวลา 0 มิลลิวินาที
rtt ขั้นต่ำ/เฉลี่ย/สูงสุด/mdev = 63.807/63.807/63.807/0.000 ms

หนึ่งในบริการสำคัญที่ช่วยให้มั่นใจในการทำงาน อินเทอร์เน็ตที่ทันสมัยเป็นบริการแปลงชื่อเว็บไซต์ให้เป็นที่อยู่ IP เราจะตั้งค่าการใช้งานบริการ DNS ในบทความนี้โดยใช้ตัวอย่างการตั้งค่า Bind 9 (ชื่อ) บนเซิร์ฟเวอร์ที่ใช้ CentOS 7 เราจะเตรียมฟังก์ชันพื้นฐานขั้นต่ำที่จำเป็นและมองลึกลงไปอีกเล็กน้อยในการตั้งค่าการบันทึก

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

ผูก- การใช้งานเซิร์ฟเวอร์ DNS ที่พบบ่อยที่สุดในปัจจุบัน ซึ่งให้การแปลงที่อยู่ IP เป็นชื่อ DNS และในทางกลับกัน มันถูกเรียกอีกอย่างว่าชื่อ เช่นใน Freebsd เมื่อพิจารณาจากข้อมูลจาก Wikipedia ขณะนี้เซิร์ฟเวอร์ DNS รูท 10 จาก 13 เครื่องบนอินเทอร์เน็ตทำงานแบบผูกมัด มันถูกติดตั้งตั้งแต่แกะกล่องบนลีนุกซ์เกือบทุกรุ่น ฉันจะตรวจสอบการติดตั้งบนเซิร์ฟเวอร์ CentOS 7

การติดตั้ง Bind 9 (ชื่อ) บน CentOS 7

ก่อนอื่น เรามาตรวจสอบว่าเราได้ติดตั้งเซิร์ฟเวอร์ DNS ไว้ในระบบแล้วหรือไม่:

# rpm -qa ผูก * ผูก-libs-lite-9.9.4-14.el7.x86_64 ผูกใบอนุญาต-9.9.4-14.el7.noarch

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

# yum - y ติดตั้งการผูกการผูก - การผูกยูทิลิตี้ - chroot

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

# systemctl เริ่มต้น ชื่อ-chroot# systemctl เปิดใช้งาน ชื่อ-chroot ln -s "/usr/lib/systemd/system/named-chroot.service" "/etc/systemd/system/multi-user.target.wants/named-chroot.service"

การตรวจสอบเนื้อหาของไดเร็กทอรี chroot:

# ls -l /var/named/chroot/etc

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

การตั้งค่าเซิร์ฟเวอร์ DNS ใน CentOS 7

ไฟล์การกำหนดค่าเซิร์ฟเวอร์ของเราอยู่ที่ /var/named/chroot/etc/named.conf- เราเปิดมันแล้วนำมาในรูปแบบต่อไปนี้:

# mcedit /var/named/chroot/etc/named.conf ตัวเลือก ( Listen-on พอร์ต 53 ( ใด ๆ ; ); Listen-on-v6 พอร์ต 53 ( ไม่มี; ); ไดเรกทอรี "/var/named"; dump-file " /var/named/data/cache_dump.db"; Allow-query ( 127.0.0.1; 192.168.7.0/24; ); การเรียกซ้ำใช่; อนุญาตการเรียกซ้ำ ( 127.0.0.1; 192.168.7.0/24; ); ผู้ส่งต่อ ( 8.8 .8.8); เวอร์ชัน "เซิร์ฟเวอร์ DNS"; คีย์การจัดการ - คีย์ "/var/named/dynamic"; "; dnssec-enable no; dnssec-validation no; ); โซน "." IN (พิมพ์คำใบ้; ไฟล์ "named.ca"; ); รวม "/etc/named.rfc1912.zones"; รวม "/etc/named.root.key"; การบันทึก ( ช่อง default_file ( ไฟล์ "/var/log/named/default.log" เวอร์ชัน 3 ขนาด 5m; ความรุนแรงแบบไดนามิก; เวลาพิมพ์ ใช่; ); ค่าเริ่มต้นหมวดหมู่ ( default_file; ); );

การกำหนดค่านี้จะช่วยให้มั่นใจถึงการทำงานของเซิร์ฟเวอร์แคชปกติ เครือข่ายท้องถิ่น- ความคิดเห็นเกี่ยวกับพารามิเตอร์บางตัว:

อย่าลืมแก้ไขกฎไฟร์วอลล์เพื่อให้เซิร์ฟเวอร์ DNS ทำงานอย่างถูกต้อง - เปิด 53 พอร์ต UDPสำหรับการทำงานของเซิร์ฟเวอร์แคชซึ่งเราได้กำหนดค่าไว้แล้วและพอร์ต TCP 53 สำหรับโซนการส่งต่อซึ่งจะกล่าวถึงในภายหลัง

ตอนนี้เรามาสร้างโฟลเดอร์สำหรับบันทึกกันดีกว่า อย่าลืมว่าเรากำลังทำงานในสภาพแวดล้อมแบบ chroot:

# cd /var/named/chroot/var/log && mkdir ชื่อ && chown ชื่อ ชื่อ

รองรับโซนของตัวเอง

สมมติว่าเราต้องวางโซน site1.ru ของเราเองในชื่อของเรา ก่อนอื่น เราสร้างไฟล์โซนที่จะให้บริการโดยเซิร์ฟเวอร์ DNS:

# mcedit /var/named/chroot/var/named/site1.ru.zone $TTL 86400 @ ใน SOA site1.ru. site1.ru.local (2015092502 43200 3600 3600000 2592000) ใน NS ns1.site1.ru

ใน NS ns2.site1.ru

ใน 192.168.7.254 ใน MX 10 mx.site1.ru ประตู IN A 192.168.7.254 mx IN A 192.168.7.250 ns1 IN A 192.168.7.235 ns2 IN A 192.168.7.231

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

เรากำหนดสิทธิ์ที่จำเป็น:

# ราก chown:ชื่อ /var/named/chroot/var/named/site1.ru.zone # chmod 0640 /var/named/chroot/var/named/site1.ru.zone โซน "site1.ru" ( ประเภท master; ไฟล์ "site1.ru.zone"; );:

เราอ่านการกำหนดค่าที่มีชื่ออีกครั้งโดยใช้

rndc

#rndc กำหนดค่าใหม่

เพิ่มไปยังโซนผูกทาส

หากคุณต้องการเก็บสำเนาของโซนที่นำมาจากเซิร์ฟเวอร์ DNS อื่นไว้บนเซิร์ฟเวอร์ของคุณ ให้เพิ่มการตั้งค่าต่อไปนี้ในการกำหนดค่า

โซน "site.ru" IN ( ประเภททาส; ต้นแบบ ( 10.1.3.4; ); ไฟล์ "site.ru.zone"; );

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

/var/named/chroot/var/named/site.ru.zone

- หากการผูกไม่มีสิทธิ์ในการสร้างไฟล์ คุณจะได้รับข้อผิดพลาดในบันทึก:

การดัมพ์ไฟล์หลัก: tmp-7Swr6EZpcd: open: สิทธิ์ถูกปฏิเสธ สิ่งที่น่าสนใจและมีประโยชน์มากกว่าในการทำความเข้าใจการบันทึกการทำงานของเซิร์ฟเวอร์โดยละเอียด เป็นเวลานานที่ฉันคว้าคำแนะนำและการกำหนดค่าตัวอย่างทุกประเภทอย่างผิวเผินบนอินเทอร์เน็ตจนกระทั่งฉันตัดสินใจจัดการกับหัวข้อนี้ด้วยตัวเองและดูคู่มือต้นฉบับผูกให้ โอกาสที่เพียงพอสำหรับการบันทึก คุณสามารถบันทึกเกือบทุกอย่างที่เกี่ยวข้องกับการทำงานของเซิร์ฟเวอร์ ฉันกำลังอยู่ตอนนี้

ตัวอย่างง่ายๆ

ฉันจะแสดงให้คุณเห็นว่ามันทำงานอย่างไร

ก่อนอื่น ในการกำหนดค่า เราตั้งค่าช่องทางที่จะจัดเก็บบันทึกสำหรับเหตุการณ์บางอย่าง นี่คือตัวอย่างของช่องดังกล่าว: ช่องทั่วไป (ไฟล์ "/var/log/named/general.log" เวอร์ชัน 3 ขนาด 5m; ความรุนแรงแบบไดนามิก; เวลาพิมพ์ใช่;ชื่อของช่องถูกระบุที่นี่ซึ่งเราคิดขึ้นมาเอง - โดยทั่วไปมีการระบุเส้นทางไปยังไฟล์ว่ากันว่าเราจะเก็บบันทึก 3 เวอร์ชันที่มีขนาดไม่เกิน 5 เมกะไบต์ พารามิเตอร์

ความรุนแรง สามารถรับค่าต่อไปนี้:บ่งชี้ว่าควรบันทึกเวลาของเหตุการณ์ไว้ในบันทึก นอกจากการตั้งค่าที่ฉันระบุแล้ว ยังสามารถเพิ่มพารามิเตอร์ต่อไปนี้ในการกำหนดค่าช่องสัญญาณได้:

  • ความรุนแรงในการพิมพ์ใช่ | ไม่ — ระบุว่าจะเขียนพารามิเตอร์ความรุนแรงลงในบันทึกหรือไม่
  • พิมพ์-หมวดหมู่ใช่ | ไม่ — ระบุว่าจะเขียนชื่อหมวดหมู่บันทึกหรือไม่

ฉันไม่ได้ระบุพารามิเตอร์เหล่านี้ เนื่องจากมีการตั้งค่าเริ่มต้นไว้ เลขที่ซึ่งเหมาะกับฉันเป็นการส่วนตัว

หมวดหมู่ทั่วไป ( ทั่วไป; );

คำอธิบายของหมวดหมู่บันทึกในการผูก (ชื่อ)
ค่าเริ่มต้นกิจกรรมของหมวดหมู่ทั้งหมดจากตารางนี้จะอยู่ที่นี่หากไม่มีการกำหนดแยกกัน ยกเว้นหมวดหมู่ข้อความค้นหาซึ่งจะต้องรวมไว้โดยเฉพาะ นั่นคือ หากคุณกำหนดเฉพาะหมวดหมู่เริ่มต้น กิจกรรมของทุกหมวดหมู่ก็จะหลั่งไหลเข้ามา
ทั่วไปหมวดหมู่นี้มีไว้สำหรับบันทึกทั้งหมดที่ไม่รวมอยู่ในหมวดหมู่ใด ๆ ที่ระบุไว้
ฐานข้อมูลข้อความที่เกี่ยวข้องกับพื้นที่จัดเก็บและการแคชโซน
ความปลอดภัยการยืนยันและการปฏิเสธคำขอ
กำหนดค่าทุกอย่างที่เกี่ยวข้องกับการอ่านและการรันไฟล์คอนฟิกูเรชัน
ตัวแก้ไขการจำแนกชื่อ รวมถึงข้อมูลเกี่ยวกับการสืบค้นแบบเรียกซ้ำที่ดำเนินการในนามของไคลเอ็นต์โดยเซิร์ฟเวอร์แคช
เอ็กซ์เฟอร์อินข้อมูลเกี่ยวกับการรับโซน
xfer ออกข้อมูลเกี่ยวกับการโอนโซน
แจ้งการบันทึกการดำเนินการแจ้งเตือนโปรโตคอล
ลูกค้าตอบสนองคำขอของลูกค้า
ไม่ตรงกันข้อความที่ตั้งชื่อไม่สามารถมอบหมายให้กับคลาสใดๆ หรือไม่ได้กำหนดการแมปไว้
เครือข่ายการบันทึกการทำงานของเครือข่าย
อัปเดตการอัปเดตแบบไดนามิก
อัปเดตความปลอดภัยการยืนยันหรือการปฏิเสธคำขออัปเดต
แบบสอบถามการบันทึกคำขอไปยังเซิร์ฟเวอร์ DNS หากต้องการเปิดใช้งานหมวดหมู่นี้ คุณต้องตั้งค่าพารามิเตอร์แยกต่างหากในการกำหนดค่าเซิร์ฟเวอร์ เนื่องจากหมวดหมู่นี้สร้างรายการจำนวนมากในไฟล์บันทึก ซึ่งอาจส่งผลต่อประสิทธิภาพของเซิร์ฟเวอร์
ข้อผิดพลาดในการสืบค้นข้อผิดพลาดในการร้องขอไปยังเซิร์ฟเวอร์
จัดส่งการเปลี่ยนเส้นทางแพ็กเก็ตขาเข้าไปยังโมดูลเซิร์ฟเวอร์เพื่อการประมวลผล
DNSSECการทำงานของโปรโตคอล DNSSEC และ TSIG
เซิร์ฟเวอร์ง่อยแก้ไขข้อผิดพลาดที่ผูกได้รับเมื่อติดต่อกับเซิร์ฟเวอร์ระยะไกลเพื่อพยายามดำเนินการร้องขอการแก้ไขชื่อ
การมอบหมายเท่านั้นคำขอบันทึกที่ส่งคืน NXDOMAIN
edns ปิดการใช้งานคำขอที่ถูกบังคับให้ใช้ DNS ธรรมดาเนื่องจากการหมดเวลาเกิน
RPZการดำเนินการทั้งหมดที่เกี่ยวข้องกับการดำเนินการของ Response Policy Zone (RPZ)
อัตราจำกัดการดำเนินการที่เกี่ยวข้องกับคำสั่งจำกัดอัตราตั้งแต่หนึ่งรายการขึ้นไปในตัวเลือกหรือมุมมอง

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

การบันทึก ( ค่าเริ่มต้นของช่อง ( ไฟล์ "/var/log/named/default.log" เวอร์ชัน 3 ขนาด 5m; ความรุนแรงแบบไดนามิก; เวลาพิมพ์ใช่; ); เวอร์ชันทั่วไปของช่อง (ไฟล์ "/var/log/named/general.log" 3 ขนาด 5m; ความรุนแรงแบบไดนามิก; ); การกำหนดค่าช่อง ( ไฟล์ "/var/log/" ชื่อ/config.log" เวอร์ชัน 3 ขนาด 5m; ความรุนแรงแบบไดนามิก; เวลาพิมพ์ใช่; ); ตัวแก้ไขช่องสัญญาณ ( ไฟล์ "/var/log/named/resolver.log" เวอร์ชัน 3 ขนาด 5m; ความรุนแรงแบบไดนามิก; เวลาพิมพ์ใช่; ช่องทาง xfer-in ( ไฟล์ "/var/log/named/xfer-in.log" เวอร์ชัน 3 ขนาด 5m; ความรุนแรงแบบไดนามิก; เวลาพิมพ์ใช่; ); /xfer-out.log" เวอร์ชัน 3 ขนาด 5m; ความรุนแรงแบบไดนามิก ; เวลาพิมพ์ใช่; ); แจ้งช่องทาง (ไฟล์ "/var/log/named/notify.log" เวอร์ชัน 3 ขนาด 5m; ความรุนแรงแบบไดนามิก; เวลาพิมพ์ใช่ ; ); /client.log" เวอร์ชัน 3 ขนาด 5m; ความรุนแรงแบบไดนามิก เวลาพิมพ์ใช่; - ช่องที่ไม่ตรงกัน (ไฟล์ "/var/log/named/unmatched.log" เวอร์ชัน 3 ขนาด 5m; ความรุนแรงแบบไดนามิก; เวลาพิมพ์ใช่; ); เครือข่ายช่องสัญญาณ (ไฟล์ "/var/log/named/network.log" เวอร์ชัน 3 ขนาด 5 ม. ความรุนแรงแบบไดนามิก เวลาพิมพ์ใช่; ); การอัปเดตช่อง (ไฟล์ "/var/log/named/update.log" เวอร์ชัน 3 ขนาด 5m; ความรุนแรงแบบไดนามิก; เวลาพิมพ์ใช่; ); ความปลอดภัยในการอัปเดตช่อง (ไฟล์ "/var/log/named/update-security.log" เวอร์ชัน 3 ขนาด 5m; ความรุนแรงแบบไดนามิก; เวลาพิมพ์ใช่; ); แบบสอบถามช่องทาง (ไฟล์ "/var/log/named/queries.log" เวอร์ชัน 3 ขนาด 5 ม. ความรุนแรงแบบไดนามิก เวลาพิมพ์ใช่; ); ข้อผิดพลาดในการสืบค้นช่องสัญญาณ (ไฟล์ "/var/log/named/query-errors.log" เวอร์ชัน 3 ขนาด 5m; ความรุนแรงแบบไดนามิก; เวลาพิมพ์ใช่; ); การจัดส่งช่องทาง (ไฟล์ "/var/log/named/dispatch.log" เวอร์ชัน 3 ขนาด 5m; ความรุนแรงแบบไดนามิก; เวลาพิมพ์ใช่; ); ช่อง DNSsec (ไฟล์ "/var/log/named/dnssec.log" เวอร์ชัน 3 ขนาด 5m; ความรุนแรงแบบไดนามิก; เวลาพิมพ์ใช่; ); ช่อง lame-servers (ไฟล์ "/var/log/named/lame-servers.log" เวอร์ชัน 3 ขนาด 5m; ความรุนแรงแบบไดนามิก; เวลาพิมพ์ใช่; ); การมอบหมายช่องสัญญาณเท่านั้น (ไฟล์ "/var/log/named/delegation-only.log" เวอร์ชัน 3 ขนาด 5m; ความรุนแรงแบบไดนามิก; เวลาพิมพ์ใช่; ); ช่อง edns-disabled (ไฟล์ "/var/log/named/edns-disabled.log" เวอร์ชัน 3 ขนาด 5m; ความรุนแรงแบบไดนามิก; เวลาพิมพ์ใช่; ); ช่อง rpz ( ไฟล์ "/var/log/named/rpz.log" เวอร์ชัน 3 ขนาด 5m; ความรุนแรงแบบไดนามิก; เวลาพิมพ์ใช่; ); ขีดจำกัดอัตราช่องสัญญาณ (ไฟล์ "/var/log/named/rate-limit.log" เวอร์ชัน 3 ขนาด 5m; ความรุนแรงแบบไดนามิก; เวลาพิมพ์ใช่; ); ค่าเริ่มต้นหมวดหมู่(ค่าเริ่มต้น;); หมวดหมู่ทั่วไป(ทั่วไป;); ฐานข้อมูลหมวดหมู่ ( ฐานข้อมูล; ); ความปลอดภัยของหมวดหมู่ ( ความปลอดภัย; ); การกำหนดค่าหมวดหมู่ (config;); ตัวแก้ไขหมวดหมู่ (ตัวแก้ไข;); หมวดหมู่ xfer-in ( xfer-in; ); หมวดหมู่ xfer-out ( xfer-out; ); หมวดหมู่แจ้ง ( แจ้ง; ); ลูกค้าหมวดหมู่ (ลูกค้า; ); หมวดหมู่ไม่ตรงกัน ( ไม่ตรงกัน; ); เครือข่ายหมวดหมู่ ( เครือข่าย; ); อัพเดตหมวดหมู่(อัพเดต;); หมวดหมู่อัพเดตความปลอดภัย ( อัพเดตความปลอดภัย; ); ข้อความค้นหาหมวดหมู่ ( ข้อความค้นหา; ); ข้อผิดพลาดในการสืบค้นหมวดหมู่ ( ข้อผิดพลาดในการสืบค้น; ); การจัดส่งหมวดหมู่ ( จัดส่ง; ); หมวดหมู่ DNS ( dnssec; ); หมวดหมู่เซิร์ฟเวอร์ง่อย ( เซิร์ฟเวอร์ง่อย; ); การมอบหมายหมวดหมู่เท่านั้น ( การมอบหมายเท่านั้น; ); หมวดหมู่ edns ปิดการใช้งาน ( edns ปิดการใช้งาน; ); หมวดหมู่ rpz ( rpz; ); ขีดจำกัดอัตราหมวดหมู่ ( ขีดจำกัดอัตรา; ); -

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

บันทึกข้อความค้นหาใช่

รีสตาร์ทการผูก:

# systemctl รีสตาร์ทชื่อ-chroot.service

ตรวจสอบการทำงานของ DNS Server

ก่อนอื่น ไปที่ไดเร็กทอรีพร้อมบันทึกและตรวจสอบสิ่งที่เรามี:

# cd /var/named/chroot/var/log/named # ls -l

ไฟล์บันทึกทั้งหมดถูกสร้างขึ้นแล้วและกำลังเริ่มเติมให้เต็ม คุณสามารถตรวจสอบหนึ่งในนั้น ตัวอย่างเช่น มาดูกันว่าเซิร์ฟเวอร์ centos ของเรา (192.168.7.246) บันทึกคำขอของผู้ใช้อย่างไร มาลองเรียกใช้ nslookup yandex.ru จากคอมพิวเตอร์ 192.168.7.254 (Windows) และดูว่ามันสะท้อนให้เห็นในไฟล์บันทึกอย่างไร:

26 ก.ย. 2558 19:25:30.923 ลูกค้า 192.168.7.254#56374 (yandex.ru): แบบสอบถาม: yandex.ru IN A + (192.168.7.246) 26 ก.ย. 2558 19:25:31.013 ลูกค้า 192.168.7.254# 56375 (yandex.ru): แบบสอบถาม: yandex.ru ใน AAAA + (192.168.7.246)

ตอนนี้เรามา ping site1.ru เพื่อตรวจสอบว่าเซิร์ฟเวอร์รองรับโซนของเราอย่างไร:

มาดูกันว่ามีอะไรอยู่ในบันทึก:

26 ก.ย. 2558 19:28:01.660 ลูกค้า 192.168.7.254#49816 (site1.ru): แบบสอบถาม: site1.ru IN A + (192.168.7.246)

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

นั่นคือทั้งหมดที่ฉันต้องการบอกคุณในเนื้อหานี้ หัวข้อการตั้งค่าการผูก (ชื่อ) นั้นค่อนข้างกว้างขวาง บางทีฉันอาจจะกลับไปอีกครั้ง

หลักสูตรออนไลน์เกี่ยวกับ Mikrotik

หากคุณมีความปรารถนาที่จะเรียนรู้วิธีทำงานกับเราเตอร์ Mikrotik และเป็นผู้เชี่ยวชาญในสาขานี้ฉันแนะนำให้เรียนหลักสูตรตามโปรแกรมตามข้อมูลจากหลักสูตรอย่างเป็นทางการ ผู้ร่วมเครือข่ายที่ผ่านการรับรอง MikroTik- นอกจาก โปรแกรมอย่างเป็นทางการหลักสูตรจะ งานห้องปฏิบัติการซึ่งคุณสามารถทดสอบและรวบรวมความรู้ที่ได้รับในทางปฏิบัติ รายละเอียดทั้งหมดอยู่บนเว็บไซต์ ค่าอบรมไม่แพงมาก โอกาสที่ดีได้รับความรู้ใหม่ในสาขาวิชาที่เกี่ยวข้องในปัจจุบัน คุณสมบัติของหลักสูตร:
  • ความรู้เชิงปฏิบัติ
  • สถานการณ์และงานจริง
  • สุดยอดโปรแกรมนานาชาติ

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

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

บทความนี้ให้คำแนะนำเกี่ยวกับวิธีการล้างแคช DNS ในรูปแบบต่างๆ ระบบปฏิบัติการและเว็บเบราว์เซอร์

ล้าง/ลบแคช DNS ใน Windows

กระบวนการล้างแคช DNS จะเหมือนกันสำหรับทุกคน เวอร์ชันของ Windows- คุณต้องเปิดพรอมต์คำสั่งด้วยสิทธิ์ของผู้ดูแลระบบและเรียกใช้ ipconfig /flushdns

วินโดวส์ 10 และวินโดวส์ 8

หากต้องการล้างแคช DNS ใน Windows 10 และ 8 ให้ทำตามขั้นตอนเหล่านี้:

  1. พิมพ์ cmd ในแถบค้นหาของ Windows
  2. ipconfig /flushdns

    วินโดวส์ 7

    หากต้องการล้างแคช DNS ใน Windows 7 ให้ทำตามขั้นตอนเหล่านี้:

    1. คลิกที่ปุ่มเริ่ม
    2. พิมพ์ cmd ลงในกล่องข้อความค้นหาเมนู Start
    3. คลิกขวาที่ บรรทัดคำสั่งและเลือกเรียกใช้ในฐานะผู้ดูแลระบบ จะเป็นการเปิดหน้าต่างพรอมต์คำสั่ง
    4. ที่พรอมต์คำสั่ง ให้พิมพ์บรรทัดต่อไปนี้แล้วกด Enter:

      ipconfig /flushdns

      หากสำเร็จระบบจะส่งคืนข้อความต่อไปนี้:

      การกำหนดค่า IP ของ Windows ล้างแคช DNS Resolver สำเร็จแล้ว

    ล้าง/ลบแคช DNS ใน Linux

    Linux ไม่มีการแคช DNS ระดับระบบปฏิบัติการ เว้นแต่จะมีการติดตั้งและใช้งานบริการแคช เช่น Systemd-Resolved, DNSMasq หรือ Nscd กระบวนการล้างแคช DNS จะแตกต่างกันไปขึ้นอยู่กับการแจกจ่ายและบริการแคชที่คุณใช้

    แก้ไขระบบแล้ว

    ที่ทันสมัยที่สุด การแจกแจงลินุกซ์เช่น ใช้บริการที่เปิดใช้งานระบบเพื่อแคชบันทึก DNS

    หากต้องการทราบว่าบริการกำลังทำงานอยู่หรือไม่ ให้รัน:

    sudo systemctl is-active systemd-resolved.service

    หากบริการกำลังทำงานอยู่ คำสั่งจะพิมพ์ว่าใช้งานอยู่ ไม่เช่นนั้นคุณจะเห็นว่าไม่ได้ใช้งาน

    หากต้องการล้างแคช DNS ที่แก้ไขแล้วของ Systemd คุณต้องป้อนคำสั่งต่อไปนี้

    sudo systemd-resolve --flush-caches

    หากสำเร็จ คำสั่งจะไม่ส่งคืนข้อความใดๆ

    DNSMAQ

    Dnsmasq เป็นเซิร์ฟเวอร์แคชชื่อ DHCP และ DNS ที่มีน้ำหนักเบา

    หากระบบของคุณใช้ DNSMasq เป็นเซิร์ฟเวอร์แคช หากต้องการล้างแคช DNS คุณต้องเริ่มบริการ Dnsmasq ใหม่:

    sudo systemctl รีสตาร์ท dnsmasq.service

    sudo service dnsmasq รีสตาร์ท

    Nscd

    Nscd เป็น caching daemon และเป็นระบบแคช DNS ที่เป็นตัวเลือกสำหรับการแจกแจงแบบ RedHat ส่วนใหญ่

    หากระบบของคุณใช้ Nscd คุณจะต้องเริ่มบริการ Nscd ใหม่เพื่อล้างแคช DNS:

    sudo systemctl รีสตาร์ท nscd.service

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

    ล้าง/ลบแคช DNS บน MacOS

    คำสั่งเพื่อล้างแคชใน MacOS จะแตกต่างกันเล็กน้อยขึ้นอยู่กับเวอร์ชันที่คุณใช้ คำสั่งจะต้องรันในฐานะผู้ใช้ที่มีสิทธิ์ ผู้ดูแลระบบ(ผู้ใช้ sudo)

    หากต้องการล้างแคช DNS บน MacOS ให้ทำตามขั้นตอนเหล่านี้:

    1. เปิดเครื่องมือค้นหา
    2. ไปที่แอปพลิเคชั่น > ยูทิลิตี้ > เทอร์มินัล นี่จะเป็นการเปิดหน้าต่างเทอร์มินัล
    3. ที่พรอมต์คำสั่ง ให้พิมพ์บรรทัดต่อไปนี้แล้วกด Enter:

      sudo killall -HUP mDNSR ตอบกลับ

      ป้อนรหัสผ่าน sudo ของคุณแล้วกด Enter อีกครั้ง หากสำเร็จระบบจะไม่ส่งคืนข้อความใดๆ

    สำหรับข้อมูลเพิ่มเติม รุ่นก่อนหน้าคำสั่งล้างแคชของ MacOS นั้นแตกต่างออกไป

    MacOS เวอร์ชัน 10.11 และ 10.9

    sudo dscacheutil -flushcache sudo killall -HUP mDNSResponder

    แมคโอเอส เวอร์ชัน 10.10

    sudo Discoveryutil mdnsflushcache sudo Discoveryutil udnsflushcaches

    MacOS เวอร์ชัน 10.6 และ 10.5

    sudo dscacheutil -flushcache

    ล้าง/ลบแคช DNS ของเบราว์เซอร์

    เว็บเบราว์เซอร์สมัยใหม่ส่วนใหญ่มีไคลเอนต์ DNS ในตัวที่ป้องกันการสืบค้นที่ซ้ำกันทุกครั้งที่คุณเยี่ยมชมเว็บไซต์

    กูเกิลโครม

    เพื่อล้างแคช DNS กูเกิลโครมให้ทำตามขั้นตอนเหล่านี้:

    1. เปิด แท็บใหม่และเข้าไปในแถบที่อยู่ของ Chrome: chrome://net-internals/#dns
    2. คลิกปุ่มล้างแคชโฮสต์

    หากไม่ได้ผลสำหรับคุณ ให้ลองล้างแคชและคุกกี้ของคุณ

    1. กด CTRL+Shift+Del เพื่อเปิดกล่องโต้ตอบ ล้างข้อมูลการท่องเว็บ
    2. เลือกช่วงเวลา เลือก "ตลอดเวลา" เพื่อลบทุกอย่าง
    3. ตรวจสอบ " คุกกี้และข้อมูลไซต์อื่นๆ" และ "รูปภาพและไฟล์ในแคช"
    4. คลิกปุ่ม "ล้างข้อมูล"

    วิธีนี้จะใช้ได้กับเบราว์เซอร์ที่ใช้ Chrome ทั้งหมด รวมถึง Chromium, Vivaldi และ Opera

    ไฟร์ฟ็อกซ์

    หากต้องการล้างแคช DNS ของ Firefox ให้ทำตามขั้นตอนเหล่านี้:

    1. ที่มุมขวาบน ให้คลิกไอคอนแฮมเบอร์เกอร์ ☰ เพื่อเปิดเมนู Firefox:
    2. คลิกที่ลิงค์ ⚙ ตัวเลือก (การตั้งค่า)
    3. คลิกที่แท็บ "ความเป็นส่วนตัวและความปลอดภัย" หรือ "การรักษาความลับ" ทางด้านซ้าย
    4. เลื่อนลงไปที่ส่วนประวัติและคลิกที่ปุ่มล้างประวัติ...
    5. เลือกช่วงเวลาที่จะล้าง เลือก "ทั้งหมด" เพื่อลบทุกอย่าง
    6. เลือกช่องทั้งหมดแล้วคลิกล้างทันที

    หากไม่ได้ผลสำหรับคุณ ให้ลองใช้วิธีถัดไปและปิดใช้งานแคช DNS ชั่วคราว

    1. เปิดแท็บใหม่และพิมพ์ about:config ลงในแถบที่อยู่ของ Firefox
    2. ค้นหา network.dnsCacheExpiration ตั้งค่าเป็น 0 ชั่วคราวแล้วคลิกตกลง หลังจากนั้นให้เปลี่ยนค่าเริ่มต้นแล้วคลิกตกลง
    3. ค้นหา network.dnsCacheEntries ตั้งค่าเป็น 0 ชั่วคราวแล้วคลิกตกลง หลังจากนั้นให้เปลี่ยนค่าเริ่มต้นแล้วคลิกตกลง

    บทสรุป

    คุณได้เรียนรู้วิธีล้างหรือล้างแคช DNS ในการทำงาน ระบบวินโดวส์, ลินุกซ์ และ MacOS

    Linux และ MacOS สามารถใช้คำสั่ง dig เพื่อค้นหา DNS และแก้ไขปัญหา DNS

    หากคุณมีคำถามหรือข้อเสนอแนะโปรดแสดงความคิดเห็น

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

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

มาติดตั้งเซิร์ฟเวอร์ Bind9 DNS:

# apt - รับการติดตั้ง bind9

หลังจากดาวน์โหลดและติดตั้งเสร็จแล้ว เราจำเป็นต้องแก้ไขไฟล์การกำหนดค่า:

#vim /etc/bind/named. การประชุม ตัวเลือก

เราพบส่วนนี้ซึ่งอยู่ที่จุดเริ่มต้นของไฟล์กำหนดค่า ยกเว้นว่าไม่มีอะไรอื่นในนั้น...

ตัวเลือก ( ไดเร็กทอรี "/var/cache/bind" ; // หากมีไฟร์วอลล์ระหว่างคุณกับเนมเซิร์ฟเวอร์ที่คุณต้องการ// หากต้องการพูดคุย คุณอาจต้องแก้ไขไฟร์วอลล์เพื่ออนุญาตหลายรายการ// พอร์ตที่จะพูดคุย ดูhttp://www.kb.cert.org/vuls/id/800113// หาก ISP ของคุณระบุที่อยู่ IP อย่างน้อยหนึ่งรายการเพื่อให้มีเสถียรภาพ// เนมเซิร์ฟเวอร์ คุณอาจต้องการใช้มันเป็นผู้ส่งต่อ// ยกเลิกหมายเหตุบล็อกต่อไปนี้ และแทรกที่อยู่แทนที่// ตัวยึดตำแหน่ง all-0 // ผู้ส่งต่อ ( // 0.0.0.0; // ); auth - nxdomain no; # สอดคล้องกับ RFC1035 Listen - on - v6 ( any ; ); );

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

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

ผู้ส่งต่อ (8.8.8.8; 193.58.251.251; // บริการ DNS รัสเซีย -SkyDNS};

ในส่วนนี้ ควรป้อน IP ของเซิร์ฟเวอร์ที่คุณระบุไว้ในไฟล์จะดีกว่า /etc/resolv.confหรือเข้าไปในส่วนของ เนมเซิร์ฟเวอร์ไอพีนี้ บันทึกการเปลี่ยนแปลงและออก รีสตาร์ทเซิร์ฟเวอร์และตรวจสอบ เราพิมพ์ในบรรทัดคำสั่ง nslookup mail.ru
ควรส่งออก:

คำตอบที่ไม่น่าเชื่อถือ: ชื่อ: จดหมาย ru ที่อยู่: 94.100.191.202

สิ่งนี้ชี้ให้เห็นว่าเซิร์ฟเวอร์ของเราไม่ใช่เซิร์ฟเวอร์หลักในการให้บริการโซนนี้ (mail.ru) แต่เพิ่มคำขอไปยังแคช!
ตอนนี้เราจำเป็นต้องสร้างโซน DNS สำหรับเครือข่ายของเราเพื่อให้เครื่องสามารถค้นหาบริการเครือข่ายต่างๆ ได้ - อาจมี ตัวอย่างเช่น เครื่องพิมพ์เครือข่าย สามารถแยกเป็นอิสระหรือแชร์บนเวิร์กสเตชันอื่นได้
โซนของเราสามารถเรียกได้ว่าเป็น orgname – เช่น ชื่อขององค์กร
ก่อนอื่นเราสร้างโซนเพื่อแก้ไขสิ่งนี้ ชื่อ.conf.local

#vim /etc/bind/named. การประชุม ท้องถิ่น

และเพิ่มสิ่งต่อไปนี้เข้าไป:

โซน "orgname" ( พิมพ์ master ; file "/etc/bind/db.orgname" ; );

บันทึกและออก
ตอนนี้เราจำเป็นต้องสร้างไฟล์การกำหนดค่าโซน

# vim / etc / ผูก / db ชื่อองค์กร

และวางสิ่งต่อไปนี้ลงไป:
(โปรดใส่ใจกับไวยากรณ์ของไฟล์กำหนดค่าอย่างใกล้ชิด แม้แต่จุดก็มีความหมาย)

@IN SOA ชื่อองค์กร.

ราก. ชื่อองค์กร (20101015 4 ชม. เวลาอัปเดต - 4 ชั่วโมง 1 ชม. ทำซ้ำทุก ๆ ชั่วโมง 1 ชม. ระยะเวลาในการจัดเก็บข้อมูล - 1 สัปดาห์ 1 วัน)
TTL (time to live) ของบันทึกคือ 1 วัน @ IN NS orgname - เนมเซิร์ฟเวอร์ชื่อ @ ใน 192.168.10.1 ;
A - บันทึก - ที่อยู่ IP ของเซิร์ฟเวอร์ DNS ของเราที่ให้บริการโซนนี้ @ หมายความว่านี่คือโซนรูท

* ใน CNAME @ เครื่องพิมพ์ใน A 192.168.10.25 ;

คุณสามารถสร้างบันทึก DNS สำหรับเครื่องพิมพ์เครือข่ายที่อยู่ที่ 192.168.10.25

ตอนนี้ เมื่อเพิ่มอุปกรณ์เครือข่ายใหม่ คุณต้องทำ 2 สิ่ง:

1) จองที่อยู่ IP บนเซิร์ฟเวอร์ DHCP คุณสามารถอ่านเกี่ยวกับวิธีการได้ในบทความ - การตั้งค่าเซิร์ฟเวอร์ DHCP

2) สร้างโซน DNS สำหรับ IP นี้ พิมพ์ชื่ออุปกรณ์ใน XXX.XXX.XXX.XXX โดยที่: devicename คือชื่อเครือข่ายของอุปกรณ์ XXX.XXX.XXX.XXX คือที่อยู่ IP ซึ่งสงวนไว้บนเซิร์ฟเวอร์ DHCP
ตอนนี้เราต้องแก้ไขไฟล์ resolv.conf

# vim / ฯลฯ / แก้ไข การประชุม

และเข้าไปที่นั่น: เนมเซิร์ฟเวอร์ 127.0.0.1.
ทุกสิ่งที่มีอยู่สามารถแสดงความคิดเห็นได้โดยใส่ #
เซิร์ฟเวอร์รีสตาร์ท

# รีบูต

สิ่งนี้ทำเพื่อให้เซิร์ฟเวอร์ค้นหาทุกสิ่งในฐานข้อมูลของตัวเอง จากนั้น BIND เท่านั้นที่จะเปลี่ยนเส้นทางคำขอไปยังเซิร์ฟเวอร์ 8.8.8.8 IP ซึ่ง IP รวมอยู่ในคำสั่ง

ผู้ส่งต่อ

ตอนนี้คุณสามารถตรวจสอบฟังก์ชันการทำงานได้:

หากการทดสอบเกิดขึ้นภายใต้ Windows: ชื่ออุปกรณ์ปิง ชื่อองค์กร

หากเราทดสอบจาก Linux:<<>ชื่ออุปกรณ์ปิง ชื่อองค์กร - c 4<<>ปิงควรไปที่ IP ที่คุณระบุแทน XXX.XXX.XXX.XXX<<- opcode: QUERY, status: NOERROR, id: 63893 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 4, AUTHORITY: 13, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;tut.by. IN A ;; ANSWER SECTION: tut.by. 103 IN A 178.172.160.5 tut.by. 103 IN A 178.172.160.4 tut.by. 103 IN A 178.172.160.2 tut.by. 103 IN A 178.172.160.3 ;; AUTHORITY SECTION: . 6029 IN NS i.root-servers.net. . 6029 IN NS b.root-servers.net. . 6029 IN NS m.root-servers.net. . 6029 IN NS k.root-servers.net. . 6029 IN NS e.root-servers.net. . 6029 IN NS d.root-servers.net. . 6029 IN NS j.root-servers.net. . 6029 IN NS g.root-servers.net. . 6029 IN NS l.root-servers.net. . 6029 IN NS f.root-servers.net. . 6029 IN NS h.root-servers.net. . 6029 IN NS a.root-servers.net. . 6029 IN NS c.root-servers.net. ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Tue Mar 22 16:46:24 MSK 2016 ;; MSG SIZE rcvd: 310

คุณยังสามารถตรวจสอบความเร็วของการประมวลผลคำขอด้วยคำสั่ง

ขุด

# ขุด @ 127.0.0.1 tut.by ;

> DiG 9.9.5-9+deb8u6-เดเบียน > @127.0.0.1 tut.by ; (พบ 1 เซิร์ฟเวอร์) ;; ตัวเลือกส่วนกลาง: +cmd ;; มีคำตอบ: ;; ->>ส่วนหัว.

ความสนใจ

หากต้องการติดตั้งและกำหนดค่า dnsmasq อย่างถูกต้อง ให้ไปที่เซสชัน superuser: เมื่อได้รับแจ้งให้ใส่รหัสผ่าน ให้ป้อนรหัสผ่านผู้ใช้ขั้นสูงหรือผู้ดูแลระบบภายใน

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

DNSMAQ

ยำติดตั้ง DNSmasq

ใช้โปรแกรมแก้ไขข้อความ vi หรือ nano เปิดไฟล์ที่อยู่ที่

/etc/dnsmasq.conf

Vi /etc/dnsmasq.conf

  • นาโน /etc/dnsmasq.conf- ไฟล์ที่มีที่อยู่ IP ของเซิร์ฟเวอร์ DNS
  • ไม่มีแบบสำรวจ- พารามิเตอร์ที่ห้ามไม่ให้มีการเปลี่ยนแปลงไฟล์ชื่อ resolv โดยอัตโนมัติ
  • ฟังที่อยู่- พารามิเตอร์ที่ระบุที่อยู่ที่จะฟัง
  • ขนาดแคช- ขนาดแคช ค่าเริ่มต้นอนุญาตให้คุณจัดเก็บได้ 150 โฮสต์
  • onf-dir- พารามิเตอร์ที่รับผิดชอบไฟล์การกำหนดค่าเพิ่มเติม
  • เซิร์ฟเวอร์ทั้งหมด- เปลี่ยนเส้นทางคำขอ DNS ไปยังเซิร์ฟเวอร์ DNS ที่มีอยู่ทั้งหมด และส่งคืนการตอบกลับจากเซิร์ฟเวอร์แรกที่ตอบสนอง ต้องเขียนพารามิเตอร์ด้วยตนเอง

คุณยังสามารถระบุพารามิเตอร์ต่อไปนี้:

  • ไม่มี negcache- อย่าแคชการตอบสนองเชิงลบจากเซิร์ฟเวอร์
  • ind-อินเตอร์เฟซ- อนุญาตให้คุณเรียกใช้สำเนาของกระบวนการ
  • ns-ไปข้างหน้า-สูงสุด- จำนวนคำขอ DNS สูงสุด ค่าเริ่มต้นคือ 150 ต้องเขียนพารามิเตอร์ด้วยตนเอง

ตอนนี้สร้างไฟล์ แก้ไข.dnsmasqใช้โปรแกรมแก้ไขข้อความ วิหรือ นาโนและจดที่อยู่ของเซิร์ฟเวอร์ DNS ไว้ที่นั่น

Vi /etc/resolv.dnsmasq

นาโน /etc/resolv.dnsmasq

จากนั้นเพิ่มที่อยู่ IP 127.0.0.1 เพื่อยื่น แก้ไข.conf- เมื่อต้องการทำเช่นนี้ ให้ใช้ยูทิลิตีนี้ “การเชื่อมต่อเครือข่าย”, ตั้งอยู่ใน “เมนู” → “ตัวเลือก” → “การเชื่อมต่อเครือข่าย”ในสภาพแวดล้อมแบบกราฟิก อบเชยหรือ “ระบบ” → “การตั้งค่า” → “การเชื่อมต่อเครือข่าย”ในสภาพแวดล้อมแบบกราฟิก เพื่อน- เลือกการเชื่อมต่อที่ใช้งานของคุณ คลิกปุ่ม "เปลี่ยน",ไปที่แท็บ "การตั้งค่า IPv4", เปลี่ยน "วิธี"บน "อัตโนมัติ (DHCP ที่อยู่เท่านั้น)"และในสนาม” เซิร์ฟเวอร์ DNS เพิ่มเติม» เขียนที่อยู่ 127.0.0.1 คลิกนำไปใช้และรีสตาร์ท ผู้จัดการเครือข่าย

ไม่แนะนำให้แก้ไขไฟล์ resolv.conf โดยใช้โปรแกรมแก้ไขข้อความ ไฟล์จะถูกเขียนทับด้วยการรีสตาร์ทระบบครั้งถัดไป

Systemctl รีสตาร์ท NetworkManager.service

เพื่อให้แน่ใจว่าการเปลี่ยนแปลงมีผล ให้ตรวจสอบเนื้อหาของไฟล์ แก้ไข.conf:

แมว /etc/resolv.conf

เนื้อหาควรเป็นดังนี้:

# สร้างโดยเนมเซิร์ฟเวอร์ NetworkManager 127.0.0.1

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

เพิ่มบริการ > @127.0.0.1 tut.by ; (พบ 1 เซิร์ฟเวอร์) ;; ตัวเลือกส่วนกลาง: +cmd ;; มีคำตอบ: ;; ->>ส่วนหัวเพื่อทำงานอัตโนมัติและเข้าสู่ระบบเซสชันอีกครั้ง:

Systemctl เปิดใช้งาน dnsmasq.service -- ทันที

หากต้องการรีเซ็ตแคช เพียงรีสตาร์ทบริการ:

Systemctl รีสตาร์ท dnsmasq.service

การตรวจสอบการทำงาน

ตรวจสอบว่าบริการเปิดอยู่หรือไม่:

สถานะ Systemctl dnsmasq.service

ตรวจสอบพอร์ต 53:

Netstat -ntlp | grep:53 tcp 0 0 0.0.0.0:53 0.0.0.0:* ฟัง 7319/dnsmasq tcp6 0 0:::53:::* ฟัง 7319/dnsmasq

ตอนนี้ลองใช้ยูทิลิตี้ dig เพื่อเข้าถึงไซต์หลายครั้ง google.com

ขุด google.com | grep "เวลาค้นหา" ;; เวลาสืบค้น: 135 มิลลิวินาที

หากการแคชคำขอ DNS ใช้งานได้ บรรทัดที่ไฮไลต์ในคำขอต่อไปนี้เกือบทั้งหมด เวลาสอบถามจะเท่ากับศูนย์

- เวลาสืบค้น: 0 มิลลิวินาที

มิฉะนั้น จะแตกต่างจาก 0 และสูงกว่าในคำขอใหม่แต่ละรายการ

ส่งผลให้เซิร์ฟเวอร์ DNS หลักบนเครือข่ายมีภาระงานน้อยลงมาก

หากคุณพบข้อผิดพลาด ให้ไฮไลต์ข้อความแล้วคลิก Ctrl+ป้อน.

บอกเพื่อน