使用Cloudflare+Raspberry搭建个人平台
最近我购买了个人域名,一直在思考怎么去搭建个人开发平台,包括OpenClaw智能体平台、个人博客和品牌网站,还需要部署一些自己写的管理子系统。 最简单方式肯定是直接去购买云主机,当前已经买了腾讯云的轻量级应用服务器,但是网络特别卡。要是购买云服务器CVM费用又太高了。 然后我突然想起来我家里还有2台Raspberry还闲置着呢?是不是可以发挥下它的作用。
然后我通过跟DeepSeek交流方案,它给出了一个当前最优的方案:
- 主域名指向我的个人静态网站并托管在Cloudflare Pages上,可保证全球访问的稳定性。
- 一台Raspberry用于部署管理子系统,包含前后端服务。通过Cloudflare Tunnel内网穿透,将域名绑定到我内网Nginx上。 在内网Nginx使用反向代理方式,所有/api请求转发到后端服务,其他请求转发到前端服务,内外服务全部使用HTTP即可。
- 一台Raspberry用于安装OpenClaw智能体平台。并通过长连接方式连接飞书平台,避免开放公网IP。
整体架构图如下:

Cloudflare Pages托管静态网站
我当前使用的是Hugo构建的个人静态网站,源代码托管在GitHub上面。
进入Cloudflare控制台后,在构建 > 计算 > Workers & Pages,点击 “创建应用程序” ➔ “Pages” ➔ “连接到 Git”。
授权访问GitHub仓库,个人私仓也是可以的。填写以下几个参数:
- 框架预设: 在下拉菜单中选择 Hugo
- 构建命令: 本地构建命令保持一致
- 输出目录: 填写 public(即 Hugo 默认的编译输出目录)
- 环境变量:HUGO_VERSION=你本地构建的Hugo版本号
然后点击构建和部署,成功消息
| |
这时候再选择添加自定义域名,输入xiongneng.me后保存,然后回去后再选择添加自定义域名,输入www.xiongneng.me后保存。
然后再去域名注册地方比如我的阿里云,在域名解析地方添加两条CNAME记录,一个是@,一个是www,都指向xiongneng-me.pages.dev
这样设置完成后,每次push到github上面会自动触发Cloudflare Pages的构建流程,整个过程十秒左右。
Cloudflare Tunnel内网穿透
先清空域名解析记录
我之前购买了腾讯云主机,并将域名解析配置到云主机IP。在阿里云上面购买的域名, 因此需要登录阿里云去域名解析那里把我的域名解析记录删掉即可。
准备:将域名托管给 Cloudflare
要让Cloudflare管理你的域名,你需要修改它的DNS服务器,这是后续一切的基础。
注册 Cloudflare 账号,并添加你的域名。输入你的完整域名(不要带 www.),计划选择 Free 免费套餐。
Cloudflare 会提供两个新的 NS (Name Server) 地址,你需要复制下来。以 .ns.cloudflare.com 结尾。
再去阿里云域名控制台,找到你的域名,将它的 DNS 服务器修改为 Cloudflare 提供的那两个 NS 地址。
具体方法是找到 域名与网站 > 域名管理 > 域名列表。在列表中找到你的域名 > 管理 > DNS管理 > DNS修改。
然后点击修改DNS服务器,在弹出的窗口中,删除原来阿里云的 NS 地址,然后再把上面的两个NS地址复制进去。
等待DNS生效(一般几分钟到几小时),期间网站服务可能会短暂中断。生效后,域名就算正式托管给 Cloudflare 了。
安装Nginx
在树莓派上安装Nginx
| |
新增个人域名网站配置/etc/nginx/conf.d/xiongneng.conf,内容如下:
| |
创建隧道:打通内外网
后面两步需要在树莓派的终端里完成,我们一条条来。
🔑 步骤一:安装 cloudflared
| |
🔑 步骤二:认证并创建隧道
| |
这条命令执行后,会给你返回一个浏览器页面地址。将它复制出来,打开浏览器,让你选择域名并授权。它会自动生成TLS证书,耐心等待几秒。 认证成功后,开始创建隧道:
| |
成功后,会生成一个唯一的 Tunnel ID 和对应的 credentials 文件,同时会告诉你如何通过 DNS 路由流量。
🚀 步骤三:配置 DNS
| |
如果以上都没有报错,并且提示连接成功,就说明你的隧道已经跑通了。 服务一旦启用,Cloudflare 会自动为你的域名签发并续期 SSL/TLS 证书,访客看到的将是受信任的安全连接
让隧道常驻后台
在系统服务专用的目录下创建 config.yml
| |
编辑配置文件sudo vim /etc/cloudflared/config.yml,内容如下。
| |
验证配置文件正确性:
| |
创建并启用 Systemd 服务
| |
粘贴以下内容:
| |
这个文件告诉 systemd 如何管理和启动 cloudflared 服务。
启动并验证服务:
| |