Cloudflare 部署全教程:从注册账号到网站上线

Cloudflare 部署全教程:从注册账号到网站上线

手把手走完 Cloudflare 部署全流程——注册账号、域名托管、DNS 解析、Pages 部署静态站、绑定域名、SSL 配置。每一步都写清"点哪里、填什么、看到什么算成功"。

这篇教程只有一个目标:带你从零把网站部署上线,全程不用买服务器。

我会按"第 1 步、第 2 步"这样的顺序一路写下去,每一步都告诉你三件事:

  1. 点哪里(界面上找什么)
  2. 填什么(具体填什么值)
  3. 看到什么算成功(怎么判断这步过了)

最后还会给一张故障速查表。如果你卡在某一步,先去那张表里找症状。

预计耗时:域名 NS 生效要等一会儿,其余操作加起来 20 分钟以内。


第 0 步:先搞清楚 Cloudflare 免费给你什么

这一步不用操作,先看一眼它免费给的是什么,后面选方案心里有数。

Cloudflare 免费(Free 计划)提供的是这些:

能力免费额度你拿它干什么
DNS 托管1000 条记录把域名解析交给它管
SSL/TLS 证书自动签发 + 自动续期全站 HTTPS
CDN无限带宽全球节点缓存加速
Pages每月 500 次构建、无限带宽、100 个自定义域名托管静态网站
Workers每天 10 万次请求跑边缘函数
R2 对象存储10 GB存文件

注意最后没有"域名"这一项。

很多人以为 Cloudflare 送域名,不是的。它免费给的是"托管能力",域名本身得你自己有。

所以完整链路是这样的:

text
你有一个域名
     ↓ 改 NS
托管到 Cloudflare(拿到 DNS + CDN + SSL)
     ↓ 连 Git 仓库
用 Pages 部署网站
     ↓ 绑域名
别人访问你的域名就能看到网站

第 1 步:注册 Cloudflare 账号

操作:

  1. 浏览器打开 dash.cloudflare.com
  2. 点 Sign Up(注册)
  3. 填邮箱 + 密码
  4. 去邮箱收验证邮件,点里面的链接

看到什么算成功: 能进到控制台首页,左侧有一排菜单(Websites、Workers & Pages 等)。

免费计划不需要信用卡,注册完就能用。


第 2 步:准备一个域名

这一步有三个方案,按你的情况挑一个。

方案 A:买一个(推荐)

.xyz、.top、.icu 这类后缀,一年十几块钱。任何域名注册商都能买。

为什么推荐买:域名所有权在你手里,不会被收回,也不用担心服务商跑路。一年十几块换的是这份确定性。

方案 B:用免费域名

如果只是想练手、做测试,或者暂时不想花钱,可以先用免费域名。这类服务给你的是别人域名下的一个二级域名(形如 你的名字.xxx.org),你拿到的是使用权,不是所有权。

挑平台时,最重要的判断标准是:能不能改 NS 记录。

因为第 3 步要把域名托管到 Cloudflare(才能用上 CDN、免费 SSL、Pages)。只有能自由修改 NS 的平台,域名才托管得进去。

按这个标准,目前(2026 年 9 月)还在运行的有这几个:

平台拿到的域名形态能否改 NS 接入 Cloudflare审核说明
EU.orgxxx.eu.org✅ 支持自定义 NS人工审核,约 3~7 个工作日1996 年运营至今的非营利组织,永久免费、不用续费。最稳,但要耐心等审核
DigitalPlatxxx.dpdns.org✅ 支持基本即时注册即可用,支持自动续期。上手最快
register.us.kgxxx.us.kg✅ 支持需提交 KYC 材料支持 Unicode 前缀,能注册带表情符号的域名。要上传身份信息,介意就跳过
DNSHe.ml / .ga / .us.ci 等一级域名✅ 支持基本即时免费账户最多持有 3 个。给的是一级域名而非二级,比较少见
ClouDNS Free Zonexxx.abrdns.com❌ 不支持无需审核,秒级生效它的免费套餐本质是「免费 DNS 托管」,域名和 DNS 都归它管,接不进 Cloudflare

⚠️ 时效性提醒:免费域名平台的生命周期普遍不长——有的会停止受理新注册,有的会突然改政策。上表是 2026 年 9 月的状态,用之前自己去官网确认一遍。另外建议用 163 或 Gmail 注册,部分平台会拦截 QQ 邮箱。

