A Record vs CNAME: ควรใช้ DNS Record แบบไหนกับเว็บไซต์

A record ชี้ชื่อโดเมนไปยัง IP address ส่วน CNAME ชี้ไปยังโฮสต์เนมอื่น ดูกฎของ apex โดเมน ตารางเลือกใช้ และตัวอย่างสำหรับเว็บไซต์บิลเดอร์

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

ตั้ง CNAME ที่โดเมนหลัก (root domain) ได้ไหม

ตามกฎมาตรฐานของ DNS ไม่ได้ เพราะ CNAME อยู่ร่วมกับ record อื่นภายใต้ชื่อเดียวกันไม่ได้ และโดเมนหลักจะมี NS กับ SOA record อยู่เสมอ ผู้ให้บริการ DNS บางรายแก้ปัญหานี้ด้วยฟีเจอร์ ALIAS, ANAME หรือ CNAME flattening ซึ่งทำงานคล้าย CNAME แต่ตอบกลับเป็น A record จึงควรเช็กเอกสารของผู้ให้บริการว่าเรียกฟีเจอร์นี้ว่าอะไร

CNAME กับ A record แบบไหนเร็วกว่ากัน

สำหรับผู้เข้าชม ความต่างมักเล็กน้อยจนแทบไม่รู้สึก CNAME เพิ่มการค้นหาอีกหนึ่งครั้งในครั้งแรกที่ resolver ต้องตามไปยังชื่อปลายทาง หลังจากนั้นคำตอบจะถูกแคชตามค่า TTL ให้เลือกตามที่โฮสต์แนะนำและตามว่าชื่อนั้นเป็น apex หรือไม่ ไม่ต้องเลือกเพราะเรื่องความเร็ว

ทำไมโฮสต์ให้ CNAME สำหรับ www แต่ให้ IP address สำหรับโดเมนหลัก

เพราะ www เป็นซับโดเมน ซึ่งใช้ CNAME ได้ ส่วนโดเมนหลักคือ apex ซึ่งใช้ไม่ได้ โฮสต์ที่ให้ IP address คงที่สำหรับ apex ก็กำลังให้ค่าที่ A record เก็บได้ ส่วนโฮสต์ที่ให้แค่โฮสต์เนมคาดหวังให้คุณใช้ CNAME กับซับโดเมน หรือใช้ record แบบ ALIAS ที่ apex หากผู้ให้บริการ DNS ของคุณรองรับ

A record กับ CNAME อยู่ร่วมกันภายใต้ชื่อเดียวกันได้ไหม

ไม่ได้ ถ้าชื่อใดมี CNAME แล้ว ชื่อนั้นจะมี A record, MX record, TXT record หรือ record ชนิดอื่นไม่ได้อีก หน้าจอจัดการ DNS อาจไม่ยอมให้บันทึก record ที่สอง หรืออาจบันทึกได้แต่ทำให้การ resolve ทำงานผิดพลาดคาดเดาไม่ได้ ให้ลบ record เก่าก่อนเพิ่มชนิดใหม่

ถ้าเปลี่ยน record ที่ apex อีเมลของฉันจะได้รับผลกระทบไหม

การเปลี่ยน A record ที่โดเมนหลักไม่กระทบอีเมล เพราะการส่งเมลใช้ MX record สิ่งที่อันตรายคือการเพิ่ม CNAME ที่ apex เพราะจะชนกับ MX และ TXT record ที่อีเมลต้องใช้ ให้คง MX record ไว้ และแก้เฉพาะ A หรือ AAAA record เมื่อย้ายเว็บไซต์

สรุปสั้น ๆ: A record ชี้ชื่อไปยัง IPv4 address โดยตรง ส่วน CNAME ชี้ชื่อไปยังโฮสต์เนมอื่น แล้วให้ record ของโฮสต์เนมนั้นกำหนดที่อยู่ปลายทาง ใช้ A record กับโดเมนหลัก (example.com) และใช้ CNAME กับซับโดเมนอย่าง www, shop หรือ blog เมื่อโฮสต์ให้โฮสต์เนมมาแทน IP กฎสำคัญคือ CNAME ตั้งที่โดเมนหลักไม่ได้

แต่ละ record ชี้ไปที่อะไรกันแน่

A record: ชื่อไปยัง IP address

