ย้ายโดเมนเข้า Cloudflare แล้วเมลหาย — เพราะ record เมลถูกเปิดพร็อกซี (ส้ม)
พร็อกซีของ Cloudflare (เมฆส้ม) แบกเฉพาะทราฟฟิก HTTP/S เท่านั้น ถ้าเผลอเปิดพร็อกซีให้ record ที่ใช้ส่งเมล ทราฟฟิก SMTP/IMAP จะวิ่งไปชนกำแพงจนเมลหายทั้งโดเมน — record เมลต้องเป็น DNS-only (เทา) เสมอ
พอดีผมย้ายโดเมนเข้า Cloudflare ให้ DNS ชี้ตรงกับโฮสต์อยู่บ่อย ตั้งเสร็จเว็บขึ้นปกติดี แต่บางทีอยู่ดี ๆ เมลส่งเข้าไม่ได้ หรือส่งออกไม่ผ่าน ทั้งที่ไม่ได้แตะอะไรฝั่งเมลเลย ต้นเหตุที่เจอซ้ำสุดคือเรื่องเดียว เลยเอามาเล่าไว้พร้อมกับดักรอบข้างที่มากับการตั้ง Cloudflare
กฎข้อเดียวที่ทำเมลหาย: record เมลต้องเป็นเทา ไม่ใช่ส้ม
Cloudflare พร็อกซี (ไอคอนเมฆสีส้ม) แบกได้เฉพาะ HTTP/HTTPS เท่านั้น ทราฟฟิกเมล (SMTP/IMAP/POP) วิ่งผ่านพร็อกซีไม่ได้ ถ้าเผลอเปิดพร็อกซีให้ record ที่เกี่ยวกับเมล ทราฟฟิกเมลจะวิ่งไปชนพร็อกซีแล้วตกหาย
mail, smtp, pop, imap, webmail และ host ที่ MX ชี้ไปหา ต้องเป็นเทาหมด — ถ้าเป็นส้ม เมลจะส่งเข้าไม่ได้ทั้งโดเมน โดยที่เว็บยังทำงานปกติ ทำให้หลงว่า "ไม่ได้แตะอะไร"
เช็คว่า 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 จริง
ถ้า 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 ปลายทางไม่ผ่าน
ตอนโดเมนใหม่ที่โฮสต์ยังเสิร์ฟ cert เริ่มต้น ตั้ง SSL เป็น Full ก่อน พอออก cert ของโดเมนได้แล้ว (Let's Encrypt) ค่อยเลื่อนเป็น Full (strict)
สรุปกฎเวลาเอาโดเมนเข้า Cloudflare
- record เว็บ (www/root) เป็นส้มได้ — เร่งความเร็ว + ซ่อน IP
- record เมล (mail/smtp/pop/imap + MX target) ต้องเทาทุกตัว
- SPF/DKIM/DMARC (TXT) เป็นเทา
- ตั้ง API token: สิทธิ์ Zone:DNS:Edit + Zone:Zone:Read, allowlist ทั้งช่วง ISP
- โดเมนใหม่ SSL = Full ก่อน แล้วค่อยเลื่อนเป็น strict
หัวใจคือเข้าใจว่าพร็อกซีของ Cloudflare แบกแค่ HTTP/S ทุกอย่างที่ไม่ใช่เว็บต้องปล่อยตรงไปโฮสต์ (เทา) — กฎเดียวนี้กันเคส "เมลหายหลังย้าย Cloudflare" ได้เกือบทั้งหมด ใครดูแลหลายโดเมนบนโฮสต์เดียวเอาไปทำเป็น checklist ได้ตามสะดวกครับ ตรงไหนผมอธิบายตกหล่นหรือพิมพ์ผิด เดี๋ยวกลับมาแก้เพิ่มให้ภายหลังครับ
อยากให้เราทำให้ไหม?
ให้เราช่วยติดตั้ง ตั้งค่า ย้ายระบบ หรือแก้ปัญหาเซิร์ฟเวอร์ เพื่อให้คุณมีเวลาไปทำงานที่สำคัญกว่า
เคยเจองานแบบนี้ไหม? ติดตรงไหน?
มาแลกวิธีกันต่อในบอร์ด LinuxThai



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