EST. 2026 — บันทึกงานเซิร์ฟเวอร์จริง SYSADMIN · SECURITY · AI · DIRECTADMIN เล่มที่ 01
THE SYSADMIN ALMANAC
หน้าหลัก / Network / ย้ายโดเมนเข้า Cloudflare แล้วเมลหาย — เพราะ record เมลถูกเปิดพร็อกซี (ส้ม)
Network

ย้ายโดเมนเข้า Cloudflare แล้วเมลหาย — เพราะ record เมลถูกเปิดพร็อกซี (ส้ม)

โดย Ton-Or ·17 ก.ค. 2026·อ่าน 7 นาที
ย้ายโดเมนเข้า Cloudflare แล้วเมลหาย — เพราะ record เมลถูกเปิดพร็อกซี (ส้ม)

พร็อกซีของ Cloudflare (เมฆส้ม) แบกเฉพาะทราฟฟิก HTTP/S เท่านั้น ถ้าเผลอเปิดพร็อกซีให้ record ที่ใช้ส่งเมล ทราฟฟิก SMTP/IMAP จะวิ่งไปชนกำแพงจนเมลหายทั้งโดเมน — record เมลต้องเป็น DNS-only (เทา) เสมอ

พอดีผมย้ายโดเมนเข้า Cloudflare ให้ DNS ชี้ตรงกับโฮสต์อยู่บ่อย ตั้งเสร็จเว็บขึ้นปกติดี แต่บางทีอยู่ดี ๆ เมลส่งเข้าไม่ได้ หรือส่งออกไม่ผ่าน ทั้งที่ไม่ได้แตะอะไรฝั่งเมลเลย ต้นเหตุที่เจอซ้ำสุดคือเรื่องเดียว เลยเอามาเล่าไว้พร้อมกับดักรอบข้างที่มากับการตั้ง Cloudflare

กฎข้อเดียวที่ทำเมลหาย: record เมลต้องเป็นเทา ไม่ใช่ส้ม

Cloudflare พร็อกซี (ไอคอนเมฆสีส้ม) แบกได้เฉพาะ HTTP/HTTPS เท่านั้น ทราฟฟิกเมล (SMTP/IMAP/POP) วิ่งผ่านพร็อกซีไม่ได้ ถ้าเผลอเปิดพร็อกซีให้ record ที่เกี่ยวกับเมล ทราฟฟิกเมลจะวิ่งไปชนพร็อกซีแล้วตกหาย

เปิดเว็บ (HTTP/S)www เป็นส้มส่ง/รับเมลmail เป็นเทาส่ง/รับเมลmail เป็นส้ม (ผิด)Cloudflareพร็อกซี รับแต่ HTTP/SCloudflareSMTP/POP ผ่านไม่ได้โฮสต์จริงเว็บและเมลDNS-only ตรงถึงโฮสต์
พร็อกซีแบกแค่ HTTP/S เมลที่ผ่านพร็อกซีตกหาย ต้องเป็นเทาเพื่อวิ่งตรงถึงโฮสต์
record เมลต้อง DNS-only (เมฆเทา) ทุกตัว

mail, smtp, pop, imap, webmail และ host ที่ MX ชี้ไปหา ต้องเป็นเทาหมด — ถ้าเป็นส้ม เมลจะส่งเข้าไม่ได้ทั้งโดเมน โดยที่เว็บยังทำงานปกติ ทำให้หลงว่า "ไม่ได้แตะอะไร"

แยกให้ถูกwww / rootเว็บ = ส้มได้·mail / MX targetเมล = ต้องเทา·SPF / DKIM / DMARCTXT = เทา

เช็คว่า MX ชี้ไป host ไหน แล้ว host นั้นต้องเป็นเทา:

dig +short MX example.com          # ได้ mail.example.com
dig +short A mail.example.com      # ต้องได้ IP โฮสต์จริง ไม่ใช่ IP Cloudflare (104.x/172.x)

ถ้า dig A ของ mail host ได้ IP ช่วง Cloudflare = record นั้นยังเป็นส้ม ต้องกดเป็นเทา

