很多人卡在"建站第一步"——买域名。其实如果你只是想放个静态博客、作品集、文档站,整条链路可以做到 0 元:
免费二级域名(dpdns.org)→ 托管到 Cloudflare → 用 Pages 部署 → 绑定自定义域名
全程不需要服务器、不需要备案、不需要信用卡。下面是我实测的完整流程。
一、方案总览
你的静态文件(HTML/CSS/JS)
│ 上传 / Git 推送
▼
Cloudflare Pages ──► your-project.pages.dev(自带免费 HTTPS)
│ 绑定自定义域名
▼
xxx.dpdns.org ◄── NS 指向 Cloudflare三个免费组件各司其职:
| 组件 | 作用 | 费用 |
|---|---|---|
| DigitalPlat FreeDomain(dpdns.org) | 提供免费二级域名 | 0 |
| Cloudflare(Free 计划) | DNS 解析 + CDN + 免费 SSL | 0 |
| Cloudflare Pages | 静态托管,无限带宽/请求 | 0 |
二、准备清单
- 一个 GitHub 账号(注册 dpdns.org 要用它登录,建议账号有一定使用历史)
- 一个 Cloudflare 账号(邮箱注册即可)
- 一个能打开浏览器的电脑
- 一个静态页面(没有也行,后面我给你一个)
提前说明:免费域名是"能用但不保证长期"的东西,别拿它做主力站或商业项目。
三、Step 1:注册免费域名(约 2 分钟)
- 打开 DigitalPlat FreeDomain 面板:https://dash.domain.digitalplat.org/
- 用 GitHub 账号登录(OAuth 授权)。
- 进入 Register / 注册域名,填写:
- 前缀:比如 myblog、zhangsan
- 后缀:选择 dpdns.org
- 提交后会做一次反滥用检查,通过后域名就归你了。
免费账号一般有域名数量上限(目前是几个),够个人用。具体规则以面板说明为准,官方界面可能调整。
拿到域名后先别急着关页面,下一步要用它。
四、Step 2:在 Cloudflare 添加站点(约 2 分钟)
- 登录 Cloudflare Dashboard → Add a site(添加站点)
- 输入你的域名:xxx.dpdns.org
- 计划选择 Free(免费)
- Cloudflare 会扫描现有 DNS 记录,新域名没记录,直接点 Continue
- 关键一步:记下它分配给你的两个 Nameserver,形如:
hello.ns.cloudflare.com
lmzxe.ns.cloudflare.com
(每个人的不一样,照抄你自己的)
此时 Cloudflare 显示站点状态为 Pending(待验证),正常。
五、Step 3:把 NS 改到 Cloudflare(1 分钟 + 等待)
回到 DigitalPlat 面板:
- 找到你的域名 → Manage / Nameservers / DNS
- 把原来的 NS 删掉,填入 Cloudflare 给的那两个
- 保存
然后就是等。这是全流程唯一不可控的环节:
- 快的话 5~15 分钟
- 慢的话 几小时,官方上限 24 小时
Cloudflare 会发邮件通知你 "Site is active"。也可以直接刷新 Dashboard 看状态是否变成 Active。
六、Step 4:用 Cloudflare Pages 部署(约 3 分钟)
等 NS 生效的同时,先把站点部署好。
方式 A:直接上传(最快,推荐新手)
- Dashboard → Workers & Pages → Create → Pages → Upload assets
- 项目名填 myblog(会得到 myblog.pages.dev)
- 把你的静态文件拖进去,或者上传一个 zip
- 点 Deploy
方式 B:连接 Git(适合长期维护)
- 同上进入 Pages → Connect to Git
- 授权 GitHub,选择仓库
- 构建配置:
- 纯静态:Build command 留空,Output directory 填 /(或你的 dist)
- 框架(Vite/Next/Astro 等):按框架默认配置填
- 保存并部署
没有现成文件?用这个最小示例,存成 index.html:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>我的免费网站</title>
<style>
body {
margin: 0; min-height: 100vh;
display: grid; place-items: center;
font-family: system-ui, -apple-system, sans-serif;
background: linear-gradient(135deg, #667eea, #764ba2);
color: #fff; text-align: center;
}
h1 { font-size: 2.5rem; margin-bottom: .5rem; }
p { opacity: .85; }
code { background: rgba(255,255,255,.2); padding: 2px 8px; border-radius: 6px; }
</style>
</head>
<body>
<div>
<h1>网站上线了</h1>
<p>托管在 <code>Cloudflare Pages</code></p>
</div>
</body>
</html>部署完成后先访问 myblog.pages.dev 确认页面正常。
七、Step 5:绑定自定义域名(1 分钟)
这一步是整个方案里最爽的地方——因为域名已经在 Cloudflare 托管,绑定全自动。
- 进入 Pages 项目 → Custom domains → Set up a custom domain
- 输入 xxx.dpdns.org
- 点确认,Cloudflare 会自动在你的 DNS 里加一条 CNAME 记录(指向 myblog.pages.dev),并自动开启代理(橙色云朵)
- 等待 SSL 证书签发,通常 1~5 分钟
浏览器打开 https://xxx.dpdns.org,出现小锁图标 = 全流程完成。
因为 Pages 支持 apex 域名的 CNAME 展平(CNAME Flattening),xxx.dpdns.org 这种"根"域名也能直接绑,不需要套 www。
八、验收清单
逐条打勾,有问题看下一节的排错:
- Cloudflare Dashboard 站点状态为 Active
- myblog.pages.dev 能正常访问
- xxx.dpdns.org 能正常访问
- 地址栏是 https 且有锁
- 手机 4G 网络下也能打开(排除本地缓存干扰)
九、常见坑 & 排错
- Cloudflare 一直 Pending
- NS 填错了 / 多了空格 / 没保存 → 回 DigitalPlat 面板复查
- 有些平台要求 NS 不带尾点,注意格式
- 刚改完 NS 需要时间,别 5 分钟就怀疑人生
- 自定义域名绑定失败,提示 "CNAME record already exists"
- 删掉 DNS 里冲突的记录再重试
- 或者手动加一条 CNAME xxx → myblog.pages.dev,并开启代理
- 打开显示 522 / 521
- 通常是 Pages 项目还没部署成功,先确认 .pages.dev 能访问
- 或者 CNAME 目标写错了
- HTTPS 报错 / 证书无效
- Universal SSL 签发需要几分钟,等等
- 确认 SSL/TLS 模式为 Full (strict)(Pages 默认支持)
- 域名突然解析不了
- 免费域名有回收和滥用封禁机制,长期不用的域名可能被清理
- 养成定期访问一次的习惯
- 在国内访问慢或不稳定
- 免费 CDN 节点不在国内,这是免费方案的固有代价,接受它
十、几个进阶玩法
搞定基础版后,可以顺手加:
自定义 404 页面
在项目根目录放 404.html,Pages 会自动识别。
URL 重定向 / 短链
放一个 _redirects 文件:
/old /new 301
/gh https://github.com/你的用户名 302
自动部署
用方式 B 连接 Git,之后每次 git push 自动构建发布。
Web Analytics
Pages 项目 → Metrics → 开启 Cloudflare Web Analytics,免费且无 Cookie,不用改代码。
多环境预览
Pages 会为每个非主分支生成独立的预览域名,改版测试很方便。
十一、说点实话
这套方案的优势很明确:零成本、零运维、全球 CDN、自动 HTTPS、无限带宽,用来放个人博客、简历站、文档、Demo 演示,体验不输付费方案。
但必须清楚它的边界:
- 域名不属于你。dpdns.org 是别人的根域,你的 xxx 只是它的子域。对方停止服务或清理滥用,你的站就没了。
- 不适合商业/生产。没有 SLA,没有客服,没有备案。
- 搜索收录一般。免费二级域名在 SEO 上天然吃亏。
我的建议:用它做"第一站"和练手项目非常合适;哪天站做起来了、内容有沉淀了,再花几十块买个 .com 或 .dev,迁移到 Cloudflare 只需改一次 NS —— 因为整个架构没变,只是换了根域名而已。
真正的成本从来不是钱,是你迟迟不开始。
本文涉及第三方免费服务,其规则、界面和可用性可能随时变化,以官方文档为准。