Linux Server Deployment & SSH Mastery · บทเรียน

การกำหนดค่า DNS และการแก้ไขปัญหา

ทำความเข้าใจวิธีที่เซิร์ฟเวอร์ Linux แปลงชื่อโฮสต์เป็นที่อยู่ IP ตั้งค่าตัวแก้ไขชื่อ แก้ไข /etc/hosts และใช้ dig, nslookup กับ host เพื่อวินิจฉัยปัญหา DNS ที่ทำให้การเชื่อมต่อล้มเหลวแม้เครือข่ายจะทำงานปกติ

บทเรียน 4 จาก 413 ขั้นตอน

การกำหนดค่า DNS และการแก้ไขปัญหา เป็นบทเรียน Linux Server Deployment & SSH Mastery ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Linux Server Deployment & SSH Mastery และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Linux Server Deployment & SSH Mastery มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใด DNS จึงสำคัญบนเซิร์ฟเวอร์

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

การรู้ว่าการแปลงชื่อทำงานอย่างไร รวมถึงวิธีแก้ไขข้อขัดข้อง เป็นทักษะเครือข่ายที่จำเป็น

เส้นทางการแปลงชื่อ

เมื่อโปรแกรมต้องการ IP ของชื่อหนึ่ง Linux จะตรวจสอบแหล่งข้อมูลตามลำดับ โดยทั่วไปคือ:

  • ไฟล์ภายในเครื่อง /etc/hosts
  • เซิร์ฟเวอร์ DNS ที่กำหนดค่าไว้ (ตัวแก้ชื่อ)

ลำดับนี้ควบคุมโดย /etc/nsswitch.conf ในบรรทัด hosts:

grep hosts /etc/nsswitch.conf
# hosts: files dns

ไฟล์ /etc/hosts

/etc/hosts จับคู่ชื่อกับ IP ภายในเครื่อง โดยไม่ผ่าน DNS เหมาะอย่างยิ่งสำหรับการทดสอบ ชื่อโฮสต์ภายใน หรือการกำหนดโดเมนให้ชี้ไปยัง IP ที่ระบุ

แต่ละบรรทัดประกอบด้วย IP ตามด้วยชื่อหนึ่งชื่อหรือมากกว่า

127.0.0.1   localhost
192.168.1.50  db.internal db

ตำแหน่งที่กำหนดค่าตัวแก้ชื่อ

ไฟล์แบบดั้งเดิมคือ /etc/resolv.conf ซึ่งแสดงรายการเซิร์ฟเวอร์ชื่อ บนระบบสมัยใหม่ ไฟล์นี้มักจัดการโดย systemd-resolved หรือ NetworkManager ดังนั้นการแก้ไขโดยตรงอาจไม่คงอยู่

ตรวจสอบสิ่งที่กำลังใช้งานจริงก่อนเปลี่ยนแปลงใด ๆ

cat /etc/resolv.conf
resolvectl status

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

บนระบบที่ใช้ systemd-resolved ให้ตั้งค่า DNS แยกตามส่วนติดต่อ แทนการแก้ไข resolv.conf สำหรับเซิร์ฟเวอร์ที่ใช้ Netplan ให้กำหนดค่าในไฟล์ตั้งค่า YAML

ตัวอย่างนี้ตั้งค่าตัวแก้ชื่อสาธารณะให้กับส่วนติดต่อหนึ่ง

sudo resolvectl dns eth0 1.1.1.1 8.8.8.8
resolvectl dns eth0

ค้นหาระเบียนด้วย dig

dig เป็นเครื่องมือสอบถาม DNS ที่ทรงพลังที่สุด โดยแสดงทั้งคำตอบและข้อมูลเมตาของการสอบถาม

ตัวเลือก +short จะตัดผลลัพธ์ให้เหลือเพียงคำตอบ เหมาะอย่างยิ่งสำหรับสคริปต์

dig example.com
dig +short example.com

สอบถามประเภทรเบียนเฉพาะ

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

  • A — ที่อยู่ IPv4
  • AAAA — ที่อยู่ IPv6
  • MX — เซิร์ฟเวอร์จดหมาย
  • NS — เซิร์ฟเวอร์ชื่อ
  • CNAME — ชื่อแทน
dig example.com MX +short
dig example.com NS +short

nslookup และ host

