什么是Cloudflare?
Cloudflare是一家提供内容分发网络(CDN)服务的公司,它通过在全球各地部署服务器来加速网站和应用程序的访问速度。简单来说,Cloudflare就像是一个高速公路的出口,让网络数据包能够更快地到达目的地。
类比:快递服务
想象一下,你有一个网店,每天都有大量的包裹需要送到全国各地的顾客手中。如果你自己一个个送,不仅耗时耗力,而且成本高昂。这时候,你可以选择使用快递服务,他们有遍布全国的网点和高效的物流系统,可以帮你快速且经济地完成配送任务。
Cloudflare的服务就像是这样一个快递网络。它在全球有数百个数据中心,当用户访问你的网站时,数据会通过离用户最近的数据中心传输,大大减少了延迟,提高了访问速度。
Cloudflare的主要功能
- 加速网站加载速度:通过CDN技术,Cloudflare可以将你的网站内容缓存到全球各地的服务器上,使用户能够从最近的服务器获取内容,从而加快网站的加载速度。
- 提高安全性:Cloudflare提供了多种安全功能,如DDoS攻击防护、Web应用防火墙(WAF)等,可以有效保护你的网站免受恶意攻击。
- 优化SEO:通过提高网站的访问速度和稳定性,Cloudflare有助于提升搜索引擎排名。
- 简化DNS管理:Cloudflare还提供DNS管理服务,使你可以轻松地配置和管理域名的DNS记录。
如何使用Cloudflare?
使用Cloudflare非常简单,只需按照以下步骤操作:
- 注册并登录Cloudflare账户。
- 输入你的网站域名,Cloudflare会扫描你的网站并提供优化建议。
- 根据提示配置Cloudflare设置,如选择计划、启用CDN等。
- 更新你的域名DNS记录,指向Cloudflare提供的DNS服务器。
- 等待一段时间(通常为几分钟到几小时),Cloudflare会开始为你提供服务。
类比:换挡加速
想象一下你在开车,如果想要加速,你可以换到更高的挡位。同样地,使用Cloudflare就像是给你的网站换了一个更高的“挡位”,让它能够更快地响应用户的请求。
Cloudflare Tunnel
建立cloudflare tunnel
① 安装 cloudflared
Cloudflare 官方没直接支持 Rocky Linux 的仓库,不过我们可以用通用方式安装:
# 下载 cloudflared 最新 rpm 包
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-x86_64.rpm
# 下载不下来,可以用windows将github包先下载,再上传至服务器
mv cloudflared-linux-x86_64.rpm /usr/local/src/
# 安装
sudo dnf install -y ./cloudflared-linux-x86_64.rpm
安装完成后,可以验证:
cloudflared --version
② 登录 Cloudflare 账号
cloudflared tunnel login
- 它会打印一个 URL,复制到浏览器打开。
- 登录 Cloudflare 账号后,选择你要操作的域名(
zesheng.lol)。 - 授权成功后,会在服务器
/root/.cloudflared/下生成一个cert.pem文件(凭证)。

③ 创建隧道
# 创建一个名为my-service的隧道
cloudflared tunnel create my-service
# 这会生成一个 JSON 凭证文件,例如:
/root/.cloudflared/xxxxxx.json

④ 绑定域名
把 linux.zesheng.lol 和隧道关联:
cloudflared tunnel route dns my-service linux.zesheng.lol
执行后,Cloudflare 会自动在你的 DNS 管理里添加一条 CNAME,把 `linux.zesheng.lol` 指向 Cloudflare 内部的隧道地址。


⑤ 配置回源
在 /root/.cloudflared/config.yml 写入:
tunnel: my-service
credentials-file: /root/.cloudflared/xxxxxx.json
ingress:
- hostname: linux.zesheng.lol
service: http://localhost:8088 # 假设你的服务运行在 本机 8088 端口
- service: http_status:404
⑥ 启动隧道
# 测试运行,访问linux.zesheng.lol,看能否到达本机的http://localhost:8088
cloudflared tunnel --config ~/.cloudflared/config.yml ingress validate
# 运行成功了
cloudflared tunnel run my-service如果正常,可以注册为 systemd 服务,开机自启:
sudo cloudflared service install
sudo systemctl enable --now cloudflared
systemctl status cloudflared
⑦浏览器访问效果
Cloudflare 会自动通过 Tunnel 把请求转发到你服务器的 localhost:8088,不会再触发阿里云备案拦截。
http://linux.zesheng.lol
追加Cloudflare Tunnel配置
想在同一台服务器上,再让另一个服务(**localhost:9099****)通过 **bb.zesheng.lol** 访问。用 Cloudflare Tunnel 非常方便追加配置。核心思路是 在同一个隧道里增加一个 ingress 条目,或单独建一个隧道。 **
你想在同一台服务器上,再让另一个服务(localhost:9099)通过 bb.zesheng.lol 访问。用 Cloudflare Tunnel 非常方便追加配置。核心思路是 在同一个隧道里增加一个 ingress 条目,或单独建一个隧道。
方法 A:在同一个隧道里追加 ingress(推荐)
1️⃣ 编辑隧道配置文件
打开你现有的隧道配置 /root/.cloudflared/config.yml:
tunnel: my-service
credentials-file: /root/.cloudflared/xxxxxxxx.json
ingress:
- hostname: linux.zesheng.lol
service: http://localhost:8088
- hostname: web.zesheng.lol
service: http://localhost:9099
- service: http_status:404解释:
- hostname:访问的域名
- service:本机对应服务地址(端口)
- 最后的
http_status:404用于匹配其它请求
2️⃣ DNS 设置
在 Cloudflare DNS 里为 web.zesheng.lol 添加一条 CNAME:
- Type: CNAME
- Name: web
- Target: 会自动指向
my-service.cfargotunnel.com(如果你之前用了cloudflared tunnel route dns,确认 CNAME 指向正确) - Proxy status: Proxied(橙色云)
注意:同一个隧道可以绑定多个域名,所以这个 CNAME 目标可以复用原来的隧道地址。
3️⃣ 重启隧道
更新配置后,需要重启 tunnel 才生效:
sudo systemctl restart cloudflared或者如果你是直接用 cloudflared tunnel run my-service,就停止后重新运行。
4️⃣ 测试
在浏览器访问:
http://web.zesheng.lol- 请求会通过 Cloudflare → Tunnel → 本机 9099
- 用户无需写端口,透明访问
方法 B:单独创建一个新隧道
- 也可以单独为
web.zesheng.lol创建新隧道(例如叫web-service) - 优点:管理独立,互不干扰
- 缺点:多了一个隧道进程,稍占资源
💡 总结
- 同一个隧道:在
config.yml追加 ingress 条目 → DNS CNAME 指向隧道 → 重启 tunnel - 新隧道:独立 tunnel + CNAME
删除多余的tunnel
①查看tunnel
cloudflared tunnel list②查看tunnel信息
cloudflared tunnel info my-service③删除tunnel
cloudflared tunnel delete my-service托管域名
购买域名
目前我是在porkbun上购买的域名,花费大概在2美元1年
直接使用alipay支付宝支付,
liaozesheng.lol
交给cf托管
在cf上域名板块选择添加域名,将域名地址liaozesheng.lol添加进去之后,选择免费计划,自动检测。
将cf分配的nameservers替换掉porkbun上默认的nameservers。

替换成功后,cf上重新检测等待结果就好,一般1小时左右。