A record ตอบคำถามว่า "ชื่อนี้มี IPv4 address อะไร" ใน zone file จะหน้าตาแบบนี้:

`` example.com. 3600 IN A 192.0.2.10 ``

ที่อยู่นี้ (มาจากช่วงที่สงวนไว้สำหรับเอกสาร) คือเซิร์ฟเวอร์ที่เบราว์เซอร์เชื่อมต่อ ถ้ามี IPv6 address ด้วย ให้เพิ่ม AAAA record คู่กัน และถ้าที่อยู่ของเซิร์ฟเวอร์เปลี่ยน คุณต้องแก้ record เองทุกครั้ง

CNAME record: ชื่อไปยังอีกชื่อหนึ่ง

CNAME ("canonical name") บอกว่า "ชื่อนี้เป็นนามแฝงของอีกชื่อหนึ่ง" และไม่เคยมี IP address อยู่ข้างใน:

`` www.example.com. 3600 IN CNAME sites.hostingprovider.example. ``

Resolver จะเห็นนามแฝง ไปค้นหาชื่อปลายทาง แล้วใช้ A หรือ AAAA record ที่พบที่นั่น ข้อดีคือโฮสต์เปลี่ยนที่อยู่เซิร์ฟเวอร์ได้โดยที่คุณไม่ต้องแตะ DNS ของคุณเลย หากต้องการคำนิยามพื้นฐาน ดู CNAME คืออะไร และหากสนใจ record ชนิดอื่น ๆ ดู อธิบายชนิดของ DNS record

ข้อจำกัดที่ apex อธิบายให้เข้าใจ

Apex (หรือเรียกว่า root, bare หรือ naked domain) คือชื่อที่ไม่มีอะไรนำหน้า เช่น example.com กฎของ DNS ระบุว่าชื่อที่มี CNAME จะมี record ชนิดอื่นอยู่ข้างกันไม่ได้ แต่ apex มี record อื่นอยู่เสมอ:

  • NS record ที่บอกว่าเซิร์ฟเวอร์ใดเป็นผู้มีอำนาจของโดเมน
  • SOA record
  • มักมี MX record สำหรับอีเมล และ TXT record สำหรับการยืนยันและ SPF

CNAME ที่ apex จะขัดกับ record เหล่านี้ทั้งหมด หน้าจอ DNS บางแห่งจะไม่ยอมให้บันทึก บางแห่งบันทึกได้แต่ทำให้การส่งอีเมลหรือการยืนยันโดเมนพังแบบไม่รู้ตัว ซึ่งแย่กว่า

ซับโดเมนไม่มีปัญหานี้ เพราะ www.example.com ตามปกติไม่มี record อื่นที่ชื่อเดียวกัน นั่นคือเหตุผลที่โฮสต์แทบทุกรายให้ชี้ www ด้วย CNAME

วิธีแก้: ALIAS, ANAME และ flattening

ผู้ให้บริการ DNS หลายรายมี record แบบไม่เป็นมาตรฐานที่ทำงานเหมือน CNAME ที่ apex ชื่อเรียกต่างกันไป (ALIAS, ANAME หรือ "CNAME flattening") โดยผู้ให้บริการจะ resolve โฮสต์เนมปลายทางฝั่งตัวเอง แล้วตอบผู้เข้าชมด้วย A record ธรรมดา เนื่องจากเป็นฟีเจอร์ของผู้ให้บริการ ไม่ใช่ส่วนหนึ่งของมาตรฐาน DNS ชื่อ พฤติกรรม และการมีให้ใช้หรือไม่จึงต่างกันไปในแต่ละราย ควรเช็กเอกสารของผู้ให้บริการ DNS ก่อนใช้ และอย่าคิดว่า record ชนิดชื่อเดียวกันจะมีในหน้าจอของผู้ให้บริการรายอื่น

A record vs CNAME: เมื่อไหร่ควรใช้แบบไหน

สถานการณ์ใช้เหตุผล
โดเมนหลัก (example.com) โฮสต์ให้ IP addressA (และ AAAA ถ้าให้ IPv6)Apex เก็บ A record ได้
โดเมนหลัก โฮสต์ให้แค่โฮสต์เนมALIAS/ANAME/flattening ถ้าผู้ให้บริการ DNS ของคุณมี ไม่เช่นนั้นให้ย้าย DNS หรือใช้ nameserver ของโฮสต์CNAME มาตรฐานใช้ที่ apex ไม่ได้
ซับโดเมน www โฮสต์ให้โฮสต์เนมCNAMEตามโฮสต์ไปเมื่อเซิร์ฟเวอร์ย้าย
ซับโดเมน โฮสต์ให้ IP addressACNAME ไม่มีอะไรให้ชี้
ซับโดเมนสำหรับเครื่องมือ SaaS (help, status, shop)CNAMEผู้ให้บริการดูแลปลายทางเอง
ชื่อที่ต้องมี MX หรือ TXT ด้วยA, AAAA หรือแบบ ALIAS ห้ามใช้ CNAMECNAME อยู่ร่วมกับ record อื่นไม่ได้
ชี้ชื่อหนึ่งไปยังอีกชื่อที่คุณดูแลเองCNAMEแก้ที่เดียวจบ
record ของบริการอีเมล (DKIM selector)CNAME เฉพาะเมื่อผู้ให้บริการอีเมลสั่งให้ใช้ขึ้นกับผู้ให้บริการ ทำตามคำแนะนำของเขา

สำหรับการส่งเมลโดยเฉพาะ ดู MX record ทำงานอย่างไร และ TXT record ทำอะไร

ตัวอย่างสำหรับคนทำเว็บไซต์

เว็บไซต์บิลเดอร์และโฮสต์ส่วนใหญ่เข้าข่ายหนึ่งในสองรูปแบบ แดชบอร์ดของคุณจะบอกว่าคุณอยู่รูปแบบไหน

รูปแบบที่ 1: โฮสต์ให้ทั้ง IP และโฮสต์เนม

โฮสต์หลายรายให้มาทั้งสองอย่าง การตั้งค่าทั่วไปคือ:

Host (ชื่อ)TypeValue
@ (root)AIP address ที่โฮสต์ระบุ
wwwCNAMEโฮสต์เนมที่โฮสต์ระบุ

ในหน้าจอ DNS ส่วนใหญ่ @ หมายถึง apex ให้ใช้ค่าตามที่โฮสต์แสดงเป๊ะ ๆ อย่าคัดลอก IP address จากบทความในบล็อก รวมถึงบทความนี้ เพราะโฮสต์เปลี่ยนค่าเหล่านี้ได้

รูปแบบที่ 2: โฮสต์ให้แค่โฮสต์เนม

บางแพลตฟอร์มเลี่ยงการใช้ IP คงที่ คุณจึงมีสามทางเลือก:

  1. ชี้ www ด้วย CNAME แล้วรีไดเรกต์โดเมนหลักไปที่ www ด้วยฟีเจอร์ forwarding ของ registrar
  2. ใช้ record แบบ ALIAS/ANAME/flattening ที่ apex ถ้าผู้ให้บริการ DNS ของคุณรองรับ
  3. เปลี่ยน nameserver ของโดเมนไปที่โฮสต์ หรือไปยังผู้ให้บริการ DNS ที่รองรับ apex aliasing

ทางเลือกที่ 1 ใช้ได้กว้างที่สุด เพราะ registrar ทุกแห่งทำรีไดเรกต์ได้ แม้ผู้เข้าชมที่พิมพ์โดเมนเปล่าจะต้องผ่านอีกหนึ่งทอด

ทีละขั้นตอน: ชี้โดเมนไปที่เว็บไซต์บิลเดอร์

  1. หาคำแนะนำ DNS ของโฮสต์ ในหน้าตั้งค่าโดเมนหรือ custom domain และดูว่าระบุ IP, โฮสต์เนม หรือทั้งสองอย่าง
  2. เปิดหน้าจอ DNS ที่ registrar หรือผู้ให้บริการ DNS (ที่ใดก็ตามที่ nameserver ของคุณชี้อยู่)
  3. ลบ record ที่ขัดกัน A หรือ CNAME record เก่าที่ชื่อเดียวกัน (มักเป็นหน้า parking ของ registrar) ต้องลบก่อน
  4. เพิ่ม record ที่ apex ใช้ A record กับ IP ของโฮสต์ หรือ record แบบ ALIAS กับโฮสต์เนมของโฮสต์
  5. เพิ่ม record ของ www ใช้ CNAME ชี้ไปยังโฮสต์เนมที่โฮสต์ให้มา
  6. ปล่อย MX และ TXT record ไว้ตามเดิม เว้นแต่คุณตั้งใจเปลี่ยนอีเมล
  7. รอให้ TTL ของ record เก่าหมดอายุ แล้วเปิดโดเมนในเบราว์เซอร์เพื่อตรวจสอบ การตั้ง TTL ให้ต่ำลงล่วงหน้าหนึ่งวันก่อนเปลี่ยนจะช่วยให้สลับได้เร็วขึ้น
  8. ยืนยันว่าโฮสต์แสดงสถานะเชื่อมต่อโดเมนแล้ว และออกใบรับรอง HTTPS เรียบร้อย โดยปกติโฮสต์ต้องให้ DNS resolve ถูกต้องก่อนจึงจะออกใบรับรองได้