免费域名的通病:

  • 域名所有权不在你手里,服务商随时可能收回或跑路
  • 部分免费后缀被滥用得厉害,有些平台会直接拉黑
  • 域名一旦没了,你上面所有配置全废

拿到域名之后,回到第 3 步把 NS 改成 Cloudflare 的,后面的流程完全一样。

方案 C:干脆不要域名

Cloudflare Pages 部署完本身就送一个 项目名.pages.dev 的地址,能直接访问、自带 HTTPS。纯粹自己看、做测试的话,这个地址完全够用——可以跳过第 3 步,直接做第 5 步。

缺点是地址不好记、不好看,而且国内部分网络环境访问 pages.dev 不稳定。这也是建议绑自己域名的原因。


第 3 步:把域名接进 Cloudflare

这一步是整个流程里最容易卡住的。

3.1 添加站点

操作:

  1. 登录 Cloudflare,左侧菜单找 Websites,或者首页上的 Add a site
  2. 输入你的域名——只填域名本身:
    正确错误
    example.comhttps://example.com
    www.example.com
    example.com/blog
  3. 选择套餐,选 Free(0 元那个)
  4. 它会自动扫描你域名现有的 DNS 记录,等扫描完点 Continue

界面大概长这样:

Cloudflare 添加站点界面:输入域名、选择 Free 计划

3.2 记下 Cloudflare 给你的两个 NS

扫描完之后,页面上会给你两个 nameserver 地址,长这样:

text
alex.ns.cloudflare.com
bella.ns.cloudflare.com

每个账号拿到的都不一样,以你屏幕上看到的为准。 复制下来,下一步要用。

3.3 去域名注册商改 NS

打开你买域名 / 申请域名的那个网站后台,找到"DNS 管理"或"名称服务器 / Nameservers"设置:

  1. 把原来的 NS 记录全部删掉
  2. 填入 Cloudflare 给你的那两个
  3. 保存

这一步的常见问题:

问题怎么办
注册商锁了域名先去"域名安全"里关闭"域名锁定 / 转移锁"
不让直接编辑 NS有些注册商要求先切到"自定义 DNS"模式
找不到 NS 设置在哪搜"注册商名字 + 修改 nameserver",各家后台位置差别很大

3.4 怎么确认这步成功了

回到 Cloudflare 首页,你那个域名的状态会从 Pending 变成 Active。

  • 生效时间:几分钟到 24 小时,通常 10 分钟内
  • 超过 24 小时还是 Pending → 自己查一下 NS 到底改没改:
bash
nslookup -type=ns example.com

看返回的 nameserver 是不是 Cloudflare 给你的那两个。改成功的输出长这样:

nslookup 返回 Cloudflare 的 nameserver,说明 NS 已生效

如果还是原来的 → 说明注册商那边根本没保存成功,回去重做 3.3。

如果已经是那两个,但状态还是 Pending → 只是还没同步,再等等。

本地 DNS 和浏览器都有缓存,换个网络环境或者等一会儿再试。


第 4 步:配置 DNS 解析

域名托管成功后,就可以加解析记录了。在 DNS → Records 里操作。

4.1 常见记录类型

类型名称(Name)内容(Content)用途
A@1.2.3.4根域名指向一个 IP
Ablog1.2.3.4blog.example.com 指向某个 IP
CNAMEwwwexample.com别名,跟着目标走
CNAMEdocs项目名.pages.dev指向 Cloudflare Pages
TXT@v=spf1 ...邮箱验证、域名所有权验证

@ 代表根域名本身。

4.2 橙云还是灰云

加记录时右边有个云朵图标,可以点击切换,这是 Cloudflare 的特色:

  • 🟠 橙色(Proxied,已代理):流量先经过 Cloudflare,享受 CDN 加速、隐藏源站真实 IP、免费 SSL
  • ⚪ 灰色(DNS only,仅 DNS):只做解析,流量直接连源站,Cloudflare 不插手

怎么选:

场景选哪个
普通网站🟠 橙云
第三方服务要验证域名归属(如 Vercel 校验 CNAME)⚪ 先灰云,验证过了再改回橙云
需要对外暴露真实 IP⚪ 灰云

一个常见困惑:开了橙云之后,ping 你的域名返回的是 Cloudflare 的 IP,不是你自己服务器的 IP。这是正常的代理行为。

这一步如果你用 Pages 部署:可以暂时跳过。第 6 步绑自定义域名时,Cloudflare 会自动帮你加好记录。


