ตั้งค่าโดเมนเอง GitHub Pages: DNS, CNAME และ HTTPS

วิธีตั้งค่าโดเมนของตัวเองบน GitHub Pages: เรคคอร์ด DNS สำหรับ apex และ www, ไฟล์ CNAME ทำหน้าที่อะไร, การยืนยันโดเมน และการเปิดใช้ HTTPS

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

โดเมนหลัก (apex) ของ GitHub Pages ต้องใช้ IP อะไร

เอกสารของ GitHub (ตรวจสอบเมื่อพฤศจิกายน 2026) ระบุ A record สี่ตัวสำหรับโฮสต์ apex (@) ได้แก่ 185.199.108.153, 185.199.109.153, 185.199.110.153 และ 185.199.111.153 หากต้องการ IPv6 ด้วย ให้เพิ่ม AAAA record อีกสี่ตัว ได้แก่ 2606:50c0:8000::153, 2606:50c0:8001::153, 2606:50c0:8002::153 และ 2606:50c0:8003::153 GitHub แนะนำให้คง A record ไว้ควบคู่กับ AAAA record ก่อนคัดลอกไปวาง ควรเทียบกับเอกสารของ GitHub อีกครั้ง เพราะค่าเหล่านี้อาจเปลี่ยนแปลงได้

จำเป็นต้องมีไฟล์ CNAME ใน repository ไหม

จำเป็นเฉพาะกรณีที่คุณเผยแพร่จาก branch เท่านั้น ในกรณีนี้ เมื่อคุณบันทึกโดเมนที่กำหนดเองใน Settings > Pages GitHub จะ commit ไฟล์ CNAME ไปไว้ที่รากของ source branch ให้เอง แต่ถ้าคุณเผยแพร่ด้วย GitHub Actions workflow แบบกำหนดเอง GitHub ระบุว่าจะไม่สร้างไฟล์ CNAME และหากมีอยู่แล้วก็จะถูกข้ามไป ไม่จำเป็นต้องใช้

ทำไมช่อง Enforce HTTPS ถึงกดไม่ได้ (เป็นสีเทา)

GitHub แจ้งว่าตัวเลือกนี้อาจใช้เวลานานถึง 24 ชั่วโมงหลังเพิ่มโดเมนจึงจะใช้งานได้ ใบรับรองจะถูกออกให้อัตโนมัติ สาเหตุที่พบบ่อยของช่องที่กดไม่ได้จึงมักเป็น DNS ที่ยังไม่แพร่กระจายทั่วถึง หรือมีเรคคอร์ดเกินมา เช่น A, AAAA, ALIAS หรือ ANAME เพิ่มเติมบน apex หรือ CNAME ของ www ที่ชี้ไปที่อื่นที่ไม่ใช่ GitHub นอกจากนี้ GitHub ยังระบุว่าชื่อโดเมนต้องยาวไม่เกิน 64 ตัวอักษร หากยังไม่คืบหน้า ให้กด Remove ข้างโดเมน พิมพ์โดเมนใหม่ แล้วบันทึกอีกครั้ง

ควรใช้โดเมนหลัก (apex) หรือ www

GitHub แนะนำ www เอกสารของ GitHub ระบุว่าซับโดเมน www เป็นโดเมนแบบกำหนดเองที่เสถียรที่สุด เพราะไม่ได้รับผลกระทบเมื่อ GitHub เปลี่ยน IP ของเซิร์ฟเวอร์ ไม่ว่าคุณจะตั้งอันไหนเป็นโดเมนหลัก GitHub จะรีไดเรกต์อีกอันมาที่อันนั้นให้ ตราบใดที่ DNS ของทั้งสองโฮสต์ชี้มาที่ GitHub Pages

โดเมนที่กำหนดเองของ GitHub Pages ใช้เวลานานแค่ไหนกว่าจะทำงาน

GitHub ระบุว่าการเปลี่ยนแปลง DNS อาจใช้เวลาแพร่กระจายนานถึง 24 ชั่วโมง ในทางปฏิบัติเรคคอร์ดจำนวนมากใช้งานได้เร็วกว่านั้น แต่ควรเผื่อเวลาไว้หนึ่งวันก่อนจะสรุปว่ามีอะไรผิดพลาด

ใช้ wildcard DNS record กับ GitHub Pages ปลอดภัยไหม

