27/10/2026 09:39น.

DNS คืออะไร ทำงานอย่างไร เบื้องหลังการเปิดเว็บจากชื่อโดเมน
#dns คืออะไร
#dns ทำงานอย่างไร
#เซิร์ฟเวอร์ dns
#dns record
#ttl dns
#dns google 8.8.8.8
#nslookup
เวลามีน้องๆ ถามทีมเราว่า "ซื้อโดเมนแล้ว ตั้ง DNS แล้ว ทำไมเปิดเว็บยังเจอหน้าเก่าอยู่เลย" คำตอบที่เราตอบบ่อยที่สุดคือ "ยังไม่ได้พัง แค่ยังไม่หมดเวลาจำ" ฟังแล้วอาจงงกว่าเดิม เพราะคำถามจริงๆ ที่อยู่ข้างหลังคือ DNS คืออะไร และมันทำงานอย่างไรตั้งแต่เราพิมพ์ชื่อเว็บลงไป
วันนี้ Superdev Academy จะพาไปดูทีละด่านว่า หลังพิมพ์ www.superdevacademy.com แล้วกด Enter เกิดอะไรขึ้นบ้าง พร้อมรันคำสั่งจริงให้ดูผลลัพธ์จริง คุณจะลองตามบนเครื่องตัวเองได้ทันที
พิมพ์ชื่อเว็บแล้ว ทำไมคอมพิวเตอร์ยังไม่รู้ว่าต้องไปที่ไหน
คอมพิวเตอร์บนอินเทอร์เน็ตคุยกันด้วยตัวเลขที่เรียกว่า IP Address (ที่อยู่ของเครื่องบนเครือข่าย) ส่วนคนจำชื่ออย่าง superdevacademy.com ได้ง่ายกว่ามาก ระบบที่แปลงชื่อโดเมนให้กลายเป็น IP คือ DNS (Domain Name System)
ลองนึกภาพสมุดรายชื่อเล่มหนึ่ง คุณรู้แค่ชื่อเพื่อน แต่ต้องเปิดสมุดถึงจะรู้ที่อยู่บ้าน DNS คือสมุดเล่มนั้น เพียงแต่มันไม่ได้อยู่ในเครื่องเดียว มันกระจายอยู่ทั่วโลก และแต่ละส่วนมีเจ้าของดูแลแยกกัน
มาตรฐานตั้งต้นของ DNS คือ RFC 1034 ซึ่งแบ่ง DNS ออกเป็น 3 ส่วน คือ ชื่อโดเมนกับข้อมูลที่ผูกกับชื่อนั้น (Resource Record), Name Server ที่เก็บข้อมูลจริง และ Resolver ที่คอยไปถามแทนเครื่องของคุณ พูดง่ายๆ คือมีสมุด มีคนเก็บสมุด และมีคนวิ่งไปเปิดสมุดให้
4 ด่านที่คำถาม "www.superdevacademy.com อยู่ที่ไหน" ต้องเดินผ่าน
เมื่อเบราว์เซอร์ต้องการ IP มันจะไม่ได้ไล่ถามทั่วโลกเอง แต่ส่งคำถามให้ Recursive Resolver (ตัวกลางที่ไปถามต่อแทนเรา) ซึ่งมักเป็นของผู้ให้บริการเน็ต หรือของ Google และ Cloudflare ถ้าคุณตั้งไว้ จากนั้น Resolver จะเดินทีละด่านแบบนี้
Root Server: ด่านบนสุด ไม่รู้คำตอบสุดท้าย แต่รู้ว่าใครดูแลนามสกุล .com
TLD Server: ผู้ดูแล .com ไม่รู้ IP ของเว็บเรา แต่รู้ว่า Name Server ของ superdevacademy.com คือเครื่องไหน
Authoritative Name Server: เครื่องที่ถือข้อมูลจริงของโดเมนนี้ และตอบ IP กลับมาได้
กลับถึงเครื่องคุณ: Resolver ส่ง IP ให้เบราว์เซอร์ แล้วจำคำตอบไว้ชั่วคราวเผื่อมีคนถามซ้ำ
ตามข้อมูลของ IANA ชั้น Root ถูกกำหนดเป็น 13 ชื่อ ตั้งแต่ a.root-servers.net ถึง m.root-servers.net แต่ไม่ได้แปลว่ามีแค่ 13 เครื่อง IANA ระบุว่าเบื้องหลังเป็นเครือข่ายเซิร์ฟเวอร์หลายร้อยเครื่องในหลายประเทศ ดูรายชื่อผู้ดูแลทั้ง 13 ชื่อได้ที่ หน้า Root Servers ของ IANA
ทีมเราลองให้เครื่องเดินทั้ง 4 ด่านจริงด้วยคำสั่ง dig +trace เมื่อวันที่ 30 กันยายน 2026 ผลที่ตัดมาเฉพาะส่วนสำคัญเป็นแบบนี้
$ dig +trace www.superdevacademy.com
. 3858 IN NS a.root-servers.net.
...
com. 172800 IN NS a.gtld-servers.net.
...
superdevacademy.com. 172800 IN NS fish.ns.cloudflare.com.
superdevacademy.com. 172800 IN NS leonard.ns.cloudflare.com.
www.superdevacademy.com. 300 IN A 104.21.3.159
www.superdevacademy.com. 300 IN A 172.67.130.236อ่านจากบนลงล่างคือด่าน Root ชี้ไปที่ผู้ดูแล .com ผู้ดูแล .com ชี้ต่อไปที่ Name Server ของ Cloudflare และ fish.ns.cloudflare.com เป็นคนตอบ IP สุดท้ายสองตัว คือ 104.21.3.159 กับ 172.67.130.236 ตัวเลขเหล่านี้เป็นค่า ณ วันที่เรารัน วันที่คุณลองอาจได้ค่าไม่เหมือนกัน และนั่นก็เป็นเรื่องปกติ
ลองรัน dig และ nslookup ด้วยตัวเอง
ไม่ต้องเชื่อเราอย่างเดียว เปิด Terminal แล้วลองเองได้เลย บน macOS มีคำสั่ง dig มาให้ ส่วน Windows ใช้ nslookup ได้ใน Command Prompt ถ้ายังไม่คุ้นกับหน้าจอดำ ลองอ่าน คำสั่ง Terminal/Command Line ที่ควรรู้ ก่อนก็ได้
$ dig www.superdevacademy.com +noall +answer
www.superdevacademy.com. 300 IN A 104.21.3.159
www.superdevacademy.com. 300 IN A 172.67.130.236$ nslookup www.superdevacademy.com 8.8.8.8
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: www.superdevacademy.com
Address: 104.21.3.159
Name: www.superdevacademy.com
Address: 172.67.130.236คำว่า Non-authoritative answer ใน nslookup ไม่ได้แปลว่าคำตอบผิด มันแค่บอกว่าคำตอบนี้มาจาก Resolver (ในที่นี้คือ 8.8.8.8) ไม่ได้มาจาก Authoritative Name Server ของโดเมนโดยตรง ส่วนตัวเลข 300 ในผลของ dig คือ TTL ซึ่งเป็นกุญแจของปัญหา "แก้แล้วไม่เปลี่ยน" ที่เราจะพูดถึงในอีกสองหัวข้อ
Record 5 แบบที่มือใหม่เจอบ่อยที่สุด
ข้อมูลในสมุด DNS ไม่ได้มีแค่ IP แต่แบ่งเป็นหลายประเภทที่เรียกว่า Record แต่ละแบบตอบคำถามคนละเรื่อง ตัวอย่างข้างล่างมาจากการรัน dig จริงทั้งหมด
A: ชื่อนี้ชี้ไปที่ IPv4 ตัวไหน RFC 1035 ระบุว่าเครื่องที่มีหลาย IP ก็มีหลาย A Record ได้ ตรงกับที่ superdevacademy.com ตอบกลับมาสองตัว
AAAA: แบบเดียวกับ A แต่เก็บ IPv6 ตาม RFC 3596 เช่น superdevacademy.com ตอบ 2606:4700:3032::6815:39f
CNAME: บอกว่าชื่อนี้เป็นชื่อเล่นของอีกชื่อหนึ่ง เช่น www.github.com เป็น CNAME ไปที่ github.com แล้ว Resolver ค่อยไปหา A ของ github.com ต่อ
MX: บอกว่าอีเมลของโดเมนนี้ต้องส่งไปที่เซิร์ฟเวอร์ไหน gmail.com มี MX 5 ตัว ค่าความสำคัญตั้งแต่ 5 ถึง 40 และ RFC 1035 กำหนดว่าตัวเลขน้อยกว่าได้รับเลือกก่อน
TXT: เก็บข้อความ มักใช้ยืนยันความเป็นเจ้าของโดเมน superdevacademy.com มี TXT ที่ขึ้นต้นด้วย google-site-verification สำหรับยืนยันกับ Google
$ dig @1.1.1.1 www.github.com +noall +answer
www.github.com. 1395 IN CNAME github.com.
github.com. 60 IN A 20.205.243.166สังเกตว่า superdevacademy.com ไม่มี MX ตอบกลับมาเลยตอนเราลอง ซึ่งไม่ใช่ข้อผิดพลาด โดเมนหนึ่งจะมี Record ประเภทไหนบ้างขึ้นอยู่กับว่าเจ้าของใช้งานอะไร
TTL: ทำไมแก้ DNS แล้วเว็บยังไม่เปลี่ยน
กลับมาที่คำถามของน้องๆ ตอนต้น ทุก Record มีค่า TTL (Time To Live) เป็นหน่วยวินาที RFC 1035 อธิบายว่าเป็นระยะเวลาที่ Record นั้นถูก Cache (เก็บจำไว้ชั่วคราว) ได้ ก่อนต้องกลับไปถามต้นทางใหม่ และถ้า TTL เป็น 0 แปลว่าห้ามเก็บจำ
A Record ของ www.superdevacademy.com มี TTL 300 วินาที แปลว่า Resolver ที่เพิ่งถามไปจะใช้คำตอบเดิมได้นานสุด 5 นาที ถ้าเจ้าของเว็บเปลี่ยน IP ในนาทีที่ 1 คนที่ใช้ Resolver ตัวนั้นก็ยังถูกส่งไป IP เก่าจนกว่าจะหมดเวลา เว็บไม่ได้พัง แค่คำตอบเก่ายังไม่หมดอายุ
ด่านที่ช้ากว่านั้นคือการย้าย Name Server จากผล dig +trace ด้านบน ผู้ดูแล .com ส่ง NS ของ superdevacademy.com กลับมาพร้อม TTL 172800 วินาที หรือ 48 ชั่วโมง นี่คือเหตุผลที่การย้ายโดเมนไปอยู่กับผู้ให้บริการ DNS เจ้าใหม่มักต้องรอนานกว่าการแก้ A Record ธรรมดา
สิ่งที่ควรทำก่อนย้ายเว็บ: ลด TTL ของ Record ที่จะเปลี่ยนไว้ล่วงหน้า เป็นเวลาอย่างน้อยเท่ากับค่า TTL เดิม เพื่อให้ Cache ที่ถือค่า TTL ยาวแบบเก่าหมดอายุไปก่อนวันย้ายจริง
8.8.8.8 และ 1.1.1.1 คืออะไร
ทั้งสองตัวคือ Public DNS Resolver ที่ใครก็ตั้งใช้ได้ แทน Resolver ที่ผู้ให้บริการเน็ตให้มา ตาม เอกสารของ Google Public DNS ที่อยู่ IPv4 คือ 8.8.8.8 และ 8.8.4.4 ส่วน IPv6 คือ 2001:4860:4860::8888 และ 2001:4860:4860::8844 และ Google แนะนำให้ตั้งอย่างน้อยสองที่อยู่
ฝั่ง Cloudflare ระบุใน เอกสาร 1.1.1.1 ว่าใช้ 1.1.1.1 และ 1.0.0.1 สำหรับ IPv4 และ 2606:4700:4700::1111 กับ 2606:4700:4700::1001 สำหรับ IPv6 โดยให้สองที่อยู่ไว้สำรองกัน
เราลองถาม www.superdevacademy.com ผ่านทั้ง 8.8.8.8 และ 1.1.1.1 ได้ IP ชุดเดียวกัน คือ 104.21.3.159 กับ 172.67.130.236 ซึ่งเป็นสิ่งที่ควรเป็น เพราะทั้งคู่ไปถามต้นทางเดียวกัน ส่วนคำถามว่าตัวไหนเร็วกว่า เราไม่ฟันธง เพราะผลขึ้นกับเน็ตและตำแหน่งของแต่ละคน และเราไม่มีผลวัดที่ตรวจสอบได้มายืนยัน
DNS, Hosting, Domain Registrar ไม่ใช่ที่เดียวกัน
มือใหม่หลายคนสับสนสามคำนี้ ซึ่งไม่ได้แปลก เพราะบางบริษัทขายรวมกันในแพ็กเดียว แต่หน้าที่แยกกันชัด
Domain Registrar: ที่ที่คุณจดชื่อโดเมนและต่ออายุทุกปี เป็นคนบอกผู้ดูแล .com ว่าโดเมนนี้ใช้ Name Server ของใคร
DNS (Authoritative Name Server): ที่ที่ Record จริงอยู่ ในตัวอย่างของเราคือ fish.ns.cloudflare.com และ leonard.ns.cloudflare.com
Hosting: เครื่องที่เก็บไฟล์และโค้ดของเว็บ และตอบหน้าเว็บกลับมาเมื่อเบราว์เซอร์มาถึง IP นั้น ถ้าอยากรู้ว่าบนเครื่องนั้นมีอะไรทำงานอยู่ ลองอ่าน LAMP Stack คืออะไร
สามส่วนนี้อยู่คนละเจ้าก็ได้ จดโดเมนที่หนึ่ง ใช้ DNS ของอีกที่ แล้วเช่าเซิร์ฟเวอร์อีกที่ก็ทำงานได้ปกติ และถ้าอยากลองเปิดเว็บจากเครื่องตัวเองออกสู่อินเทอร์เน็ตด้วยโดเมนจริง บทความ วิธีใช้ Cloudflare Tunnel เชื่อม Localhost ออกเน็ต จะได้ใช้ความรู้เรื่อง DNS จากบทนี้ต่อทันที
DNS ตอบถูกแล้ว แต่เว็บยังเปิดไม่ได้
ถึงตรงนี้อาจรู้สึกว่าเว็บเปิดไม่ขึ้นเมื่อไรต้องโทษ DNS ก่อน จริงๆ ก็เป็นจุดแรกที่ควรเช็ค และเช็คได้ในคำสั่งเดียว แต่ DNS มีหน้าที่แค่บอกที่อยู่ ถ้า dig ตอบ IP ถูกต้องแล้ว ปัญหาอยู่ที่ด่านถัดไป คือเซิร์ฟเวอร์ที่ IP นั้นตอบอะไรกลับมา
DNS บอกแค่ที่อยู่ ไม่ได้เป็นคนส่งหน้าเว็บมาให้
วิธีแยกให้ขาดคือดูว่าเบราว์เซอร์ได้อะไร ถ้าขึ้นว่าหาเซิร์ฟเวอร์ไม่เจอ ให้กลับไปดู DNS แต่ถ้าได้หน้า Error พร้อมตัวเลขอย่าง 404 หรือ 500 แปลว่า DNS ทำงานเสร็จแล้ว ตัวเลขพวกนั้นมาจากเซิร์ฟเวอร์ อ่านต่อได้ใน HTTP Status Code คืออะไร
สรุป: DNS คืออะไร ทำงานอย่างไร
DNS คือระบบที่แปลงชื่อโดเมนให้เป็น IP โดยมี Resolver วิ่งถามต่อเป็นทอดจาก Root ไป TLD ไปจนถึง Authoritative Name Server แล้วจำคำตอบไว้ตามค่า TTL อาการ "แก้ DNS แล้วเว็บยังไม่เปลี่ยน" ส่วนใหญ่จึงไม่ใช่ความผิดพลาด แต่เป็นคำตอบเก่าที่ยังไม่หมดอายุ
ลองเลือกโดเมนที่คุณใช้อยู่ทุกวันสักอัน แล้วรัน dig +trace ดูเอง อ่านทีละบรรทัดว่าใครชี้ไปหาใคร TTL เท่าไร ทำครั้งเดียวแล้วคำว่า DNS จะไม่ใช่กล่องดำอีกต่อไป
ติดตามบทความและเทคนิคสำหรับคนเริ่มต้นสายโปรแกรมเมอร์ได้ที่ช่องทางของเรา
Facebook: Superdev Academy Thailand (https://www.facebook.com/superdev.academy.th)
YouTube: Superdev Academy Channel (https://www.youtube.com/@SuperdevAcademy)
Instagram: @superdevacademy (https://www.instagram.com/superdevacademy/)
TikTok: @superdevacademy (https://www.tiktok.com/@superdevacademy?lang=th-TH)
FAQ: คำถามที่พบบ่อยเกี่ยวกับบทความนี้
รวมคำถามและคำตอบที่ช่วยให้คุณเข้าใจเนื้อหาในบทความนี้ได้ดียิ่งขึ้น