第 5 步:用 Pages 部署静态站点

到主角了。Pages 有两种部署方式,先讲推荐的。

5.1 方式一:连接 Git 仓库(推荐)

原理:你把代码推到 GitHub,Cloudflare 监听这个仓库,每次有推送就自动拉代码、跑构建、发上线。你只管 git push,剩下的它做。

操作:

  1. 进入 Workers & Pages → Create application
  2. 切到 Pages 标签 → Connect to Git
  3. 授权 Cloudflare 访问你的 GitHub 账号(第一次会跳到授权页)
  4. 选择要部署的仓库
  5. 配置构建参数(见下表)
  6. 点 Save and Deploy

构建参数怎么填:

字段填什么
Project name项目名,会决定默认域名 项目名.pages.dev
Production branch生产分支,一般是 main
Framework preset框架预设,选对会自动填下面两项;不确定就选 None 手动填
Build command构建命令
Build output directory构建产物目录(最容易填错的一项)

表单大概长这样(这里以 Nuxt 项目为例):

Pages 构建参数表单:构建命令、输出目录、环境变量

常见框架对照表:

框架Build commandBuild output directory
Nuxtnpm run generatedist
Vite / Vue / Reactnpm run builddist
Next.js(静态导出)npm run buildout
Astronpm run builddist
Hugohugopublic
Hexohexo generatepublic
纯 HTML / CSS / JS留空/ 或你的目录名

三个最容易翻车的地方:

① 输出目录填错

症状:构建日志显示成功,但访问站点 404。

原因就是产物根本不在你填的那个目录里。

正确做法:先在本地跑一次构建命令,看产物到底生成在哪个文件夹,再回来填。

② Node 版本不匹配

症状:构建报语法错误,或者依赖装不上。

解决:在 Settings → Environment variables 里加一个环境变量:

text
NODE_VERSION = 20

(填你项目需要的版本,18 / 20 / 22 都行)

③ 包管理器搞混

仓库里有 pnpm-lock.yaml,用 npm install 会装出另一套依赖树。

Cloudflare 会根据 lock 文件自动判断用哪个包管理器。同时存在多个 lock 文件(比如既有 package-lock.json 又有 pnpm-lock.yaml)时,它可能判断错——留一个就够。

5.2 方式二:Wrangler CLI 直传

不想连 Git,或者想在本地构建好再传?用官方命令行工具。

操作:

bash
# 第 1 步:安装
npm install -g wrangler

# 第 2 步:登录(会弹出浏览器授权)
wrangler login

# 第 3 步:确认登录的是哪个账号
wrangler whoami

# 第 4 步:部署
wrangler pages deploy ./dist --project-name=my-site

看到什么算成功:命令最后会输出一个 xxx.pages.dev 的地址。完整输出类似:

wrangler pages deploy 部署成功后的输出

其他常用命令:

bash
# 看所有项目
wrangler pages project list

# 看部署历史
wrangler pages deployment list --project-name=my-site

# 回滚到某次部署
wrangler pages deployment rollback <部署ID> --project-name=my-site

注意:--project-name 指定的项目如果不存在,命令会提示你先创建。


第 6 步:绑定自定义域名

部署完,Cloudflare 会给你一个 项目名.pages.dev 的地址。能访问,但不好看。绑自己的域名:

操作:

  1. 进入你的 Pages 项目
  2. 点 Custom domains → Set up a custom domain
  3. 输入你的域名 → 确认

接下来会发生什么,取决于域名在哪:

情况你需要做什么
域名就在同一个 Cloudflare 账号下什么都不用做,它自动帮你加好 DNS 记录
域名在别处它会提示你手动加一条 CNAME,指向 项目名.pages.dev

然后等证书签发,通常几分钟。

看到什么算成功:域名状态变成 Active。

如果一直卡在"正在验证":

  • 检查 DNS 记录是不是真的加上了(nslookup 你的域名)
  • 检查 CNAME 的目标地址有没有写错
  • 如果开了橙云而源站是第三方 → 先切成灰云试试

第 7 步:检查 SSL/TLS 设置

SSL/TLS → Overview → Encryption mode,有四种模式:

模式含义什么时候用
Off不加密没有使用场景
Flexible浏览器到 CF 加密,但 CF 到源站是明文 HTTP❌ 不推荐
FullCF 到源站加密,但不验证证书源站只有自签证书时
Full (strict)CF 到源站加密 + 验证证书✅ 推荐

