跳到主要内容

使用 Cloudflare Zero Trust 暴露服务

Cloudflare Zero Trust(原 Cloudflare Access)提供企业级的安全访问控制,适合需要更高安全性和性能的用户。

为什么选择 Cloudflare Zero Trust?
  • 企业级安全:多层身份验证
  • 全球 CDN:低延迟访问
  • 细粒度控制:基于规则的访问控制
  • 审计日志:详细的访问记录
  • DDoS 防护:自动防护攻击

除了使用 Tailscale,您还可以选择使用 Cloudflare Tunnel 来安全地暴露您的 TeslamateAPI 服务。Cloudflare Tunnel 提供了一种安全的方式,无需开放防火墙端口或配置复杂的网络设置。

配置指南

前置条件

  1. 注册 Cloudflare 账号
  2. 将您的域名添加到 Cloudflare 并更改域名服务器
  3. 确保 TeslaMateAPI 运行在 localhost:8080

步骤 1: 创建隧道

  1. 登录 Zero Trust 控制台
  2. 导航到 Networks > Tunnels
  3. 点击 Create a tunnel
  4. 选择 Cloudflared 连接器类型,然后点击 Next
  5. 为隧道输入描述性名称(例如:teslamate-api-tunnel
  6. 点击 Save tunnel

步骤 2: 安装并运行 Cloudflared

  1. 从环境选项中选择您的操作系统
  2. 复制提供的安装命令
  3. 在终端中运行命令以安装并连接 cloudflared
  4. 等待连接器出现在 Zero Trust 控制台中
  5. 当连接器激活后点击 Next

步骤 3: 配置公共主机名

  1. Public Hostnames 选项卡中,点击 Add a public hostname
  2. 配置主机名:
    • Subdomain: 输入您想要的子域名(例如:teslamate-api
    • Domain: 从下拉菜单中选择您的域名
    • Service: 输入 http://localhost:8080 ⚠️ 重要:使用 HTTP,不是 HTTPS
  3. Additional application settings 下,配置任何需要的参数
  4. 点击 Save hostname
服务配置注意事项

确保使用 http://localhost:8080(不是 https://)作为服务 URL,因为 TeslaMateAPI 通常在内部运行时不使用 SSL。

步骤 4: 测试并配置 Mytesla

  1. 您的 API 现在可以通过 https://your-subdomain.your-domain.com 访问
  2. 测试连接:
    curl https://your-subdomain.your-domain.com/api/ping
    # 应该返回:{"message": "pong"}
  3. Mytesla.cc 中,转到 设置 → TeslaMate
  4. 输入您的 API URL:https://your-subdomain.your-domain.com
  5. 如果配置了 API 令牌,请添加它
  6. 测试连接
  7. 您也可以在浏览器中访问 https://your-subdomain.your-domain.com/api/ping 进行手动验证 - 应该返回 {"message": "pong"}
API 验证

/api/ping 端点专门用于验证 TeslaMateAPI 服务是否可访问且正常工作。成功返回 {"message": "pong"} 表示服务运行正常。

参考文档

详细操作指南请参考 Cloudflare 官方文档: