network cable และ DNS

ตั้งค่า DNS บน VPS ให้ถูกต้อง ลด Email ตกกอง Spam

มิถุนายน 2026 · อ่าน 7 นาที

DNS เป็นรากฐานที่ทุกอย่างบนอินเทอร์เน็ตพึ่งพา ตั้งค่าผิดทีเดียว email ไปกอง spam, เว็บเปิดไม่ได้, หรือ SSL certificate ออกไม่ได้ บทความนี้ครอบคลุม record สำคัญทั้งหมด


DNS Record พื้นฐานที่ต้องรู้

Record Typeหน้าที่ตัวอย่าง
Aชี้โดเมนไปที่ IPv4example.com → 1.2.3.4
AAAAชี้โดเมนไปที่ IPv6example.com → 2001:db8::1
CNAMEชี้โดเมนไปโดเมนอื่นwww → example.com
MXกำหนด mail servermail.example.com priority 10
TXTข้อมูลทั่วไป SPF/DKIM/DMARCv=spf1 ip4:1.2.3.4 ~all
NSกำหนด nameserverns1.example.com
PTRReverse DNS (IP → โดเมน)4.3.2.1 → mail.example.com

A Record: ชี้โดเมนไปที่ VPS

ตั้งค่าใน DNS panel ของ registrar หรือ Cloudflare:

example.com     A  1.2.3.4    TTL 3600
www.example.com A  1.2.3.4    TTL 3600

ตรวจสอบว่า propagate แล้วด้วย:

dig example.com A +short
# ควรได้ IP ของ VPS

MX Record: กำหนด Mail Server

ถ้าใช้ Gmail Workspace หรือ email provider ภายนอก:

example.com  MX  10  aspmx.l.google.com.
example.com  MX  20  alt1.aspmx.l.google.com.

ถ้ารัน mail server เองบน VPS:

example.com  MX  10  mail.example.com.
mail.example.com  A  1.2.3.4

SPF Record: ป้องกัน Email Spoofing

SPF บอกว่า IP ไหนได้รับอนุญาตให้ส่ง email ในนามโดเมนของคุณ:

example.com  TXT  "v=spf1 ip4:1.2.3.4 ~all"

~all หมายถึง softfail (email จาก IP อื่นอาจถูกมองว่าเป็น spam)
-all หมายถึง hardfail (ปฏิเสธทันที เข้มข้นกว่า)

DKIM: เซ็นชื่อ Email ด้วย Cryptographic Signature

DKIM เพิ่ม digital signature ในทุก email ที่ส่งออก ผู้รับสามารถตรวจสอบว่า email ไม่ถูกแก้ไขระหว่างทาง

Key จะได้จาก mail server software (เช่น Postfix + OpenDKIM):

mail._domainkey.example.com  TXT  "v=DKIM1; k=rsa; p=MIGfMA0GCSqG..."

DMARC: Policy สำหรับ Email ที่ Fail SPF/DKIM

_dmarc.example.com  TXT  "v=DMARC1; p=quarantine; rua=mailto:[email protected]"

p=none — แค่ report ไม่ทำอะไร (เริ่มต้นใหม่)
p=quarantine — ส่งไป spam folder
p=reject — ปฏิเสธทันที (เข้มงวดที่สุด)

PTR Record: Reverse DNS สำคัญมากสำหรับ Mail Server

ถ้ารัน mail server เอง PTR record ช่วยให้ email ไม่ถูก reject เพราะ IP ไม่มี reverse DNS

ต้องตั้งค่าผ่าน VPS provider (ไม่ใช่ DNS panel ปกติ) โดยกำหนดให้ IP ของ VPS ชี้กลับมาที่ mail.example.com


ลำดับการตรวจสอบเมื่อ Email ตกกอง Spam

  1. ตรวจ SPF record ว่าครอบคลุม IP ของ server หรือไม่
  2. ตรวจ DKIM ว่า signature ถูกต้องและ record ใน DNS ตรงกัน
  3. ตรวจ PTR record ว่า IP มี reverse DNS ชี้กลับมา
  4. ตรวจว่า IP อยู่ใน blacklist หรือไม่ด้วย MXToolbox
  5. ตรวจ DMARC report ที่ส่งมาที่อีเมล rua ที่กำหนดไว้

คำสั่ง dig ตรวจสอบ DNS Record

# ตรวจ A record
dig example.com A +short

# ตรวจ MX record
dig example.com MX +short

# ตรวจ SPF (TXT record)
dig example.com TXT +short

# ตรวจ DMARC
dig _dmarc.example.com TXT +short

# ตรวจ DKIM (แทน selector ด้วยชื่อจริง เช่น mail หรือ google)
dig mail._domainkey.example.com TXT +short

# ตรวจ PTR (Reverse DNS)
dig -x 1.2.3.4 +short   # แทน IP ด้วย IP จริงของ VPS
ใช้ dnsxray.com: ตรวจ DNS, SPF, DKIM, DMARC และ Blacklist ได้ในหน้าเดียวที่ dnsxray.com ไม่ต้องพิมพ์คำสั่ง dig ทีละตัว

TTL ที่เหมาะสม

