需在GitHub仓库添加CNAME文件并配置DNS解析:①注册免费二级域名;②仓库根目录创建全大写CNAME文件,内容为域名;③DNS中设四条A记录指向GitHub IP、一条CNAME记录指向username.github.io;④Pages设置中启用Enforce HTTPS;⑤等待DNS生效后验证访问。

如果您已使用 GitHub Pages 创建了静态网站,但希望用自定义域名替代默认的 github.io 地址,则需在仓库设置与 DNS 服务中完成域名解析配置。以下是实现免费域名绑定的具体操作步骤:
一、准备一个免费二级域名
GitHub Pages 支持绑定通过支持免费域名服务(如 Freenom、Dot.tk、Freenom World)注册的 .tk、.ml、.ga、.cf、.gq 等后缀域名。这些域名无需付费,但需定期续期(通常每12个月手动确认一次)。确保您已成功注册并获得该域名的管理权限。
1、访问 https://www.freenom.com 或其他支持免费域名的服务商官网。
2、搜索您希望使用的域名,例如 mysite.ml,确认其可注册且未被占用。
3、完成注册流程,登录账户进入域名控制面板,记录该域名的 DNS 管理入口。
二、在 GitHub 仓库中添加 CNAME 文件
GitHub Pages 通过识别仓库根目录下的 CNAME 文件来启用自定义域名。该文件仅包含一行纯文本,即您要绑定的完整域名,不带协议头或路径。
1、进入您的 GitHub Pages 项目仓库主页。
2、点击 Add file → Create new file。
3、在文件名栏输入 CNAME(注意全部大写,无扩展名)。
4、在编辑区输入您的完整域名,例如:mysite.ml(不加 www,不加 https://)。
5、滚动到底部,填写提交信息,点击 Commit new file。
三、配置 DNS 解析记录指向 GitHub Pages
GitHub Pages 要求将域名通过 A 记录或 ALIAS/CNAME 记录指向其服务器 IP 或 pages.github.io。免费域名服务商通常不支持 ALIAS,因此推荐使用 A 记录方式绑定根域名(@),并用 CNAME 绑定 www 子域名。
1、登录您的免费域名控制面板(如 Freenom 的 Client Area → Services → My Domains → Manage Domain → Manage Freenom DNS)。
2、删除所有已有 A 或 CNAME 记录(避免冲突)。
3、添加四条 A 记录,主机名均填 @,IPv4 地址分别填入:185.199.108.153、185.199.109.153、185.199.110.153、185.199.111.153。
4、添加一条 CNAME 记录,主机名填 www,目标值填 username.github.io(将 username 替换为您的 GitHub 用户名)。
四、启用 GitHub Pages 的域名强制 HTTPS
GitHub Pages 提供自动 HTTPS 支持,但需手动启用以确保浏览器地址栏显示锁形图标并阻止混合内容警告。该设置仅在 CNAME 文件存在且 DNS 解析生效后才可勾选。
1、进入仓库 Settings → Pages(左侧边栏)。
2、向下滚动至 Custom domain 区域,确认显示的域名与您配置的一致(如 mysite.ml)。
3、勾选 Enforce HTTPS 复选框。
4、点击页面右上角 Save 按钮保存更改。
五、验证 DNS 解析与页面加载状态
DNS 生效可能需要数分钟至 48 小时。在此期间可通过命令行工具或在线服务检测解析是否正确,同时确认 GitHub Pages 构建状态无误。
1、在终端执行:dig mysite.ml +short(替换为您的域名),应返回四组 GitHub Pages IP 地址之一。
2、执行:dig www.mysite.ml +short,应返回 username.github.io。
3、访问 https://mysite.ml 和 https://www.mysite.ml,确认页面正常加载且地址栏显示 HTTPS 与锁形图标。
4、若出现 “404 No site found” 错误,请检查 CNAME 文件是否位于发布源分支(如 main 或 gh-pages)的根目录,且拼写完全一致。










