使用 Cloudflare Zero Trust 暴露服务
Cloudflare Zero Trust(原 Cloudflare Access)提供企业级的安全访问控制,适合需要更高安全性和性能的用户。
为什么选择 Cloudflare Zero Trust?
- ✅ 企业级安全:多层身份验证
- ✅ 全球 CDN:低延迟访问
- ✅ 细粒度控制:基于规则的访问控制
- ✅ 审计日志:详细的访问记录
- ✅ DDoS 防护:自动防护攻击
除了使用 Tailscale,您还可以选择使用 Cloudflare Tunnel 来安全地暴露您的 TeslamateAPI 服务。Cloudflare Tunnel 提供了一种安全的方式,无需开放防火墙端口或配置复杂的网络设置。
配置指南
前置条件
- 注册 Cloudflare 账号
- 将您的域名添加到 Cloudflare 并更改域名服务器
- 确保 TeslaMateAPI 运行在
localhost:8080
步骤 1: 创建隧道
- 登录 Zero Trust 控制台
- 导航到 Networks > Tunnels
- 点击 Create a tunnel
- 选择 Cloudflared 连接器类型,然后点击 Next
- 为隧道输入描述性名称(例如:
teslamate-api-tunnel
) - 点击 Save tunnel
步骤 2: 安装并运行 Cloudflared
- 从环境选项中选择您的操作系统
- 复制提供的安装命令
- 在终端中运行命令以安装并连接 cloudflared
- 等待连接器出现在 Zero Trust 控制台中
- 当连接器激活后点击 Next
步骤 3: 配置公共主机名
- 在 Public Hostnames 选项卡中,点击 Add a public hostname
- 配置主机名:
- Subdomain: 输入您想要的子域名(例如:
teslamate-api
) - Domain: 从下拉菜单中选择您的域名
- Service: 输入
http://localhost:8080
⚠️ 重要:使用 HTTP,不是 HTTPS
- Subdomain: 输入您想要的子域名(例如:
- 在 Additional application settings 下,配置任何需要的参数
- 点击 Save hostname
服务配置注意事项
确保使用 http://localhost:8080
(不是 https://
)作为服务 URL,因为 TeslaMateAPI 通常在内部运行时不使用 SSL。
步骤 4: 测试并配置 Mytesla
- 您的 API 现在可以通过
https://your-subdomain.your-domain.com
访问 - 测试连接:
curl https://your-subdomain.your-domain.com/api/ping
# 应该返回:{"message": "pong"} - 在 Mytesla.cc 中,转到 设置 → TeslaMate
- 输入您的 API URL:
https://your-subdomain.your-domain.com
- 如果配置了 API 令牌,请添加它
- 测试连接
- 您也可以在浏览器中访问
https://your-subdomain.your-domain.com/api/ping
进行手动验证 - 应该返回{"message": "pong"}
API 验证
/api/ping
端点专门用于验证 TeslaMateAPI 服务是否可访问且正常工作。成功返回 {"message": "pong"}
表示服务运行正常。
参考文档
详细操作指南请参考 Cloudflare 官方文档: