跳转到内容
本站为社区维护的非官方中文翻译,与 Cloudflare, Inc. 无关联。本站不提供账户登录,请勿在任何非官方站点输入您的 Cloudflare 账户信息。官方文档:developers.cloudflare.com

AWS

最后更新 查看 MarkdownAgent 设置

本指南介绍了如何使用 cloudflared 将 Amazon Web Services (AWS) EC2 实例连接到 Cloudflare,并通过 Cloudflare Tunnel 发布 Web 应用程序。

先决条件

1. 创建 EC2 实例

  1. 从 AWS 控制台,前往 Compute(计算)> EC2 > Instances(实例)

  2. 选择 Launch instance(启动实例)。

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

  4. 在 Amazon Machine Image (AMI)(Amazon 机器映像 [AMI]) 中,选择您所需的操作系统和规格。本示例中,我们将使用 Ubuntu Server 24.04 LTS (HVM), SSD Volume Type。

  5. 在 Instance type(实例类型) 中,您可以选择免费套餐中提供的 t2.micro。

  6. 在 Key pair (login)(密钥对 [登录]) 中,创建一个新的密钥对以用于 SSH。您需要将 .pem 文件下载到您的本地机器上。

  7. 在 Network settings(网络设置) 中,选择 Create security group(创建安全组)。

  8. 启用以下安全组(Security Group)规则:

    • Allow SSH traffic from My IP(允许来自 My IP 的 SSH 流量):防止实例被公开访问。
    • Allow HTTPS traffic from the internet(允许来自互联网的 HTTPS 流量)
    • Allow HTTP traffic from the internet(允许来自互联网的 HTTP 流量)
  9. 选择 Launch instance(启动实例)。

  10. 实例启动并运行后,转到 Instances(实例) 概览页面并复制其 Public IPv4 DNS(公共 IPv4 DNS) 主机名(例如 ec2-44-202-59-16.compute-1.amazonaws.com)。

  11. 要通过 SSH 登录到该实例,请打开终端并运行以下命令:

cd Downloads
chmod 400 "YourKeyPair.pem"
ssh -i "YourKeyPair.pem" [email protected]
  1. 运行 sudo su 以获取该实例的完整管理员权限。

  2. 出于测试目的,您可以在端口 80 上部署一个基础的 Apache Web 服务器:

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
  1. 要验证 Apache 服务器是否正在运行,请打开浏览器并访问 http://ec2-44-202-59-16.compute-1.amazonaws.com(确保通过 http 连接,而不是 https)。您应该会看到 Hello Cloudflare! 测试页面。

2. 创建隧道

  1. 在 Cloudflare 仪表板 ↗中,转到 Networking(网络) > Tunnels(隧道)。
  2. 选择 Create Tunnel(创建隧道) 并输入名称(例如,aws-tunnel)。
  3. 选择 Create Tunnel(创建隧道)。
  4. 在 Setup Environment(设置环境) 下,选择 Debian 64-bit(Debian 64 位)。
  5. 复制安装命令并在您的 EC2 实例上运行它们。
  6. 隧道连接后,选择 Continue(继续)。

3. 发布应用程序

  1. 在 Routes(路由) 下,选择 Add route(添加路由) > Published application(已发布的应用程序)。
  2. 输入主机名(例如,hellocloudflare.<your-domain>.com)。
  3. 在 Service(服务) 下,输入 http://localhost:80。
  4. 选择 Add route(添加路由)。

要进行测试,请打开浏览器并转到您配置的主机名。您应该会看到 Web 服务器的页面。

防火墙配置

要保护 AWS 实例,可以配置安全组规则 ↗,拒绝所有入站流量,只允许到 Cloudflare Tunnel IP 地址的出站流量。所有安全组规则都是允许规则;不匹配任何规则的流量会被阻止。因此,你可以删除所有入站规则,仅保留相关的出站规则。

配置安全组规则后,确认仍可通过 Cloudflare Tunnel 的公共主机名访问服务。服务应无法从 Cloudflare Tunnel 之外访问。例如,访问 http://ec2-44-202-59-16.compute-1.amazonaws.com 时,测试页面应不再加载。

这篇文档对您有帮助吗?