DNS คืออะไร?
DNS (Domain Name System) คือระบบที่แปลงชื่อโดเมนที่มนุษย์อ่านได้ (เช่น yourthaihost.com) ให้เป็น IP address ที่คอมพิวเตอร์เข้าใจ (เช่น 103.28.230.100) เปรียบได้กับสมุดโทรศัพท์ของอินเทอร์เน็ต
เมื่อคุณพิมพ์ URL ใน browser กระบวนการ DNS resolution เกิดขึ้นดังนี้: Browser ถามที่ Recursive Resolver (ของ ISP หรือ 8.8.8.8) → Resolver ถาม Root Nameserver → Root ชี้ไปที่ TLD Nameserver (.com, .th) → TLD ชี้ไปที่ Authoritative Nameserver ของโดเมน → ได้ IP address กลับมา ทั้งหมดนี้ใช้เวลาน้อยกว่า 100ms
Nameserver คืออะไร?
Nameserver คือเซิร์ฟเวอร์ที่ทำหน้าที่เก็บข้อมูล DNS records ของโดเมน เมื่อคุณสมัคร hosting ผู้ให้บริการจะให้ Nameserver 2 ตัวขึ้นไป เช่น:
ns1.yourhosting.com
ns2.yourhosting.com
คุณต้องนำ Nameserver เหล่านี้ไปกรอกที่ Domain Registrar เพื่อให้โดเมนของคุณชี้มาที่ hosting ที่ต้องการ
ประเภทของ DNS Records
A Record — ชี้โดเมนไปที่ IPv4
# ตัวอย่าง A record
yourdomain.com. 3600 IN A 103.28.230.100
www.yourdomain.com. 3600 IN A 103.28.230.100
# ความหมาย: yourdomain.com ชี้ไปที่ IP 103.28.230.100
# TTL: 3600 วินาที (1 ชั่วโมง)
AAAA Record — ชี้โดเมนไปที่ IPv6
# ตัวอย่าง AAAA record
yourdomain.com. 3600 IN AAAA 2001:db8::1
CNAME Record — ชี้ subdomain ไปที่โดเมนอื่น
# ตัวอย่าง CNAME record
www.yourdomain.com. 3600 IN CNAME yourdomain.com.
mail.yourdomain.com. 3600 IN CNAME ghs.google.com.
shop.yourdomain.com. 3600 IN CNAME stores.myshopify.com.
MX Record — กำหนด mail server
# ตัวอย่าง MX record (Google Workspace)
yourdomain.com. 3600 IN MX 1 aspmx.l.google.com.
yourdomain.com. 3600 IN MX 5 alt1.aspmx.l.google.com.
yourdomain.com. 3600 IN MX 5 alt2.aspmx.l.google.com.
yourdomain.com. 3600 IN MX 10 alt3.aspmx.l.google.com.
yourdomain.com. 3600 IN MX 10 alt4.aspmx.l.google.com.
# ตัวเลข priority — น้อยกว่า = สำคัญกว่า
TXT Record — ข้อมูลข้อความทั่วไป
# ใช้สำหรับ domain verification
yourdomain.com. 3600 IN TXT "google-site-verification=abc123..."
# ใช้สำหรับ SPF (ป้องกัน email spoofing)
yourdomain.com. 3600 IN TXT "v=spf1 include:_spf.google.com ~all"
# ใช้สำหรับ DKIM
mail._domainkey.yourdomain.com. 3600 IN TXT "v=DKIM1; k=rsa; p=MIIBIjAN..."
NS Record — ระบุ Nameserver
# ตัวอย่าง NS record
yourdomain.com. 86400 IN NS ns1.yourhosting.com.
yourdomain.com. 86400 IN NS ns2.yourhosting.com.
ขั้นตอนเปลี่ยน Nameserver
- รับ Nameserver จาก Hosting Provider — ดูใน welcome email หรือ Client Area ของ hosting
- Login Domain Registrar — เข้าไปที่เว็บที่จดโดเมน
- ไปที่ Domain Management — เลือกโดเมนที่ต้องการแก้ไข
- หา Nameserver Settings — มักอยู่ที่ "Manage DNS" หรือ "Nameservers"
- เปลี่ยนเป็น Custom Nameserver — ลบ nameserver เก่าและใส่ nameserver ใหม่จาก hosting
- บันทึกการเปลี่ยนแปลง — คลิก Save หรือ Update
- รอ Propagation — ใช้เวลา 4-48 ชั่วโมง
DNS Propagation คืออะไร?
หลังเปลี่ยน Nameserver หรือ DNS record ข้อมูลใหม่ต้องกระจายไปยัง DNS resolver ทั่วโลก กระบวนการนี้เรียกว่า DNS propagation ใช้เวลาตั้งแต่ไม่กี่นาทีจนถึง 72 ชั่วโมง ขึ้นอยู่กับ TTL (Time to Live) ของ record เดิม
ในระหว่างที่ propagate ผู้ใช้บางคนอาจเห็นเว็บเก่าและบางคนเห็นเว็บใหม่ ขึ้นอยู่กับว่า DNS resolver ที่พวกเขาใช้อัพเดทแล้วหรือยัง
ตรวจสอบว่า DNS ทำงานถูกต้อง
# ตรวจสอบ A record
dig yourdomain.com A +short
# ตรวจสอบ Nameserver ปัจจุบัน
dig yourdomain.com NS +short
# ตรวจสอบ MX record
dig yourdomain.com MX +short
# ตรวจสอบผ่าน nameserver เฉพาะ (ข้าม local cache)
dig @8.8.8.8 yourdomain.com A +short
dig @1.1.1.1 yourdomain.com A +short
# ตรวจสอบด้วย nslookup
nslookup yourdomain.com
nslookup -type=mx yourdomain.com
https://dnschecker.org เพื่อตรวจสอบ DNS propagation จาก location ต่างๆ ทั่วโลกพร้อมกัน ช่วยให้รู้ว่า propagate ไปกี่ % แล้วแก้ปัญหาที่พบบ่อย
Error: "DNS not propagated" — เว็บยังไม่ขึ้นหลัง 2 ชั่วโมง
Nameserver อาจยังไม่ถูกตั้งค่าที่ Domain Registrar หรือ TTL เดิมสูงมากทำให้ใช้เวลานาน
หลังเปลี่ยน Nameserver แล้ว ควรตรวจด้วย เครื่องมือตรวจ Nameserver ของ dnsxray.com ที่ query ทุก NS ของโดเมนพร้อมกัน เทียบ SOA Serial ว่าตรงกันทุกตัวหรือไม่ พร้อมวัดความเร็วตอบสนอง — ถ้า Serial ไม่ตรงแปลว่า Zone ยัง sync ไม่ครบ
# ตรวจสอบว่า Nameserver ถูกเปลี่ยนแล้ว
whois yourdomain.com | grep -i "Name Server"
# ถ้า Nameserver ยังเป็นเดิม แสดงว่ายังไม่ได้บันทึกที่ Registrar
# Login Registrar อีกครั้งและตรวจสอบ
Error: "Wrong A record" — เว็บชี้ไปที่ IP ผิด
A record ถูกตั้งค่าผิดหรือยังเป็น IP เก่า
# ตรวจสอบ IP ที่โดเมนชี้ไป
dig yourdomain.com A +short
# เปรียบเทียบกับ IP ของ hosting
# IP ของ hosting ดูได้จาก cPanel > General Information หรือ welcome email
# แก้ไข A record ใน cPanel > Zone Editor
# หรือที่ Domain Registrar ถ้าใช้ registrar DNS
Email ส่งไม่ออกหลังย้าย hosting
MX record ยังชี้ไปที่ server เดิม ต้องอัพเดท MX record ให้ชี้มายัง hosting ใหม่
# ตรวจสอบ MX record ปัจจุบัน
dig yourdomain.com MX +short
# ถ้าต้องการให้ email อยู่บน cPanel hosting ใหม่
# ใน cPanel > Zone Editor > เพิ่ม MX record
# Hostname: yourdomain.com
# Priority: 0
# Destination: mail.yourdomain.com
# และเพิ่ม A record สำหรับ mail
# mail.yourdomain.com -> IP ของ hosting ใหม่
TTL สูงมาก ทำให้ propagation ช้า
ถ้า TTL ตั้งไว้สูง เช่น 86400 (1 วัน) DNS resolver จะ cache ค่าเก่าไว้นาน
# ตรวจสอบ TTL ปัจจุบัน
dig yourdomain.com A
# ค่า TTL อยู่ในคอลัมน์ที่ 2 ของ answer section
# yourdomain.com. 3600 IN A 103.28.230.100
# ^^^^— TTL = 3600 วินาที
# แก้ไขโดยลด TTL ก่อนเปลี่ยน IP
# จากนั้นรอให้ TTL เดิมหมดอายุแล้วค่อยเปลี่ยน IP
คำถามที่พบบ่อย
ควรใช้ Registrar DNS หรือ Hosting DNS?
ถ้า hosting เดียวกันกับ registrar ใช้ hosting DNS จะสะดวกกว่า แต่ถ้าต้องการความยืดหยุ่นสูงสุด แนะนำให้ใช้ Cloudflare DNS ซึ่งฟรี เร็วกว่า และมีฟีเจอร์ครบครัน เช่น proxy, firewall, page rules
CNAME กับ A Record ต่างกันอย่างไร?
A Record ชี้ไปที่ IP address โดยตรง ส่วน CNAME ชี้ไปที่ชื่อโดเมนอื่น ไม่สามารถใช้ CNAME กับ root domain (apex domain) ได้ ต้องใช้ A Record แทน ข้อดีของ CNAME คือถ้า IP เปลี่ยน ต้องแก้แค่ที่ A record เดียว CNAME ที่ชี้มาจะอัพเดทตามอัตโนมัติ
DNS Propagation ช้ามาก จะเร่งได้อย่างไร?
ลด TTL ล่วงหน้าก่อนเปลี่ยน Nameserver คือวิธีเดียวที่ช่วยได้ นอกจากนี้ล้าง DNS cache บนเครื่องตัวเองด้วยคำสั่ง ipconfig /flushdns (Windows) หรือ sudo dscacheutil -flushcache (macOS) ก็ช่วยให้เห็นผลเร็วขึ้นสำหรับเครื่องของคุณเอง