跳转到内容
搜索文档

GCP

最后更新 查看 MarkdownAgent 设置

本指南介绍如何使用我们的轻量级连接器 cloudflared 将 Google Cloud Project (GCP) 虚拟机连接到 Cloudflare。

我们将部署:

  • 一个运行基本 HTTP 服务器的 Google Cloud Project (GCP) 虚拟机。
  • 一个 Cloudflare Tunnel,允许用户通过公共主机名或私有 IP 地址连接到该服务。

前提条件

要完成以下步骤,您需要:

1. 在 GCP 中创建 VM 实例

  1. 在您的 Google Cloud 控制台中,创建一个新项目

  2. 转到 Compute Engine(计算引擎) > VM instances(VM 实例)

  3. 选择 Create instance(创建实例)

  4. 为您的 VM 实例命名。在本例中,我们将其命名为 http-test-server

  5. 选择您需要的操作系统和规格。在本例中,您可以使用以下设置:

    • Machine family: General Purpose
    • Series: E2
    • Machine type: e2-micro
    • Boot disk image: Debian GNU/Linux 12
    • Firewalls(防火墙):允许 HTTP 和 HTTPS 流量
  6. 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
  7. 选择 Create(创建)

  8. 操作系统会自动启动 Apache HTTP 服务器。要验证该服务器是否正在运行:

    1. 复制该 VM 实例的 External IP
    2. 打开浏览器并转到 http://<EXTERNAL IP>。您应该会看到 Hello Cloudflare! 测试页面。
  9. 要登录到该 VM 实例,请打开 SSH 旁的下拉菜单并选择 Open in browser window

2. 创建 Cloudflare Tunnel

创建一个 Cloudflare Tunnel 并在 GCP VM 上运行它。

  1. 登录到 Cloudflare 仪表板并转到 Networking(网络) > Tunnels(隧道)

    Go to Tunnels ↗
  2. 选择 Create a tunnel(创建隧道)

  3. 输入您隧道的名称(例如 gcp-tunnel)。

  4. 选择 Create Tunnel(创建隧道)

  5. 选择您的操作系统(对于您的 GCP VM,选择 Debian)。复制该安装命令并在您的 GCP VM 上运行它。

  6. 等待隧道连接。建立连接后,选择 Continue(继续)

3. 使用公共主机名连接

已发布应用程序允许互联网上的任何人连接到托管在您的虚拟私有云(VPC)上的 HTTP 资源。要为您的 Cloudflare Tunnel 添加已发布应用程序:

  1. Routes(路由) 选项卡上,选择 Add route(添加路由),然后选择 Published application(已发布的应用程序)
  2. 输入应用程序的主机名(例如 hellocloudflare.<your-domain>.com)。
  3. Service 下,输入 http://localhost:80
  4. 选择 Add route(添加路由)
  5. 要进行测试,请打开浏览器并访问 http://hellocloudflare.<your-domain>.com。您应该会看到 Hello Cloudflare! 测试页面。

您可以选择创建 Access 应用程序来控制谁可以访问该服务。

4. 使用私有 IP 连接

私有网络路由允许用户使用 Cloudflare One Client 连接到您的 VPC network。要为您的 Cloudflare Tunnel 添加私有网络路由:

  1. 在 Cloudflare 仪表板中,转到 Networking(网络) > Routes(路由)

    Go to Routes ↗
  2. 选择 Create route(创建路由) > Tunnel CIDR(隧道 CIDR)。选择您刚刚创建的隧道,输入您的 GCP VM 的私有 IP 地址(例如 10.0.0.4),然后选择 Create route(创建路由)。如果需要,您稍后可以扩展 IP 范围。

  3. 在您的分流隧道配置中,确保私有 IP 通过 Cloudflare One Client 进行路由。例如,如果您的分流隧道处于**Exclude(排除)**模式,请删除 10.0.0.0/8。我们建议重新添加您的 GCP VM 没有明确使用的 IP。

    要确定重新添加哪些 IP 地址,请从 10.0.0.0/8 中减去您的 GCP VM IP:

    将结果重新添加到您的分流隧道“排除”模式列表中。

  4. 要在用户设备上进行测试:

    1. 登录到 Cloudflare One Client
    2. 打开终端窗口并使用其私有 IP 连接到服务:
    curl 10.0.0.4
    <html><body><h1>Hello Cloudflare!</h1>
    <p>This page was created for a Cloudflare demo.</p>
    </body></html>

您还可以选择创建 Gateway 网络策略来控制谁可以通过其私有 IP 访问 GCP VM。

防火墙配置

要保护您的 VM 实例,您可以配置您的 VPC 防火墙规则以拒绝所有入站流量,并且仅允许指向 Cloudflare Tunnel IP 地址的出站流量。由于 GCP 默认拒绝入站流量,您可以删除所有入站规则,仅保留相关的出站规则。

配置 VPC 防火墙规则后,请验证您是否仍可以通过 Cloudflare Tunnel 的 公共主机名私有 IP 访问该服务。该服务不应再从 Cloudflare Tunnel 外部访问 —— 例如,如果您访问 http://<EXTERNAL IP>,测试页面应该不再加载。

这篇文档对您有帮助吗?