如果你用 Pages 托管:不用管这个设置。Pages 的内容直接由 Cloudflare 提供,没有独立源站。

如果你有独立源站:配错最典型的症状是浏览器报 "重定向次数过多"(ERR_TOO_MANY_REDIRECTS)。

原因:CF 用 HTTP 去连源站,源站强制跳转到 HTTPS,CF 收到 301 后又用 HTTP 再试……死循环。

解决:把模式改成 Full (strict)。

另外建议顺手开两个开关:

  • SSL/TLS → Edge Certificates → Always Use HTTPS:把 HTTP 请求自动跳转到 HTTPS
  • Automatic HTTPS Rewrites:自动把页面里的 http 资源替换成 https,避免"混合内容"警告

第 8 步:验证部署真的成功了

三个地方看,按这个顺序:

  1. 构建日志:项目 → Deployments,每次部署都有一条记录,点进去看日志
    绿勾 = 成功,红叉 = 失败,失败会明确告诉你在哪一步挂掉
  2. 默认域名:直接访问 项目名.pages.dev
  3. 自定义域名:访问你自己的域名

按这个顺序判断,能直接定位到问题在哪一层:

现象说明问题在哪
默认域名通了、自己的域名不通构建和部署没问题,问题在域名绑定(回去看第 6 步)
默认域名也不通问题在构建产物(回去看 5.1 的三个坑)

故障速查表

卡住了先来这里找症状:

现象最可能的原因怎么解决
构建失败Node 版本不对加环境变量 NODE_VERSION
构建成功但 404输出目录填错本地跑一次构建,确认产物路径
页面样式全丢资源根路径不对检查框架的 base / root 配置
重定向次数过多SSL 模式是 Flexible改成 Full (strict)
域名完全打不开NS 没生效nslookup -type=ns 域名 检查
域名一直 Pending注册商没保存成功回去重做第 3.3 步
证书一直签发中DNS 记录缺失检查 CNAME / A 记录
部署成功但内容没更新浏览器缓存强制刷新(Ctrl + Shift + R)
git push 后没触发构建分支设置不对检查 Production branch
pages.dev 打不开网络环境问题绑自己的域名(第 6 步)

免费额度够用吗

对个人站点,完全够用:

项目免费额度说明
Pages 构建每月 500 次得每天推 16 次才能用完
Pages 带宽无限不限制流量
Pages 自定义域名100 个一个站点绑一个就够
Workers 请求每天 10 万次接口转发、定时任务这类用途要算量
DNS 记录1000 条用不完
R2 存储10 GB对象存储

需要算量的是 Workers——做接口转发、定时任务这类持续调用的用途,10 万次/天消耗得比想象中快。Pages 的静态托管没有流量限制。


结语

走完这 8 步,你得到的是一个能自动部署的静态站点:以后改内容只要 git push,剩下的 Cloudflare 自己做。

回看整个过程,真正容易卡住的其实只有三处:

  1. 改 NS 之后一直 Pending —— 多半是注册商那边没保存成功
  2. 构建成功但页面 404 —— 输出目录填错了
  3. 域名绑不上 —— 先确认默认的 pages.dev 地址通不通,以此判断问题在哪一层

这篇里的每一步都尽量写清了"看到什么算成功",但实际操作中总会遇到环境差异——你的框架版本、注册商界面、网络环境都可能跟示例不一样。

真卡住了就把报错原样贴给 AI,让它带你定位。


附:不想自己一步步点?把这段丢给 Claude

下面这段整段复制给 Claude(Claude Code、Claude 桌面版都行),它会替你执行——自己检查环境、跑命令、看报错。遇到必须你本人操作的(比如浏览器授权),它会告诉你。

text
帮我把 <你的项目绝对路径> 部署到 Cloudflare Pages,你全程执行,我只在需要浏览器授权时点一下。

1. 检查 node / git 环境,缺什么告诉我怎么装
2. 读 package.json 确认构建命令,实际跑一次构建,看产物目录在哪
3. 装 wrangler 并登录(会弹浏览器让我授权)
4. 创建 Pages 项目并部署,先不绑自定义域名
5. 把访问地址给我,并实际请求一次确认能打开

报错自己看日志定位修复,需要我做什么直接说。
把桌面 AI 软件变成本地 API:手把手反代教程
MoeCTF 2026 WP 合集

评论区

评论加载中...