GitHub Pages 域名验证最容易踩的坑:TXT 记录主机名到底怎么填?

最近在给 GitHub Pages 绑定自定义二级域名时,踩了一个极其常见却很少有人说透的坑。

明明已经老老实实按照 GitHub 的提示添加了 TXT 解析记录,后台却一直报错「DNS 名称不存在」或验证失败。排查后才发现,几乎所有失败都出在 DNS 面板中 主机记录 (Host / Name) 的填写方式上——不少人因为没看懂 GitHub 界面的分段设计,反而“画蛇添足”改错了。

核心结论 太长不看版

GitHub 页面上的复制框里其实已经帮你截取好了正确的相对主机名(例如 _github-pages-challenge-用户名.blog)。直接点击复制按钮原样粘贴即可,千万不要把框外面的主域名(.blogsmith.com)一起复制进去,也不要手动删掉末尾的 .blog!

1. 问题现象

当你在 GitHub(Settings → Pages → Verified domains)添加自定义二级域名(假设为 blog.blogsmith.com)时,GitHub 会给出类似下面这样的界面提示:

添加 DNS TXT 记录
在我们验证 blog.blogsmith.com 之前,您需要完成以下步骤:
1. 在 DNS 配置中为以下主机创建 TXT 记录:
_github-pages-challenge-liamchen.blog 复制 .blogsmith.com

注意看这个细节:GitHub 把 _github-pages-challenge-liamchen.blog 放在了可复制的输入框内,而把主域名 .blogsmith.com 放在了输入框外面。但很多人在去域名服务商后台填写时,却因为各种误解改错了内容。

2. 为什么会出错?(原理剖析)

主流域名服务商(阿里云、腾讯云、Cloudflare、Namecheap、GoDaddy 等)的 DNS 解析面板有一个共同规则:「主机记录」填写的是相对名称,系统会自动在末尾拼接上你的主域名(即 .blogsmith.com)。

以验证 blog.blogsmith.com 为例:
  • 你的主域名:blogsmith.com(DNS 面板会自动补全)
  • 要验证的二级域名:blog.blogsmith.com
  • GitHub 最终要查询的完整记录:_github-pages-challenge-liamchen.blog.blogsmith.com

很多同学在填写时,容易陷入以下两种“自作聪明”的误区,导致最终解析出来的域名完全不对:

避坑指南 两种最常见的错误操作
错误 1(手动把框外的主域名也复制了):
以为框外的 .blogsmith.com 是 GitHub 漏放进框里的,于是手动全选复制了整行 _github-pages-challenge-liamchen.blog.blogsmith.com。
→ DNS 拼接后变成:_github-pages-challenge-liamchen.blog.blogsmith.com.blogsmith.com(主域名重复,报错!)
错误 2(手动删掉了末尾的 .blog):
点击复制后,看到末尾带了个 .blog,误以为“主机记录不能带任何域名前缀”,手动删成了 _github-pages-challenge-liamchen。
→ DNS 拼接后变成:_github-pages-challenge-liamchen.blogsmith.com(缺少 .blog,变成验证主域名了!)
标准配置 正确的 DNS 解析填写对照表
验证场景 类型 主机记录 / Name(直接粘贴框内内容) 记录值 / Value
二级域名
blog.blogsmith.com
TXT _github-pages-challenge-liamchen.blog GitHub 提供的验证字符串
主域名 (Apex)
blogsmith.com
TXT _github-pages-challenge-liamchen GitHub 提供的验证字符串

3. 正确操作与验证步骤

  1. 在 GitHub 验证页面中,直接点击第 1 步输入框右侧的「复制」图标(不要手动框选外面的主域名)。
  2. 登录你的域名服务商后台,进入主域名(如 blogsmith.com)的 DNS 解析管理 页面,添加一条 TXT 记录。
  3. 主机记录(Host) 直接粘贴刚刚复制的内容(即 _github-pages-challenge-liamchen.blog),一字不改。
  4. 记录值(Value) 复制并粘贴 GitHub 第 2 步提供的随机验证码字符串。
  5. 保存记录,耐心等待 5~15 分钟 让全球 DNS 缓存刷新。
  6. 在本地终端运行以下命令,确认记录是否已成功对外生效:
Windows (PowerShell) DNS CHECK
Resolve-DnsName -Name _github-pages-challenge-liamchen.blog.blogsmith.com -Type TXT
macOS / Linux (Terminal) DNS CHECK
dig _github-pages-challenge-liamchen.blog.blogsmith.com +short TXT

只要终端里能正确返回 GitHub 给你的那串验证码,此时回到 GitHub 页面点击绿色的 「验证 (Verify)」 按钮,基本就能秒过!

4. 总结与注意事项

  • 相信 GitHub 的复制按钮:GitHub 已经贴心地把 _github-pages-challenge-用户名.子域名 和 .主域名 分开了,点复制按钮直接粘贴就是最准确的相对主机记录。
  • 耐心等待同步:不同 DNS 服务商的全球同步速度不同,如果刚添加完点验证失败,先用命令行工具测试是否已解析成功。
  • 切勿删除记录:验证通过后,请保留这条 TXT 记录不要删除。GitHub 会定期复查域名所有权,一旦删除可能导致验证状态失效,甚至引发子域名被他人抢注劫持的风险。

希望这篇小指南能帮你省下折腾 DNS 的时间!如果你在配置过程中遇到其他报错,欢迎在评论区留言交流~

评论

此博客中的热门博文

Cloudflare Warp + Zero Trust 全平台闭环配置详细教程

最新版本BPB部署基础教程|百分百成功|利用 Cloudflare & BPB Panel |告别1101报错、节点泄露!

VPS + Cloudflare WARP 出站规则 解锁.google 地区限制(2026最新)