GitHub ไม่แนะนำอย่างยิ่งให้ใช้ wildcard record เช่น *.example.com เอกสารของ GitHub ระบุว่าเสี่ยงต่อการถูกยึดโดเมน (domain takeover) ทันที แม้คุณจะยืนยันโดเมนแล้วก็ตาม ให้สร้างเรคคอร์ดเฉพาะซับโดเมนที่คุณใช้งานจริงแทน

คำตอบสั้นๆ: ใน repository ของคุณ ไปที่ Settings > Pages พิมพ์โดเมนในช่อง Custom domain แล้วกดบันทึก จากนั้นที่ผู้ให้บริการ DNS ให้ชี้ www ไปที่ <username>.github.io ด้วย CNAME record และชี้โดเมนเปล่า (example.com) ไปที่ GitHub ด้วย A record สี่ตัว เมื่อ GitHub ออกใบรับรองเสร็จแล้ว ให้ติ๊ก Enforce HTTPS ทั้งหมดนี้คือการตั้งค่าใน repo บวกเรคคอร์ด DNS อีกไม่กี่ตัว ความล่าช้าส่วนใหญ่มาจากการแพร่กระจายของ DNS ซึ่ง GitHub บอกว่าอาจใช้เวลานานถึง 24 ชั่วโมง

เนื้อหาทั้งหมดด้านล่างตรวจสอบกับเอกสารทางการของ GitHub เมื่อพฤศจิกายน 2026 ค่า DNS เป็นส่วนที่มีโอกาสเปลี่ยนมากที่สุด ดังนั้นควรยืนยันกับ เอกสาร custom domain ของ GitHub Pages ก่อนคัดลอกไปใช้

เลือกประเภทโดเมนก่อน

ต้องการให้ผู้เข้าชมเข้าที่ตั้งเป็นโดเมนที่กำหนดเองเรคคอร์ด DNS ที่ต้องใช้หมายเหตุ
www.example.comwww.example.comCNAME บน www ชี้ไป <username>.github.io และ A record บน apexแบบที่ GitHub แนะนำ example.com จะรีไดเรกต์ไป www
example.comexample.comA record บน apex (หรือ ALIAS/ANAME หนึ่งตัว) และ CNAME บน wwwwww.example.com จะรีไดเรกต์ไปที่ apex
blog.example.comblog.example.comCNAME บน blog ชี้ไป <username>.github.ioไม่ต้องตั้งเรคคอร์ดบน apex

เอกสารของ GitHub ระบุว่า www เป็นตัวเลือกที่เสถียรที่สุด เพราะไม่ได้รับผลกระทบเมื่อ IP ของเซิร์ฟเวอร์ GitHub เปลี่ยน หากไม่มีเหตุผลพิเศษที่ต้องใช้โดเมนเปล่า ให้เลือก www หากยังหาที่จดโดเมนอยู่ บทความเปรียบเทียบผู้ให้บริการจดโดเมน ของเรารวบรวมตัวเลือกไว้ และ ค่าโดเมนราคาเท่าไร อธิบายเรื่องราคาต่ออายุ

ขั้นตอนการเชื่อมต่อโดเมน

  1. เพิ่มโดเมนใน GitHub เปิด repository แล้วคลิก Settings จากนั้นเลือก Pages (ใต้หัวข้อ “Code, planning, and automation”) หากไม่เห็นแท็บ Settings ให้ดูในเมนูดรอปดาวน์ “More” พิมพ์โดเมนในช่อง Custom domain แล้วคลิก Save
  2. ตรวจดูว่า GitHub ทำอะไรกับ repo ของคุณ หากเผยแพร่จาก branch GitHub จะ commit ไฟล์ CNAME ไปไว้ที่รากของ branch นั้น หากเผยแพร่ด้วย GitHub Actions workflow แบบกำหนดเอง จะไม่มีการสร้างไฟล์ CNAME และไฟล์ที่มีอยู่เดิมจะถูกข้าม
  3. ลบเรคคอร์ด DNS เริ่มต้น หากผู้ให้บริการ DNS สร้างเรคคอร์ดจอดโดเมนหรือเรคคอร์ดเริ่มต้นไว้ให้บนโฮสต์ที่คุณจะใช้ ให้ลบทิ้งก่อน
  4. สร้างเรคคอร์ด DNS ที่ผู้ให้บริการ DNS (ดูหัวข้อถัดไป)
  5. รอการแพร่กระจาย GitHub ระบุว่านานถึง 24 ชั่วโมง คุณตรวจสอบความคืบหน้าได้จากเทอร์มินัลด้วย dig www.example.com +noall +answer
  6. เปิด Enforce HTTPS เมื่อตัวเลือกพร้อมใช้งาน (ดูด้านล่าง)

