ตั้งค่า DNS Nameserver ให้โดเมนชี้ถูกต้อง

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

โครงสร้าง DNS Network และ Nameserver

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

  1. รับ Nameserver จาก Hosting Provider — ดูใน welcome email หรือ Client Area ของ hosting
  2. Login Domain Registrar — เข้าไปที่เว็บที่จดโดเมน
  3. ไปที่ Domain Management — เลือกโดเมนที่ต้องการแก้ไข
  4. หา Nameserver Settings — มักอยู่ที่ "Manage DNS" หรือ "Nameservers"
  5. เปลี่ยนเป็น Custom Nameserver — ลบ nameserver เก่าและใส่ nameserver ใหม่จาก hosting
  6. บันทึกการเปลี่ยนแปลง — คลิก Save หรือ Update
  7. รอ Propagation — ใช้เวลา 4-48 ชั่วโมง

DNS Propagation คืออะไร?

หลังเปลี่ยน Nameserver หรือ DNS record ข้อมูลใหม่ต้องกระจายไปยัง DNS resolver ทั่วโลก กระบวนการนี้เรียกว่า DNS propagation ใช้เวลาตั้งแต่ไม่กี่นาทีจนถึง 72 ชั่วโมง ขึ้นอยู่กับ TTL (Time to Live) ของ record เดิม

ในระหว่างที่ propagate ผู้ใช้บางคนอาจเห็นเว็บเก่าและบางคนเห็นเว็บใหม่ ขึ้นอยู่กับว่า DNS resolver ที่พวกเขาใช้อัพเดทแล้วหรือยัง

Tip: ลด TTL ให้เหลือ 300 วินาที (5 นาที) ล่วงหน้า 24 ชั่วโมงก่อนเปลี่ยน Nameserver เพื่อให้ propagation เกิดเร็วขึ้น หลังเปลี่ยนเรียบร้อยแล้วค่อยเพิ่ม TTL กลับเป็น 3600

ตรวจสอบว่า 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
Tip: ใช้เว็บ 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) ก็ช่วยให้เห็นผลเร็วขึ้นสำหรับเครื่องของคุณเอง