nslookup และ host เป็นทางเลือกที่เรียบง่ายกว่า dig เหมาะสำหรับการตรวจสอบอย่างรวดเร็วและการค้นย้อนกลับ (จาก IP เป็นชื่อ)

การค้นย้อนกลับจะสอบถามระเบียน PTR ของที่อยู่

host example.com
nslookup example.com
dig -x 8.8.8.8 +short

สอบถามเซิร์ฟเวอร์ที่ระบุ

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

dig @1.1.1.1 example.com +short
dig @8.8.8.8 example.com +short

ขั้นตอนการแก้ไขปัญหา

เมื่อไม่สามารถแปลงชื่อได้ ให้ตรวจสอบเป็นลำดับชั้น:

  • คุณ ping IP โดยตรงได้หรือไม่ (ตัดประเด็นเครือข่ายออก)
  • dig @1.1.1.1 name ทำงานหรือไม่ (ตัดประเด็นที่ตัวชื่อเองออก)
  • dig name โดยใช้ตัวแก้ชื่อเริ่มต้นของคุณทำงานหรือไม่ (แยกปัญหาการตั้งค่าตัวแก้ชื่อ)
  • มีรายการใน /etc/hosts ที่เก่าค้างและเขียนทับค่าหรือไม่
ping -c1 1.1.1.1
dig @1.1.1.1 example.com +short
dig example.com +short

แนวทางปฏิบัติที่ดี

รักษาการแปลงชื่อให้เชื่อถือได้:

  • ใช้ตัวแก้ชื่ออย่างน้อยสองตัวเพื่อความซ้ำซ้อน
  • อย่าแก้ไข resolv.conf ด้วยตนเอง หากไฟล์นี้จัดการโดยอัตโนมัติ
  • ใช้ /etc/hosts สำหรับการทดสอบ แต่ลบรายการเก่าที่ค้างอยู่
  • เลือกใช้ dig +short ในสคริปต์เพื่อให้ผลลัพธ์สะอาด

ตรวจสอบอย่างรวดเร็ว

ทดสอบความรู้เกี่ยวกับการแก้ไขปัญหา DNS

สรุปทบทวน

ตอนนี้คุณสามารถกำหนดค่าและแก้ไขปัญหา DNS บนเซิร์ฟเวอร์ได้แล้ว:

  • ลำดับการแปลงชื่อผ่าน /etc/nsswitch.conf และ /etc/hosts
  • ตัวแก้ชื่อใน resolv.conf / systemd-resolved
  • การสอบถามด้วย dig, host, nslookup รวมถึงประเภทรเบียนและเซิร์ฟเวอร์ที่ระบุ
  • ขั้นตอนการแก้ไขปัญหาแบบตรวจสอบทีละชั้น

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

เริ่มต้นได้ฟรี

เรียนรู้ Linux Server Deployment & SSH Mastery ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
12
บทเรียน
48

คำถามที่พบบ่อย

บทเรียน “การกำหนดค่า DNS และการแก้ไขปัญหา” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การกำหนดค่า DNS และการแก้ไขปัญหา” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Linux Server Deployment & SSH Mastery ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Linux Server Deployment & SSH Mastery มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การกำหนดค่า DNS และการแก้ไขปัญหา”

ทำความเข้าใจวิธีที่เซิร์ฟเวอร์ Linux แปลงชื่อโฮสต์เป็นที่อยู่ IP ตั้งค่าตัวแก้ไขชื่อ แก้ไข /etc/hosts และใช้ dig, nslookup กับ host เพื่อวินิจฉัยปัญหา DNS ที่ทำให้การเชื่อมต่อล้มเหลวแม้เครือข่ายจะทำง… คุณปฏิบัติ Linux Server Deployment & SSH Mastery ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Linux Server Deployment & SSH Mastery หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Linux Server Deployment & SSH Mastery บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “การกำหนดค่า DNS และการแก้ไขปัญหา” ใช้เวลานานแค่ไหน

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

ฉันเขียนและรันโค้ดในบทเรียน Linux Server Deployment & SSH Mastery นี้ได้ไหม

ได้ บทเรียน Linux Server Deployment & SSH Mastery ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การกำหนดค่าเครือข่ายพื้นฐาน
  2. ทำความเข้าใจไฟร์วอลล์ (UFW/firewalld)
  3. การจัดการและรักษาความปลอดภัยพอร์ต
  4. การกำหนดค่า DNS และการแก้ไขปัญหา
← กลับไปที่ Linux Server Deployment & SSH Mastery