在 ServBay 中配置 Cloudflared (Cloudflare Tunnel) 服务指南
Cloudflared 是 Cloudflare 提供的一款强大的工具,它允许您通过 Cloudflare 的全球网络安全地将本地运行的 Web 服务暴露到公共互联网,而无需开放防火墙端口或配置复杂的网络设置。通过 Cloudflare Tunnel,您可以为本地开发项目获得 HTTPS 加密、DDoS 防护以及 Cloudflare CDN 的性能优势。ServBay 内置了对 Cloudflared 的支持,简化了其在 macOS 上的配置和管理。
本指南将详细介绍在 ServBay 中设置和使用 Cloudflared 隧道的步骤。
概述
ServBay 与 Cloudflared 的集成使得开发者能够轻松地将 ServBay 中托管的本地网站连接到 Cloudflare 网络。这意味着您可以使用自定义的子域名(例如 test.yourdomain.com
)从任何地方访问您的本地开发环境。
应用场景
- 专业演示: 使用您自己的品牌域名向客户或团队展示在本地运行的开发成果。
- 稳定的外部测试: 为需要长期稳定公共 URL 的 API 测试、Webhook 集成或外部服务联调提供可靠的接入点。
- 利用 Cloudflare 生态: 受益于 Cloudflare 提供的安全性(如 WAF、机器人管理)和性能(如 CDN 缓存、 Argo Smart Routing - 若适用)。
- 取代传统 DDNS: 为动态 IP 环境下的本地服务提供一个稳定的公共访问域名。
前提条件
- ServBay 已安装: 确保您的 macOS 系统已成功安装并运行 ServBay。
- Cloudflare 账户: 您必须拥有一个有效的 Cloudflare 账户。
- 受管域名: 您需要在您的 Cloudflare 账户中拥有一个已激活并由 Cloudflare 管理 DNS 的域名(例如
yourdomain.com
)。Cloudflared 将在此域名下创建子域名。 - Cloudflare Zero Trust 设置: 您需要在 Cloudflare Zero Trust 仪表盘中创建一个组织 (Team)。这是使用 Cloudflare Tunnel 的前提。
- 访问 Cloudflare Zero Trust Dashboard。
- 如果尚未创建,按照引导设置您的团队名称。此过程通常是免费的。
- 本地网站: 在 ServBay 中至少已添加并运行一个本地网站,例如
servbay.demo
。
操作步骤
1. 在 ServBay 中安装 Cloudflared 软件包
- 打开 ServBay 应用程序。
- 在左侧导航栏中,点击 软件包 (Packages)。
- 在软件包列表中,找到或搜索
Cloudflared
。 - 点击
Cloudflared
旁边的安装按钮。 - 安装完成后,您可以尝试在
Cloudflared
右侧点击启动开关。此时服务可能因未授权而无法正常启动,这是正常现象。
2. 授权 ServBay 访问您的 Cloudflare 账户
为了让 ServBay 能够代表您创建和管理 Cloudflare Tunnel 及相关的 DNS 记录,您需要进行一次授权:
- 在 ServBay 左侧导航栏中,点击 Tunnel。
- 在 Tunnel 服务列表中,选择 Cloudflared。
- 您会看到一个 Login Authorization (登录授权) 按钮(或类似命名的按钮)。点击此按钮。
- 点击后,ServBay 会打开一个新的浏览器窗口,将您重定向到 Cloudflare 的授权页面。
- 在 Cloudflare 页面上,系统会要求您登录(如果尚未登录),然后选择您希望授权 ServBay (Cloudflared) 使用的域名。请选择您在前提条件中准备好的、由 Cloudflare 管理的域名。
- 按照 Cloudflare 页面的提示完成授权流程。
- 授权成功后,返回 ServBay 应用程序。
- 在 Cloudflared 配置界面,点击 Login Authorization (登录授权) 按钮(如果按钮文字未改变)右侧的 刷新图标。这个操作会更新 ServBay 中的授权状态。
- 如果授权成功,Login Authorization (登录授权) 按钮会变为 Cancel Authorization (取消授权)。
3. 在 ServBay 中配置隧道
成功授权后,您可以开始配置具体的隧道:
Local Domain (本地网站):
- 点击下拉菜单,选择您希望通过 Cloudflared 暴露到公网的本地 ServBay 网站。例如,选择
servbay.demo
。
- 点击下拉菜单,选择您希望通过 Cloudflared 暴露到公网的本地 ServBay 网站。例如,选择
Subdomain (子域名):
- 在此输入框中,为您选择的本地网站指定一个子域名。例如,输入
test
或project-alpha
。 - ServBay 会将此子域名与您在 Cloudflare 授权的域名结合起来,形成完整的公共 URL。例如,如果您授权的域名是
yourdomain.com
,输入的子域名是test
,那么最终的公共 URL 将是test.yourdomain.com
。 - 界面上会显示您授权的域名后缀,例如
.yourdomain.com
(截图中的.ks.do
即为此处的示例)。
- 在此输入框中,为您选择的本地网站指定一个子域名。例如,输入
添加更多隧道:
- 如果您希望为多个本地网站创建隧道(每个隧道使用不同的子域名),可以点击现有隧道条目右侧的
+
(加号) 按钮来新增一条隧道配置。重复上述步骤配置新的本地网站和子域名。
- 如果您希望为多个本地网站创建隧道(每个隧道使用不同的子域名),可以点击现有隧道条目右侧的
4. 保存配置并启动服务
- 完成所有隧道配置后,点击右下角的 Save (保存) 按钮。
- ServBay 将会:
- 创建一个名为
servbay-tunnel-xxxxx
的 Cloudflare Tunnel,其中xxxxx
为一个随机标识符。 - 与 Cloudflare API 通信,为每个配置的条目添加到 Cloudflare Tunnel 中。
- 在您授权的 Cloudflare 域名下,为每个配置条目自动创建相应的 CNAME DNS 记录,将您指定的子域名指向该隧道。
- 创建一个名为
- 保存后,Cloudflared 服务应会自动启动(或您可以手动点击启动开关)。观察
Cloudflared
服务条目旁边的状态指示灯,绿色表示服务正在运行。 - 验证访问:
- 您现在应该可以通过配置的公共 URL (例如
test.yourdomain.com
) 从任何地方访问您的本地网站了。 - 点击外部域名旁边的 复制图标 复制该 URL,或点击 浏览器图标 直接在浏览器中打开。
- 您现在应该可以通过配置的公共 URL (例如
注意
- 因为 Cloudflared 的节点数量较多,保存后建立连接需要较长时间,请不要点击保存按钮后马上访问。请稍等几秒钟,等 ServBay 返回成功信息后再进行访问。
- DNS 记录的创建和全球传播可能需要一些时间(从几秒到几分钟不等)。如果无法访问,请稍等片刻再试,并请使用
sudo killall -HUP mDNSResponder
清除本地的 DNS 记录缓存。
5. 管理 Cloudflared 隧道
在 ServBay 的 Cloudflared 配置界面:
- 复制外部域名: 点击复制图标。
- 在浏览器中打开: 点击浏览器图标。
- 添加隧道: 点击
+
图标。 - 移除隧道: 点击
-
(减号) 图标并保存。移除后,ServBay 会尝试删除对应的 Cloudflare Tunnel 和 DNS 记录。 - 取消授权: 点击 Cancel Authorization (取消授权) 按钮可以撤销 ServBay 对您 Cloudflare 账户的访问权限。这将导致所有已配置的 Cloudflared 隧道停止工作。
- 停止/启动服务: 您可以点击
Cloudflared
服务条目旁边的开关来停止或启动整个 Cloudflared 服务。
注意事项
- DNS 传播: 创建或更改子域名后,DNS 记录在全球生效可能需要一些时间。
- Cloudflare Tunnel 管理: 您也可以直接登录到您的 Cloudflare Zero Trust Dashboard (通常在 Access -> Tunnels 下) 查看和管理由 ServBay 创建的隧道。
- 安全性: Cloudflare Tunnel 本身是安全的。您可以进一步在 Cloudflare 仪表盘中为您的隧道和域名配置额外的安全策略,如 WAF 规则、访问策略等。
- 域名授权限制: 通常情况下,ServBay 一次只能授权并使用一个 Cloudflare 账户下的一个域名来进行隧道创建。如果您需要使用不同的主域名,可能需要先取消当前授权,然后重新授权新的域名。
- Cloudflare 服务条款: 请确保您的使用方式符合 Cloudflare 的服务条款。
- 中国大陆用户: 中国大陆用户有可能无法稳定使用 Cloudflared 服务。
常见问题 (FAQ)
- Q: 点击“Login Authorization”后,Cloudflare 页面提示错误或无法选择域名怎么办?
- A: 确保您已登录正确的 Cloudflare 账户,并且该账户下确实拥有由 Cloudflare 管理 DNS 的域名。同时,确认您已在 Cloudflare Zero Trust 中设置了团队。
- Q: 我配置了子域名并保存了,但无法通过
subdomain.mydomain.com
访问?- A: 首先,请等待几分钟以确保 DNS 记录已传播。其次,检查 ServBay 中 Cloudflared 服务的状态是否为绿色运行状态。最后,登录 Cloudflare 仪表盘,检查对应的 Tunnel 是否已成功创建且状态正常,以及 DNS 记录是否已正确添加。
- Q: Cloudflared 和 Ngrok/Pinggy 等工具有何不同?
- A: Cloudflared 的主要优势在于它深度集成了 Cloudflare 的网络和安全服务,并且允许您使用自己的域名和子域名,通常更适合需要稳定、品牌化和具有一定安全防护的公共访问场景。Ngrok 和 Pinggy 可能在快速、临时共享方面更为便捷,尤其对于免费用户。
总结
通过 ServBay 对 Cloudflared 的集成,macOS 开发者可以轻松利用 Cloudflare 强大而安全的基础设施,将本地开发项目以专业的方式暴露到公网。遵循本指南的步骤,您可以快速设置并运行 Cloudflare Tunnel,享受自定义域名带来的便利以及 Cloudflare 提供的额外保护和性能。