กับดักที่ 2: token ผ่าน verify แต่ทำงานไม่ได้

ตอนใช้ API ตั้ง DNF ผ่านสคริปต์ มีกับดักคือ endpoint verify ตอบผ่านแม้ token จะสิทธิ์ไม่พอหรือโดนบล็อก IP — อย่าเชื่อ verify ให้ลอง list zones จริง

token ต้องมีสิทธิ์ครบ + IP อยู่ใน allowlist

ถ้า zones คืนค่าว่าง = token ขาดสิทธิ์ Zone:DNS:Edit + Zone:Zone:Read และถ้าเน็ตต้นทาง IP หมุน (เช่นเน็ตบ้าน/มือถือ) ต้อง allowlist ทั้งช่วง ISP ไม่ใช่ IP เดียว ไม่งั้นพรุ่งนี้ token ใช้ไม่ได้เพราะ IP เปลี่ยน

# อย่าเชื่อ verify — เช็คด้วยการ list zones จริง
curl -s -H "Authorization: Bearer $CF_TOKEN" \
  'https://api.cloudflare.com/client/v4/zones?per_page=50' | \
  python3 -c 'import sys,json; d=json.load(sys.stdin); print("zones:", len(d.get("result",[])))'
# ได้ 0 = token สิทธิ์ไม่พอ หรือ IP ไม่อยู่ใน allowlist

กับดักที่ 3: SSL mode ผิดจนเว็บขึ้น 526

โดเมนที่เพิ่งเข้า Cloudflare แล้วโฮสต์ยังเสิร์ฟด้วย cert เริ่มต้น (ยังไม่ได้ออก cert ของโดเมนใหม่) ถ้าตั้ง SSL เป็น Full (strict) จะเจอ error 526 เพราะ Cloudflare ตรวจ cert ปลายทางไม่ผ่าน

ช่วงเปลี่ยนผ่านใช้ Full ไม่ใช่ Full (strict)

ตอนโดเมนใหม่ที่โฮสต์ยังเสิร์ฟ cert เริ่มต้น ตั้ง SSL เป็น Full ก่อน พอออก cert ของโดเมนได้แล้ว (Let's Encrypt) ค่อยเลื่อนเป็น Full (strict)

สรุปกฎเวลาเอาโดเมนเข้า Cloudflare

  1. record เว็บ (www/root) เป็นส้มได้ — เร่งความเร็ว + ซ่อน IP
  2. record เมล (mail/smtp/pop/imap + MX target) ต้องเทาทุกตัว
  3. SPF/DKIM/DMARC (TXT) เป็นเทา
  4. ตั้ง API token: สิทธิ์ Zone:DNS:Edit + Zone:Zone:Read, allowlist ทั้งช่วง ISP
  5. โดเมนใหม่ SSL = Full ก่อน แล้วค่อยเลื่อนเป็น strict

หัวใจคือเข้าใจว่าพร็อกซีของ Cloudflare แบกแค่ HTTP/S ทุกอย่างที่ไม่ใช่เว็บต้องปล่อยตรงไปโฮสต์ (เทา) — กฎเดียวนี้กันเคส "เมลหายหลังย้าย Cloudflare" ได้เกือบทั้งหมด ใครดูแลหลายโดเมนบนโฮสต์เดียวเอาไปทำเป็น checklist ได้ตามสะดวกครับ ตรงไหนผมอธิบายตกหล่นหรือพิมพ์ผิด เดี๋ยวกลับมาแก้เพิ่มให้ภายหลังครับ

อยากให้เราทำให้ไหม?

ให้เราช่วยติดตั้ง ตั้งค่า ย้ายระบบ หรือแก้ปัญหาเซิร์ฟเวอร์ เพื่อให้คุณมีเวลาไปทำงานที่สำคัญกว่า

คุยเรื่องงานกับเรา

เคยเจองานแบบนี้ไหม? ติดตรงไหน?

มาแลกวิธีกันต่อในบอร์ด LinuxThai

→ คุยต่อในบอร์ด

ความคิดเห็น 0

ยังไม่มีความคิดเห็น — เป็นคนแรกเลย