跳到主要内容ClawdBot + Cloudflare Tunnel + Zero-Trust 部署指南 | 极客日志Shell / BashNode.jsSaaS
ClawdBot + Cloudflare Tunnel + Zero-Trust 部署指南
如何在 Windows、Linux 或 macOS 系统上部署 ClawdBot,并通过 Cloudflare Tunnel 实现内网穿透,结合 Zero-Trust 服务进行身份认证和安全访问。内容包括环境准备、Tunnel 安装与配置、DNS 设置、ClawdBot 安装(Docker 及手动方式)、Zero-Trust 策略配置以及故障排查。最终实现无需公网 IP 的安全远程访问方案。
氛围34 浏览 ClawdBot + Cloudflare Tunnel + Zero-Trust 部署指南
准备工作
在开始之前,请确保你已经准备好以下内容:
必需清单
- Cloudflare 账户(免费版即可)
- 一个域名(可以是新买的,也可以是已有的)
- 一台服务器(Windows 或 Linux 都可以,甚至可以是你的家用电脑)
- ClawdBot 安装包
- 基本的网络连接
重要说明
问题:我没有域名怎么办?
解决方案:
- 直接在 Cloudflare 购买域名
- 或者在其他域名注册商购买后添加到 Cloudflare
- 或者使用 Cloudflare Tunnel 的临时域名进行测试
问题:我没有服务器怎么办?
解决方案:
- 使用家里的电脑(Windows 或 Linux 都可以)
- 租用一台云服务器
- 使用树莓派等设备
第一步:注册和准备 Cloudflare
1.1 注册 Cloudflare 账户
- 访问 Cloudflare 官网
- 验证邮箱
- 注册后,Cloudflare 会发送验证邮件到你的邮箱
- 打开邮箱,点击验证链接
- 登录 Cloudflare Dashboard
1.2 添加域名到 Cloudflare
如果你已经有域名:
- 添加站点
- 登录 Cloudflare Dashboard 后,点击"添加站点"
- 输入你的域名,点击"添加站点"
- 选择计划
- 扫描 DNS 记录
- Cloudflare 会自动扫描你域名的现有 DNS 记录
- 更改域名服务器
- 去你的域名注册商修改域名服务器为 Cloudflare 提供的两个地址
- 等待激活
- 更改域名服务器后,回到 Cloudflare Dashboard 检查名称服务器
如果你没有域名:
你有两个选择:
选择一:直接在 Cloudflare 购买域名
- 进入域名注册页面
- 登录 Cloudflare Dashboard,点击左侧菜单的"注册域名"
验证域名
- 购买完成后,在 Cloudflare Dashboard 中查看域名状态
选择二:使用临时域名测试
- 这会创建一个临时的 Tunnel,并给你一个临时域名
- 这个域名可以用于测试,但每次重启 Tunnel 可能会变化
cloudflared tunnel --url http://localhost:8080
1.3 验证域名状态
在 Cloudflare Dashboard 中:
- 左侧菜单选择你的域名
- 你应该看到域名状态显示为"有效"
- DNS 记录中应该有一些默认记录
第二步:安装 Cloudflare Tunnel
Cloudflare Tunnel 是一个工具,它会在你的服务器和 Cloudflare 之间建立一个安全的加密隧道。
2.1 Windows 系统安装
方法一:使用 Chocolatey
以管理员身份打开 PowerShell,运行以下命令:
choco install cloudflared -y
Set-ExecutionPolicy Bypass -Scope Process-Force;[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;iex((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
方法二:手动下载安装
- 下载 cloudflared
- 安装到系统
- 将下载的文件重命名为
cloudflared.exe
- 复制到
C:\Windows\System32\ 目录
- 验证安装
- 打开新的 PowerShell 窗口,运行:
cloudflared --version
2.2 Linux 系统安装
Ubuntu/Debian 系统
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o cloudflared.deb
sudo dpkg -i cloudflared.deb
CentOS/RHEL/Rocky Linux 系统
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-x86_64.rpm -o cloudflared.rpm
sudo rpm -i cloudflared.rpm
通用方法(所有 Linux 系统)
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64
sudo mv cloudflared-linux-amd64 /usr/local/bin/cloudflared
sudo chmod +x /usr/local/bin/cloudflared
2.3 macOS 系统安装
方法一:使用 Homebrew
方法二:手动下载安装
- 下载 cloudflared
- 解压文件
tar -xzf cloudflared-darwin-amd64.tgz
sudo mv cloudflared /usr/local/bin/cloudflared
sudo chmod +x /usr/local/bin/cloudflared
2.4 验证安装成功
第三步:配置 Cloudflare Tunnel
3.1 登录 Cloudflare
这一步会将你的 cloudflared 工具与你的 Cloudflare 账户关联起来。
- 浏览器自动打开,登录 Cloudflare 账户
- 选择你要使用的域名
- 验证登录成功后,会在用户目录下生成证书文件
3.2 创建 Tunnel
Tunnel 是连接你服务器和 Cloudflare 的通道。
cloudflared tunnel create clawdbot-tunnel
输出中的 ID 就是你的 Tunnel ID,请复制并保存。
3.3 创建配置文件
- Windows:
C:\Users\你的用户名\.cloudflared\config.yml
- Linux:
~/.cloudflared/config.yml
- macOS:
~/.cloudflared/config.yml
tunnel: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
credentials-file: /root/.cloudflared/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.json
ingress:
- hostname: clawdbot.yourdomain.com
service: http://localhost:8080
- service: http_status:404
mkdir -p ~/.cloudflared
nano ~/.cloudflared/config.yml
3.4 配置 DNS 记录
现在需要在 Cloudflare 中配置 DNS 记录,将你的域名指向 Tunnel。
- 登录 Cloudflare Dashboard
- 进入 DNS 设置
- 添加 CNAME 记录
- 类型:CNAME
- 名称:clawdbot
- 目标:
Tunnel-ID.cfargotunnel.com
- 代理状态:已代理(橙色云朵)
nslookup clawdbot.yourdomain.com
3.5 测试运行 Tunnel
cloudflared tunnel run clawdbot-tunnel
打开浏览器,访问:https://clawdbot.yourdomain.com
3.6 配置为系统服务(自动启动)
Windows 系统
.
ssm.exe install CloudflaredTunnel "C:\Windows\System32\cloudflared.exe" "tunnel --config C:\Users\你的用户名\.cloudflared\config.yml run clawdbot-tunnel"
Linux 系统
sudo nano /etc/systemd/system/cloudflared.service
[Unit]
Description=Cloudflare Tunnel
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/cloudflared tunnel --config /root/.cloudflared/config.yml run clawdbot-tunnel
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable cloudflared
sudo systemctl start cloudflared
macOS 系统
nano ~/Library/LaunchAgents/com.cloudflare.cloudflared.plist
launchctl load ~/Library/LaunchAgents/com.cloudflare.cloudflared.plist
第四步:安装 ClawdBot
4.1 获取 ClawdBot
git clone https://github.com/clawdbot/clawdbot.git
cd clawdbot
wget https://github.com/clawdbot/clawdbot/releases/latest/download/clawdbot-linux-amd64.tar.gz
tar -xzf clawdbot-linux-amd64.tar.gz
4.2 使用 Docker 安装(推荐)
version: '3.8'
services:
clawdbot:
image: clawdbot/clawdbot:latest
container_name: clawdbot
restart: unless-stopped
ports:
- "127.0.0.1:8080:8080"
environment:
- NODE_ENV=production
- PORT=8080
volumes:
- ./data:/app/data
- ./logs:/app/logs
4.3 手动安装
pip install -r requirements.txt
python app.py
4.4 重要配置:只监听 localhost
非常重要: ClawdBot 应该只监听 localhost 或 127.0.0.1,不要监听 0.0.0.0。
ports:
- "127.0.0.1:8080:8080"
app.listen(8080, '127.0.0.1', () => {
console.log('Server running on http://127.0.0.1:8080');
});
app.run(host='127.0.0.1', port=8080)
4.5 安装后验证清单
- ClawdBot 服务正在运行
- 可以通过
http://localhost:8080 访问
- 端口只监听
127.0.0.1:8080
- 日志中没有错误信息
第五步:配置 Zero-Trust 登录
5.1 启用 Zero Trust
- 登录 Cloudflare Dashboard
- 选择计划
- 设置团队名称
5.2 配置身份提供商
选项 A:使用 One-time PIN
选项 B:使用 Google/Microsoft/GitHub 登录
- 创建 OAuth 应用
- 在 Cloudflare 中配置
- Client ID 和 Client Secret
5.3 创建访问策略
- 进入应用设置
- 选择应用类型
- 配置策略
- Policy name: Allow Team Members
- Action: Allow
- Include: Emails
5.4 验证 Zero-Trust 配置
- 访问应用
- 访问:
https://clawdbot.yourdomain.com
- 测试登录
第六步:测试和验证
6.1 测试 Tunnel 连接
cloudflared tunnel info clawdbot-tunnel
sudo systemctl status cloudflared
6.2 测试 Zero-Trust 登录
6.3 测试安全性
curl -I https://clawdbot.yourdomain.com
常见问题详细解答
Q1: Tunnel 无法启动
- Tunnel ID 错误
- 证书文件路径错误
- 权限问题
Q2: DNS 解析失败
- DNS 记录未正确配置
- DNS 传播延迟
- 域名服务器未更改
Q3: 访问显示 502 Bad Gateway
- 服务未运行
- 端口不正确
- 服务只监听 localhost
Q4: Zero-Trust 登录后无法访问
- Tunnel 配置问题
- ClawdBot 服务问题
- Zero-Trust 配置问题
进阶配置(可选)
1. 多 Tunnel 负载均衡
2. 健康检查和自动故障转移
3. 监控和告警
4. 性能优化
5. 安全加固
部署完成
如果你已经完成了以上所有步骤,恭喜你!你已经成功部署了 ClawdBot,并通过 Cloudflare Tunnel 和 Zero-Trust 实现了安全访问。
部署检查清单
- Cloudflare 账户已注册
- 域名已添加到 Cloudflare
- Cloudflare Tunnel 已安装
- Tunnel 已创建并配置
- DNS 记录已配置
- ClawdBot 已安装并运行
- Zero-Trust 已启用
- 所有测试通过
后续维护
需要帮助?
相关免费在线工具
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
- Base64 文件转换器
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
- Markdown转HTML
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
- HTML转Markdown
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
- JSON 压缩
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
- JSON美化和格式化
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online