เช็กลิสต์แก้ปัญหาแบบเร็ว

  • [ ] ชื่อเดียวกันไม่มีทั้ง CNAME และ record อื่น
  • [ ] ไม่มี CNAME ที่ apex (ยกเว้น record แบบ ALIAS เฉพาะของผู้ให้บริการ)
  • [ ] ปลายทางของ CNAME เป็นโฮสต์เนมจริง ไม่ใช่ URL แบบ http:// หรือมี path
  • [ ] A record มีเพียง IPv4 address เท่านั้น (ไม่มี port ไม่มี https://)
  • [ ] ไม่มี AAAA record เก่าที่ชี้ไปเซิร์ฟเวอร์เดิม
  • [ ] Nameserver ของคุณคือที่ที่คุณแก้ record จริง ๆ
  • [ ] MX record ยังอยู่ครบ หากใช้อีเมลบนโดเมนนี้

ข้อผิดพลาดที่พบบ่อย

  • ตั้ง CNAME ที่ root เพื่อ "แก้" www วิธีนี้ทำให้อีเมลและ record สำหรับการยืนยันพัง ให้ใช้วิธี A หรือ ALIAS แทน
  • คัดลอก IP address เก่า ถ้ามี CNAME ให้ใช้ จะช่วยให้ตามโฮสต์ทัน หากต้องใช้ A record ให้เช็ก IP ในแดชบอร์ดของโฮสต์อีกครั้งเมื่อเว็บมีปัญหา
  • วาง URL เป็นค่าปลายทาง ค่าใน DNS ต้องเป็นโฮสต์เนมหรือ IP เท่านั้น ไม่มี https:// และไม่มี path ต่อท้าย
  • ลืม AAAA IPv6 record ที่ตกค้างอาจพาผู้เข้าชมบางคนไปยังเซิร์ฟเวอร์ที่คุณเลิกใช้แล้ว

หากยังเลือกแพลตฟอร์มอยู่ แพ็กเกจฟรีของ We.Inc ให้คุณเผยแพร่เว็บไซต์ได้สูงสุดสามเว็บจากเทมเพลตสำเร็จรูป ส่วน AI builder ที่ร่างเว็บไซต์จากพรอมต์เริ่มที่แพ็กเกจ Starter ราคา $20 ต่อเดือน คุณเริ่มใช้ฟรีได้ที่นี่ แล้วเชื่อมโดเมนด้วย record ชนิดที่แดชบอร์ดบอกให้ใช้

เริ่มต้นฟรี · ไม่ต้องใช้บัตรเครดิต

Umair Ali Sadaqat

ผู้ก่อตั้ง We.Inc

Umair เป็นผู้ก่อตั้ง We.Inc เขาเขียนเกี่ยวกับการสร้างเว็บไซต์ด้วย AI เอเจนซี และธุรกิจการบริหารเว็บสตูดิโอ

พร้อมสร้างสิ่งที่ยอดเยี่ยมแล้วหรือยัง

เข้าร่วมกับธุรกิจ 15,000+ รายที่ใช้ We.Inc เปิดตัว เติบโต และทำงานอัตโนมัติ ทั้งหมดจากแพลตฟอร์มเดียว

เริ่มต้นฟรี

ไม่ต้องใช้บัตรเครดิต · ติดต่อฝ่ายขาย

ที่เกี่ยวข้อง: บล็อก

ผลิตภัณฑ์

เหมาะกับใคร

ฟีเจอร์

แหล่งข้อมูล

บริษัท

แผนผังเว็บไซต์