การกำหนดค่า DNS และการแก้ไขปัญหา
ทำความเข้าใจวิธีที่เซิร์ฟเวอร์ Linux แปลงชื่อโฮสต์เป็นที่อยู่ IP ตั้งค่าตัวแก้ไขชื่อ แก้ไข /etc/hosts และใช้ dig, nslookup กับ host เพื่อวินิจฉัยปัญหา DNS ที่ทำให้การเชื่อมต่อล้มเหลวแม้เครือข่ายจะทำงานปกติ
การกำหนดค่า 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— ที่อยู่ IPv4AAAA— ที่อยู่ IPv6MX— เซิร์ฟเวอร์จดหมายNS— เซิร์ฟเวอร์ชื่อCNAME— ชื่อแทน
dig example.com MX +short
dig example.com NS +shortnslookup และ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การกำหนดค่าเครือข่ายพื้นฐาน
- ทำความเข้าใจไฟร์วอลล์ (UFW/firewalld)
- การจัดการและรักษาความปลอดภัยพอร์ต
- การกำหนดค่า DNS และการแก้ไขปัญหา