一、域名注册

1.1 选择域名服务商

国内主流注册商:

服务商 特点
阿里云(万网) 国内最大,.com 首年约 55 元
腾讯云 .com 首年约 67 元,和 DNSPod 联动
Namesilo 国外老牌,首年约 80 元,隐私保护免费

建议:国内用户选阿里云或腾讯云,实名认证快、续费方便。

1.2 挑选域名

常见后缀及用途:

后缀 参考价格(首年) 适用场景
.com ~55 元 通用首选,推荐
.cn ~29 元 国内站点,需实名
.icu ~18 元 个人博客,性价比高
.top ~10 元 入门级
.xyz ~8 元 便宜但易被滥用

命名技巧:

1
2
3
个人品牌: yourname.com
技术博客: yourname.dev / yourname.tech
创意名称: flechazo.icu(简洁好记)

1.3 注册流程(以阿里云为例)

1
1. 搜索域名 → 2. 加入清单 → 3. 实名认证 → 4. 支付

实名认证通常需要 身份证正反面照片,审核时间约 5-30 分钟。


二、DNS 托管到 Cloudflare

将域名 DNS 交给 Cloudflare 管理,利用其 CDN 加速和安全防护。

2.1 注册 Cloudflare 并添加站点

1
2
3
4
1. 访问 https://dash.cloudflare.com 注册账号
2. 点击 "添加站点" → 输入你的域名
3. 选择 Free 免费计划
4. Cloudflare 会扫描现有 DNS 记录,确认后进入下一步

2.2 修改域名 NS 记录

Cloudflare 会提供两个 Nameserver 地址,例如:

1
2
dylan.ns.cloudflare.com
vida.ns.cloudflare.com

回到域名注册商的控制台,将默认 DNS 修改为 Cloudflare 的 NS:

1
2
3
# 以阿里云为例:
域名管理 → DNS修改 → 改为自定义DNS
填写 Cloudflare 提供的两个 NS 地址

⏱ NS 修改全球生效通常需要 5 分钟到 24 小时,一般 1 小时内生效。

2.3 添加 DNS 记录

生效后,在 Cloudflare DNS 面板中添加解析记录:

类型 名称 代理
A @ 192.0.2.1(演示IP) ⚡ 开启
CNAME www 你的博客域名 ⚡ 开启

对于 GitHub Pages / Cloudflare Pages 托管,更推荐用 CNAME

类型 名称 代理
CNAME @ 你的用户名.github.io ⚡ 开启
CNAME www 你的用户名.github.io ⚡ 开启

注意:CNAME 的记录值不能使用 @,某些域名服务商需要改用 A 记录或 URL 转发。


三、绑定域名到博客平台

3.1 Cloudflare Pages 绑定自定义域名

1
2
3
4
5
1. 进入 Cloudflare Pages 控制台
2. 选择你的项目
3. 进入 自定义域名 → 设置自定义域名
4. 输入你的域名(如 flechazo.icu)
5. Cloudflare 会自动验证并添加 DNS 记录

3.2 GitHub Pages 绑定自定义域名

方式一:仓库设置中配置

1
2
3
4
1. 进入 GitHub 仓库 → Settings → Pages
2. 在 "Custom domain" 输入你的域名
3. 点击 Save
4. ✅ 勾选 "Enforce HTTPS"(会自动申请 SSL 证书)

方式二:项目中添加 CNAME 文件

source/ 目录下创建 CNAME 文件(无扩展名):

1
flechazo.icu

这样 Hexo 构建时会自动包含该文件。

3.3 Vercel 绑定自定义域名

1
2
3
4
1. 进入项目 → Settings → Domains
2. 输入域名 → Add
3. Vercel 会自动验证所有权
4. 按提示在 DNS 中添加对应的记录

四、SSL 证书

三种方式获取免费证书:

方式 有效期 自动续期
Cloudflare 自动证书 15 年 ✅ 自动
Let’s Encrypt(Certbot) 90 天 ✅ 可配置
阿里云免费证书 1 年 ❌ 需手动

推荐使用 Cloudflare 代理(橙色云朵开启),自动提供 SSL 且无需手动续期。


五、常见踩坑记录

❌ 页面显示 “This site can’t be reached”

原因:DNS 记录未正确配置或未生效。

解决

1
2
3
4
5
# 本地检查 DNS 解析
nslookup flechazo.icu
dig flechazo.icu

# 查看 DNS 记录是否指向正确 IP 或目标域名

❌ 自定义域名下页面 404

原因:GitHub Pages 开启了 “Enforce HTTPS” 但证书未生效,或 CNAME 文件缺失。

解决

1
2
3
# 1. 检查 CNAME 文件是否在构建产物中
# 2. 等待 SSL 证书发放(最长 5 分钟)
# 3. 清除 Cloudflare 缓存

❌ Cloudflare 代理导致循环重定向

原因:博客源站也开启了 HTTPS,Cloudflare 代理模式(Flexible SSL)下回源使用 HTTP 导致重定向循环。

解决

1
Cloudflare → SSL/TLS → 加密模式 → 改为 "Full (strict)"

❌ 泛域名解析冲突

如果同时存在以下记录:

1
2
@  CNAME  你的用户名.github.io
* CNAME 你的用户名.github.io

* 泛解析可能覆盖 @ 的配置,建议精确配置需要的子域名。

❌ CNAME 记录与根域名冲突

根据 DNS 规范,根域名(@)不能使用 CNAME 记录(RFC 1034)。但部分服务商支持 CNAME Flattening(Cloudflare 默认支持),所以可以直接在根域名使用 CNAME。

如果你的注册商不支持,改用 A 记录指向 GitHub Pages 的 IP:

1
2
3
4
185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153

六、本博客的配置参考

1
2
3
4
5
域名:       blog.flechazo.icu
注册商: 阿里云
DNS 托管: Cloudflare
博客托管: GitHub Pages + Cloudflare Pages
SSL: Cloudflare 自动(Full strict 模式)

完整链路:

1
2
3
4
5
用户访问 blog.flechazo.icu
→ Cloudflare DNS 解析(代理模式)
→ Cloudflare CDN 缓存 / 回源 Pages
→ Cloudflare Pages 返回静态页面
→ Cloudflare 自动提供 SSL/TLS 加密