ลำดับสำคัญน้อยกว่าที่คิด

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

เรคคอร์ด DNS

www หรือซับโดเมนอื่น: CNAME หนึ่งตัว

ประเภทโฮสต์ค่า
CNAMEwww<username>.github.io

ใช้ชื่อผู้ใช้หรือชื่อองค์กรของคุณ โดยไม่ต้องใส่ชื่อ repository GitHub ระบุชัดเจนว่าอย่าชี้ CNAME ไปที่ที่อยู่ *.pages.github.io เฉพาะตัวที่แสดงในหน้าตั้งค่า repository ของคุณ

โดเมนหลัก (apex): A record สี่ตัว (ตรวจสอบเมื่อพฤศจิกายน 2026)

ประเภทโฮสต์ค่า
A@185.199.108.153
A@185.199.109.153
A@185.199.110.153
A@185.199.111.153

IPv6 เป็นทางเลือก หากต้องการ ให้เพิ่มเป็น AAAA record บน @:

ประเภทโฮสต์ค่า
AAAA@2606:50c0:8000::153
AAAA@2606:50c0:8001::153
AAAA@2606:50c0:8002::153
AAAA@2606:50c0:8003::153

GitHub แนะนำให้เพิ่ม A record ไว้เสมอ แม้จะเพิ่ม AAAA record แล้วก็ตาม เพราะการใช้งาน IPv6 ยังไม่แพร่หลายเท่ากันทุกที่ หากผู้ให้บริการ DNS ของคุณรองรับ ALIAS หรือ ANAME record คุณสามารถใช้เรคคอร์ดเดียวที่ชี้ไป <username>.github.io แทน A และ AAAA record ได้

ข้อผิดพลาดสองอย่างที่ควรหลีกเลี่ยง:

  • มีเรคคอร์ดเกินบน apex GitHub ระบุว่า A, AAAA, ALIAS หรือ ANAME record เพิ่มเติมบน @ หรือ CNAME บน www ที่ชี้ไปที่อื่น อาจทำให้ออกใบรับรอง HTTPS ไม่สำเร็จ
  • ชี้ซับโดเมนไปที่ apex ของคุณ GitHub เตือนว่าจะทำให้เปิดบังคับ HTTPS ไม่ได้ และอาจทำให้ซับโดเมนเข้าถึงเว็บไซต์ของคุณไม่ได้เลย ให้ชี้ซับโดเมนไปที่ <username>.github.io

ผู้ให้บริการบางรายใช้ @ แทนโฮสต์ apex บางรายให้เว้นช่องว่างไว้ หรือให้พิมพ์ชื่อโดเมนเต็ม ซึ่งเป็นความต่างของแต่ละผู้ให้บริการ ไม่ใช่การตั้งค่าของ GitHub

เปิดใช้ HTTPS

GitHub ออกใบรับรองสำหรับโดเมนที่กำหนดเองผ่าน Let's Encrypt หลังจาก DNS ชี้ถูกต้องแล้ว:

  1. กลับไปที่ Settings > Pages
  2. มองหาเครื่องหมายถูกข้างโดเมนของคุณ ซึ่งหมายความว่าการตรวจสอบ DNS ผ่านแล้ว
  3. ติ๊ก Enforce HTTPS

GitHub ระบุว่าตัวเลือกนี้อาจใช้เวลานานถึง 24 ชั่วโมงกว่าจะพร้อมใช้งาน หากผ่านไปหลายนาทีหลังบันทึกแล้วยังไม่ปรากฏ วิธีที่ GitHub แนะนำคือคลิก Remove ข้างโดเมนที่กำหนดเอง พิมพ์โดเมนใหม่ แล้วคลิก Save อีกครั้ง นอกจากนี้ชื่อโดเมนต้องยาวไม่เกิน 64 ตัวอักษรจึงจะสร้างใบรับรองได้

หากช่องนี้ยังกดไม่ได้ ให้ไล่ตรวจตามรายการนี้:

  • [ ] DNS ของโฮสต์ชี้มาที่ GitHub (dig แสดง IP ทั้งสี่ตัว หรือ CNAME <username>.github.io ของคุณ)
  • [ ] ไม่มี A, AAAA, ALIAS หรือ ANAME record เกินบน apex
  • [ ] CNAME ของ www ชี้ไปที่ <username>.github.io ไม่ใช่ที่ apex หรือที่อยู่ pages.github.io
  • [ ] โดเมนใน Settings > Pages ตรงกับที่คุณตั้งใน DNS ทุกตัวอักษร
  • [ ] คุณลองลบแล้วเพิ่มโดเมนใหม่หนึ่งครั้งแล้ว

ยืนยันโดเมน (แนะนำอย่างยิ่ง)

การยืนยันโดเมนช่วยป้องกันไม่ให้บัญชี GitHub อื่นมาอ้างสิทธิ์โดเมนของคุณ หากเว็บไซต์ Pages ของคุณถูกยกเลิกการเชื่อมโยง GitHub ระบุว่าการยึดโดเมนอาจเกิดขึ้นได้เมื่อคุณลบ repository, เมื่อแพ็กเกจการเรียกเก็บเงินถูกลดระดับ หรือหลังการเปลี่ยนแปลงใดๆ ที่ทำให้โดเมนถูกถอดการเชื่อมโยง ขณะที่ยังตั้งค่าไว้กับ GitHub Pages โดยไม่ได้ยืนยัน

  1. เปิดการตั้งค่า โปรไฟล์ ของคุณ (ไม่ใช่การตั้งค่า repo) แล้วเลือก Pages ในแถบด้านข้าง
  2. คลิก Add a domain ใส่โดเมนแล้วยืนยัน
  3. สร้าง TXT record ที่ GitHub แสดงให้ โฮสต์จะมีหน้าตาประมาณ _github-pages-challenge-USERNAME.example.com
  4. ตรวจสอบว่าเห็นเรคคอร์ดนี้แล้วด้วย dig _github-pages-challenge-USERNAME.example.com +nostats +nocomments +nocmd TXT
  5. กลับไปที่ GitHub ใช้เมนูข้างโดเมน เลือก Continue verifying แล้วเลือก Verify

GitHub ระบุว่าอาจเสร็จทันทีหรือใช้เวลานานถึง 24 ชั่วโมง หลังยืนยันแล้วให้คง TXT record ไว้ และอย่าใช้ wildcard record เช่น *.example.com เพราะ GitHub ระบุว่าเสี่ยงต่อการถูกยึดโดเมนแม้จะยืนยันโดเมนแล้วก็ตาม

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

  • เปิดโดเมนที่กำหนดเองแล้วเจอ 404 แต่เว็บทำงานได้ที่ github.io แสดงว่าไม่ได้บันทึกโดเมนใน Settings > Pages หรือ DNS ยังไม่แพร่กระจาย ให้ตรวจสอบทั้งสองอย่าง
  • โดเมนถูกรีเซ็ตทุกครั้งหลัง deploy หากเผยแพร่จาก branch ไฟล์ CNAME ใน source branch ต้องมีโดเมนของคุณอยู่ การ build ที่ล้างรากของ branch หรือการ deploy ที่ไม่รวมไฟล์นี้อาจทำให้ไฟล์หายไป การเปลี่ยนไปใช้ Actions workflow แบบกำหนดเองจะทำให้ไม่ต้องใช้ไฟล์นี้
  • apex ใช้ได้แต่ www ใช้ไม่ได้ (หรือกลับกัน) ทั้งสองโฮสต์ต้องมีเรคคอร์ดครบ และอย่าลืมว่า GitHub จะรีไดเรกต์โฮสต์คู่กันก็ต่อเมื่อ DNS ของโฮสต์นั้นชี้มาที่ GitHub Pages ด้วยเช่นกัน
  • ใบรับรองไม่มาสักที ให้ไล่ตามเช็กลิสต์ด้านบน โดยดูเรคคอร์ดที่เกินมาก่อนเป็นอันดับแรก

หากไม่อยากจัดการ DNS เอง

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

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

Umair Ali Sadaqat

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

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

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

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

เริ่มต้นฟรี

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

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

ผลิตภัณฑ์

เหมาะกับใคร

ฟีเจอร์

แหล่งข้อมูล

บริษัท

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