本指南介绍了如何使用 cloudflared 将 Google Cloud Platform (GCP) 虚拟机连接到 Cloudflare,并通过 Cloudflare Tunnel 发布 Web 应用程序。
-
在您的 Google Cloud 控制台 ↗中,创建一个新项目 ↗。
-
转到 Compute Engine(计算引擎) > VM instances(VM 实例)。
-
选择 Create instance(创建实例)。
-
为您的 VM 实例命名。在本例中,我们将其命名为
http-test-server。 -
选择您需要的操作系统和规格。在本例中,您可以使用以下设置:
- Machine family: General Purpose
- Series: E2
- Machine type: e2-micro
- Boot disk image: Debian GNU/Linux 12
- Firewalls(防火墙):允许 HTTP 和 HTTPS 流量
-
在 Advanced options > Management > Automation 下,添加以下启动脚本。此示例在端口
80上部署了一个基础的 Apache Web 服务器。#!/bin/bash apt update apt -y install apache2 cat <<EOF > /var/www/html/index.html <html><body><h1>Hello Cloudflare!</h1> <p>This page was created for a Cloudflare demo.</p> </body></html> EOF -
选择 Create(创建)。
-
操作系统会自动启动 Apache HTTP 服务器。要验证该服务器是否正在运行:
- 复制该 VM 实例的 External IP。
- 打开浏览器并转到
http://<EXTERNAL IP>。您应该会看到 Hello Cloudflare! 测试页面。
-
要登录到该 VM 实例,请打开 SSH 旁的下拉菜单并选择 Open in browser window。
- 在 Cloudflare 仪表板 ↗中,转到 Networking(网络) > Tunnels(隧道)。
- 选择 Create Tunnel(创建隧道) 并输入名称(例如,
gcp-tunnel)。 - 选择 Create Tunnel(创建隧道)。
- 在 Setup Environment(设置环境) 下,选择 Debian 64-bit(Debian 64 位)。
- 通过 SSH 连接到您的 VM,并运行仪表板中显示的安装命令。
- 隧道连接后,选择 Continue(继续)。
- 在 Routes(路由) 下,选择 Add route(添加路由) > Published application(已发布的应用程序)。
- 输入主机名(例如,
hellocloudflare.<your-domain>.com)。 - 在 Service(服务) 下,输入
http://localhost:80。 - 选择 Add route(添加路由)。
要进行测试,请打开浏览器并转到您配置的主机名。
您可以选择添加 Cloudflare Access 来控制谁能访问该服务。
要保护您的 VM 实例,您可以配置您的 VPC 防火墙规则 ↗以拒绝所有入站流量,并且仅允许指向 Cloudflare Tunnel IP 地址的出站流量。由于 GCP 默认拒绝入站流量,您可以删除所有入站规则,仅保留相关的出站规则。
配置 VPC 防火墙规则后,请验证您是否仍可以通过 Cloudflare Tunnel 的 公共主机名 访问该服务。该服务不应再从 Cloudflare Tunnel 外部访问 —— 例如,如果您访问 http://<EXTERNAL IP>,测试页面应该不再加载。