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 会给出类似下面这样的界面提示:
注意看这个细节:GitHub 把 _github-pages-challenge-liamchen.blog 放在了可复制的输入框内,而把主域名 .blogsmith.com 放在了输入框外面。但很多人在去域名服务商后台填写时,却因为各种误解改错了内容。
2. 为什么会出错?(原理剖析)
主流域名服务商(阿里云、腾讯云、Cloudflare、Namecheap、GoDaddy 等)的 DNS 解析面板有一个共同规则:「主机记录」填写的是相对名称,系统会自动在末尾拼接上你的主域名(即 .blogsmith.com)。
- 你的主域名:
blogsmith.com(DNS 面板会自动补全) - 要验证的二级域名:
blog.blogsmith.com - GitHub 最终要查询的完整记录:
_github-pages-challenge-liamchen.blog.blogsmith.com
很多同学在填写时,容易陷入以下两种“自作聪明”的误区,导致最终解析出来的域名完全不对:
以为框外的
.blogsmith.com 是 GitHub 漏放进框里的,于是手动全选复制了整行 _github-pages-challenge-liamchen.blog.blogsmith.com。→ DNS 拼接后变成:_github-pages-challenge-liamchen.blog.blogsmith.com.blogsmith.com(主域名重复,报错!)
.blog):点击复制后,看到末尾带了个
.blog,误以为“主机记录不能带任何域名前缀”,手动删成了 _github-pages-challenge-liamchen。→ DNS 拼接后变成:_github-pages-challenge-liamchen.blogsmith.com(缺少 .blog,变成验证主域名了!)
| 验证场景 | 类型 | 主机记录 / Name(直接粘贴框内内容) | 记录值 / Value |
|---|---|---|---|
|
二级域名 blog.blogsmith.com |
TXT | _github-pages-challenge-liamchen.blog | GitHub 提供的验证字符串 |
|
主域名 (Apex) blogsmith.com |
TXT | _github-pages-challenge-liamchen | GitHub 提供的验证字符串 |
3. 正确操作与验证步骤
- 在 GitHub 验证页面中,直接点击第 1 步输入框右侧的「复制」图标(不要手动框选外面的主域名)。
- 登录你的域名服务商后台,进入主域名(如
blogsmith.com)的 DNS 解析管理 页面,添加一条 TXT 记录。 - 主机记录(Host) 直接粘贴刚刚复制的内容(即
_github-pages-challenge-liamchen.blog),一字不改。 - 记录值(Value) 复制并粘贴 GitHub 第 2 步提供的随机验证码字符串。
- 保存记录,耐心等待 5~15 分钟 让全球 DNS 缓存刷新。
- 在本地终端运行以下命令,确认记录是否已成功对外生效:
只要终端里能正确返回 GitHub 给你的那串验证码,此时回到 GitHub 页面点击绿色的 「验证 (Verify)」 按钮,基本就能秒过!
4. 总结与注意事项
- 相信 GitHub 的复制按钮:GitHub 已经贴心地把
_github-pages-challenge-用户名.子域名和.主域名分开了,点复制按钮直接粘贴就是最准确的相对主机记录。 - 耐心等待同步:不同 DNS 服务商的全球同步速度不同,如果刚添加完点验证失败,先用命令行工具测试是否已解析成功。
- 切勿删除记录:验证通过后,请保留这条 TXT 记录不要删除。GitHub 会定期复查域名所有权,一旦删除可能导致验证状态失效,甚至引发子域名被他人抢注劫持的风险。
希望这篇小指南能帮你省下折腾 DNS 的时间!如果你在配置过程中遇到其他报错,欢迎在评论区留言交流~
评论