สถานการณ์TTL ที่แนะนำเหตุผล
ปกติ (ไม่ได้เปลี่ยน IP บ่อย)3600–86400ลด DNS query, เร็วขึ้น
กำลังจะย้ายเซิร์ฟเวอร์300propagate เร็วขึ้นเมื่อเปลี่ยน IP
หลังย้ายเสร็จกลับเป็น 3600+ลด load บน DNS server

แก้ปัญหาที่พบบ่อย

เว็บเปิดได้แต่ email ไม่ถึงปลายทาง ตกกอง spam

# ตรวจสอบครบทุก record
dig example.com TXT +short     # SPF
dig _dmarc.example.com TXT +short  # DMARC

# ส่งอีเมลทดสอบแล้วตรวจ header
# ใน Gmail: เปิด email → ⋮ → "Show original"
# ดู Authentication-Results ว่า SPF/DKIM pass หรือ fail

DNS propagate ช้า ยังเห็น IP เก่า

DNS propagation ใช้เวลา TTL ของ record เดิม ถ้า TTL เป็น 3600 ต้องรอ 1 ชั่วโมง ตรวจสอบว่า propagate แล้วในแต่ละ region:

# ดูจาก nameserver โดยตรง (ไม่ผ่าน cache)
dig example.com A @8.8.8.8 +short    # Google DNS
dig example.com A @1.1.1.1 +short    # Cloudflare DNS
dig example.com A @208.67.222.222 +short  # OpenDNS

SPF record ยาวเกิน 255 ตัวอักษร

DNS TXT record มีขีดจำกัด 255 bytes per string แก้โดยใช้ include: แทนการใส่ IP ตรง ๆ ทั้งหมด:

# แทน: v=spf1 ip4:1.2.3.4 ip4:5.6.7.8 ip4:... ~all
# ใช้: สร้าง TXT record แยก แล้ว include
# spf1.example.com TXT "v=spf1 ip4:1.2.3.4 ip4:5.6.7.8 ~all"
# example.com     TXT "v=spf1 include:spf1.example.com ~all"

DKIM selector ไม่ match ระหว่าง config กับ DNS

# ดู selector ที่ mail server ใช้ (ใน Postfix + OpenDKIM)
cat /etc/opendkim/KeyTable
# จะเห็น: mail._domainkey.example.com  example.com:mail:/etc/dkim/...

# ตรวจว่า DNS record มีชื่อ selector ตรงกัน
dig mail._domainkey.example.com TXT +short

PTR Record ตั้งไม่ได้ใน DNS panel ปกติ

PTR record ต้องตั้งผ่าน VPS provider โดยตรง ไม่ใช่ DNS registrar เพราะ PTR ขึ้นอยู่กับเจ้าของ IP block ตรวจสอบใน control panel ของ VPS provider ว่ามี field "Reverse DNS" หรือ "PTR record" ให้กรอก hostname


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

SPF, DKIM, DMARC ต้องมีครบทั้งสามไหม?

ควรมีครบเพื่อ email deliverability ที่ดีที่สุด SPF ป้องกัน spoofing ระดับ envelope DKIM เพิ่ม cryptographic signature DMARC ผูกทั้งสองเข้าด้วยกันและบอก mail server ว่าต้องทำอะไรถ้า fail Google และ Yahoo กำหนดให้ต้องมีครบทั้งสามสำหรับผู้ส่งอีเมลปริมาณมาก (Bulk Sender Requirements 2024)

Cloudflare Proxy (Orange Cloud) ส่งผลต่อ DNS record ไหม?

ส่งผลเฉพาะ A/AAAA/CNAME record ที่เปิด proxy MX, TXT (SPF/DKIM/DMARC), SRV ไม่ถูก proxy เสมอ ระวังว่าถ้าเปิด proxy แล้ว IP จริงของ VPS จะซ่อนอยู่ Certbot อาจต้องใช้ DNS challenge แทน HTTP challenge

ตรวจสอบได้อย่างไรว่า IP อยู่ใน blacklist หรือไม่?

ใช้ MXToolbox (mxtoolbox.com/blacklists) หรือ MultiRBL ตรวจ IP ในฐานข้อมูล blacklist กว่า 100 แห่งพร้อมกัน ถ้าพบต้องติดต่อ provider ของ blacklist นั้นเพื่อ delist และแก้ปัญหาที่ทำให้ถูก blacklist ก่อน

TTL ควรตั้งไว้เท่าไร?

ปกติ 3600 วินาที (1 ชั่วโมง) เพียงพอ ถ้าวางแผนจะย้าย server ในเร็ว ๆ นี้ให้ลด TTL เป็น 300 ล่วงหน้า 24–48 ชั่วโมงก่อน เพื่อให้ propagate เร็วขึ้นเมื่อเปลี่ยน IP จริง


สรุป

DNS ที่ตั้งค่าถูกต้องเป็นพื้นฐานที่ขาดไม่ได้ทั้งสำหรับเว็บและ email SPF + DKIM + DMARC ครบทั้งสามตัวช่วยลด email ตกกอง spam ได้อย่างมีนัยสำคัญ และยังช่วยป้องกันคนอื่นปลอมแปลงส่ง email ในชื่อโดเมนของคุณด้วย