arrow_back

VPC 网络和 Google Compute Engine 使用入门

登录 加入
访问 700 多个实验和课程

VPC 网络和 Google Compute Engine 使用入门

实验 40 分钟 universal_currency_alt 5 个积分 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程

概览

Google Cloud Virtual Private Cloud (VPC) 可为 Compute Engine 虚拟机 (VM) 实例、Kubernetes Engine 容器和 App Engine 柔性环境提供联网功能。换而言之,如果没有 VPC 网络,您就无法创建虚拟机实例、容器和 App Engine 应用。因此,为了方便您起步,每个 Google Cloud 项目都有一个默认网络。

VPC 网络可视为类似于物理网络,区别是前者在 Google Cloud 中进行了虚拟化。VPC 网络是一种全球性资源,它由数据中心内的一系列区域级虚拟子网组成,所有子网通过全球广域网 (WAN) 连接。在 Google Cloud 中,VPC 网络在逻辑上彼此隔离。

在本实验中,您将创建一个具有防火墙规则和两个虚拟机实例的自动模式 VPC 网络。然后,您将探索虚拟机实例的网络连接。

目标

在本实验中,您将学习如何执行以下任务:

  • 探索默认 VPC 网络
  • 创建一个具有防火墙规则的自动模式网络
  • 使用 Compute Engine 创建虚拟机实例
  • 探索虚拟机实例的连接情况

设置和要求

对于每个实验,您都会免费获得一个新的 Google Cloud 项目及一组资源,它们都有固定的使用时限。

  1. 点击开始实验按钮。如果该实验需要付费,系统会打开一个弹出式窗口供您选择付款方式。左侧是实验详细信息面板,其中包含以下各项:

    • 打开 Google Cloud 控制台按钮
    • 剩余时间
    • 进行该实验时必须使用的临时凭据
    • 帮助您逐步完成本实验所需的其他信息(如果需要)
  2. 点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。

    该实验会启动资源并打开另一个标签页,显示登录页面。

    提示:将这些标签页安排在不同的窗口中,并排显示。

    注意:如果您看见选择账号对话框,请点击使用其他账号
  3. 如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。

    {{{user_0.username | "<用户名>"}}}

    您也可以在实验详细信息面板中找到用户名

  4. 点击下一步

  5. 复制下面的密码,然后将其粘贴到欢迎对话框中。

    {{{user_0.password | "<密码>"}}}

    您也可以在实验详细信息面板中找到密码

  6. 点击下一步

    重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。 注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
  7. 继续在后续页面中点击以完成相应操作:

    • 接受条款及条件。
    • 由于这是临时账号,请勿添加账号恢复选项或双重验证。
    • 请勿注册免费试用。

片刻之后,系统会在此标签页中打开 Google Cloud 控制台。

注意:如需查看列有 Google Cloud 产品和服务的菜单,请点击左上角的导航菜单,或在搜索字段中输入服务或产品的名称。 “导航菜单”图标

任务 1. 探索默认网络

每个 Google Cloud 项目都有一个默认网络,该网络包含子网、路由和防火墙规则。

查看子网

默认网络在每个 Google Cloud 区域都有一个子网。

  1. 在 Cloud 控制台的导航菜单 (“导航菜单”图标) 中,依次点击 VPC 网络 > VPC 网络

  2. 点击默认

  3. 点击子网

请注意默认网络及其子网。
每个子网都与一个 Google Cloud 区域和一个私有 RFC 1918 CIDR 地址块相关联,用于其内部 IP 地址范围网关

查看路由

路由会指示虚拟机实例和 VPC 网络应如何将来自实例的流量发送到目的地,无论目的地是在网络内部还是 Google Cloud 外部。每个 VPC 网络都附带一些默认的路由,用于在其子网之间路由流量,以及将从符合条件的实例发出的流量发送到互联网。

  1. 在左侧窗格中,点击路由

  2. 有效路由中,点击网络,然后选择默认

  3. 点击区域,然后选择 Qwiklabs 分配给您的实验区域。

  4. 点击查看

    请注意,每个子网都有一个路由。
    Google Cloud 会为您管理这些路由,不过您可以创建自定义静态路由,将一些数据包引向特定目的地。例如,您可以创建一条路由,将所有出站流量发送到配置为 NAT 网关的实例。

查看防火墙规则

每个 VPC 网络均实现了可由您进行配置的分布式虚拟防火墙。您可通过防火墙规则控制允许哪些数据包传送到哪些目的地。每个 VPC 网络都有两条隐式防火墙规则,用于禁止所有传入连接并允许所有传出连接。

  • 在左侧窗格中,点击防火墙
    请注意,默认网络有 4 条入站流量防火墙规则:
    • default-allow-icmp
    • default-allow-rdp
    • default-allow-ssh
    • default-allow-internal
注意:这些防火墙规则允许来自任何地方 (0.0.0.0/0) 的 ICMPRDPSSH 入站流量,以及网络 (10.128.0.0/9) 内的所有 TCPUDPICMP 流量。目标过滤条件协议/端口操作列对这些规则进行了说明。

删除防火墙规则

  1. 选择所有默认网络防火墙规则。
  2. 点击删除
  3. 点击删除,确认删除防火墙规则。

删除默认网络

  1. 在 Cloud 控制台的导航菜单 (“导航菜单”图标) 中,依次点击 VPC 网络 > VPC 网络
  2. 选择默认网络。
  3. 点击删除 VPC 网络
  4. 再次点击删除,确认删除默认网络。
    等待网络被删除后再继续其他操作。
  5. 在左侧窗格中,点击路由
    您可以看到不存在路由。
  6. 在左侧窗格中,点击防火墙
    您可以看到不存在防火墙规则。
注意:如果没有 VPC 网络,便不会有路由和防火墙规则!

尝试创建虚拟机实例

验证如果没有 VPC 网络,便无法创建虚拟机实例。

  1. 导航菜单 (“导航菜单”图标) 中,点击 Compute Engine > 虚拟机实例
  2. 点击创建实例
  3. 接受默认值,然后点击创建网络标签页上显示错误。
  4. 点击转到问题
  5. 网络接口部分,留意“没有更多网络”和“无可用网络”错误。
  6. 点击取消
注意:与预期的一样,没有 VPC 网络,您就无法创建虚拟机实例!

任务 2. 创建 VPC 网络和虚拟机实例

创建一个 VPC 网络,以便您可以创建虚拟机实例。

创建一个具有防火墙规则的自动模式 VPC 网络

您可以通过创建自动模式网络来复制默认网络。

  1. 导航菜单 (“导航菜单”图标) 中,点击 VPC 网络 > VPC 网络
  2. 点击创建 VPC 网络
  3. 名称部分,输入 mynetwork
  4. 对于子网创建模式,点击自动。 自动模式网络会自动在每个区域中创建子网。
  5. 对于防火墙规则,选择所有可用规则。 这些是与默认网络中相同的标准防火墙规则。 系统还会显示 deny-all-ingressallow-all-egress 规则,但您无法勾选或取消选中它们,因为它们是隐含规则。这两条规则的优先级较低(整数越大,表示优先级越低),因此系统会优先考虑 ICMP、自定义、RDP 和 SSH 的允许规则。
  6. 点击创建。新网络创建好后,您可以看到已为每个区域创建了一个子网。
  7. 查看 中子网的 IP 地址范围。
注意:如果删除了默认网络,您可以像刚才那样通过创建自动模式网络来快速重建该网络。重新创建该网络后,防火墙规则会由 allow-internal 变为 allow-custom。

中创建一个虚拟机实例

区域中创建一个虚拟机实例。选择区域和可用区后,系统会据此确定子网,并从子网的 IP 地址范围中分配内部 IP 地址。

  1. 导航菜单 (“导航菜单”图标) 中,点击 Compute Engine > 虚拟机实例

  2. 点击创建实例

  3. 指定下列设置:

    属性 值(按照说明输入值或选择选项)
    名称 mynet-us-vm
    区域
    可用区
  4. 对于系列,选择 E2

  5. 对于机器类型,选择 e2-micro(2 个 vCPU、1 GB 内存)

  6. 点击创建

中创建一个虚拟机实例

区域中创建一个虚拟机实例。

  1. 点击创建实例

  2. 指定以下信息,其他设置则保留默认值:

    属性 值(按照说明输入值或选择选项)
    名称 mynet-r2-vm
    区域
    可用区
  3. 对于系列,选择 E2

  4. 对于机器类型,选择 e2-micro(2 个 vCPU、1 GB 内存)

  5. 点击创建

注意:这两个虚拟机实例的外部 IP 地址都是临时的。如果实例停止,则分配给该实例的任何临时外部 IP 地址都将被释放回常规 Compute Engine 池,供其他项目使用。

当已停止的实例再次启动时,系统会向该实例分配一个新的临时外部 IP 地址。或者,您可以预留一个静态外部 IP 地址,将该地址无限期地分配给您的项目,直到您明确将其释放。

点击检查我的进度以验证是否完成了以下目标。 创建 VPC 网络和虚拟机实例

任务 3. 探索虚拟机实例的连接情况

探索虚拟机实例的连接情况。具体而言,使用 tcp:22 通过 SSH 连接到虚拟机实例,并使用 ICMP 与虚拟机实例的内部和外部 IP 地址都建立 ping 连接。接下来,逐个移除防火墙规则,看看这些防火墙规则对连接有何影响。

验证虚拟机实例的连接

mynetwork 创建的防火墙规则允许来自 mynetwork 内部(内部 IP)和网络外部(外部 IP)的入站 SSH 和 ICMP 流量。

  1. 导航菜单 (“导航菜单”图标) 中,点击 Compute Engine > 虚拟机实例
    记下 mynet-r2-vm 的外部和内部 IP 地址。

  2. 对于 mynet-us-vm,点击 SSH 以启动一个终端并进行连接。

  3. 在显示授权弹出式窗口时,点击授权

注意:您可以使用 SSH,因为 allow-ssh 防火墙规则允许 tcp:22 从任何地方 (0.0.0.0/0) 传入流量。SSH 连接之所以能够无缝运行,是因为 Compute Engine 会为您生成一个 SSH 密钥并将其存储在以下某个位置:

  • 默认情况下,Compute Engine 会将生成的密钥添加到项目或实例元数据中。
  • 如果您的账号配置为使用 OS Login,Compute Engine 会将生成的密钥与您的用户账号一起存储。

或者,您可以通过创建 SSH 密钥和修改 SSH 公钥元数据来控制对 Linux 实例的访问权限。
  1. 如需测试是否能够连接到 mynet-r2-vm 的内部 IP,请运行以下命令(替换 mynet-r2-vm 的内部 IP):
ping -c 3 <在此处输入 mynet-r2-vm 的内部 IP>

根据 allow-custom 防火墙规则,您可以 ping mynet-r2-vm 的内部 IP。

  1. 如需测试是否能够连接到 mynet-r2-vm 的外部 IP,请运行以下命令(替换 mynet-r2-vm 的外部 IP):
ping -c 3 <在此处输入 mynet-r2-vm 的外部 IP>

注意:您可以按预期通过 SSH 连接到 mynet-us-vm 并 ping mynet-r2-vm 的内部和外部 IP 地址。或者,您可以通过 SSH 连接到 mynet-r2-vm 并 ping mynet-us-vm 的内部和外部 IP 地址,这样也是可行的。

移除 allow-icmp 防火墙规则

移除 allow-icmp 防火墙规则,并尝试 ping mynet-r2-vm 的内部和外部 IP 地址。

  1. 导航菜单 (“导航菜单”图标) 中,依次点击 VPC 网络 > 防火墙

  2. 选择 mynetwork-allow-icmp 规则。

  3. 点击删除

  4. 再次点击删除,确认删除该规则。
    等待该防火墙规则被删除。

  5. 返回 mynet-us-vm 的 SSH 终端。

  6. 如需测试是否能够连接到 mynet-r2-vm 的内部 IP,请运行以下命令(替换 mynet-r2-vm 的内部 IP):

ping -c 3 <在此处输入 mynet-r2-vm 的内部 IP>

根据 allow-custom 防火墙规则,您可以 ping mynet-r2-vm 的内部 IP。

  1. 如需测试是否能够连接到 mynet-r2-vm 的外部 IP,请运行以下命令(替换 mynet-r2-vm 的外部 IP):
ping -c 3 <在此处输入 mynet-r2-vm 的外部 IP> 注意100% 的丢包率表示您无法 ping 通 mynet-r2-vm 的外部 IP。这是预期行为,因为您刚刚删除了 allow-icmp 防火墙规则。

移除 allow-custom 防火墙规则

移除 allow-custom 防火墙规则,并尝试 ping mynet-r2-vm 的内部 IP 地址。

  1. 导航菜单 (“导航菜单”图标) 中,依次点击 VPC 网络 > 防火墙
  2. 选择 mynetwork-allow-custom 规则。
  3. 点击删除
  4. 再次点击删除,确认删除该规则。
    等待该防火墙规则被删除。
  5. 返回 mynet-us-vm 的 SSH 终端。
  6. 如需测试是否能够连接到 mynet-r2-vm 的内部 IP,请运行以下命令(替换 mynet-r2-vm 的内部 IP):
ping -c 3 <在此处输入 mynet-r2-vm 的内部 IP> 注意100% 的丢包率表示您无法 ping 通 mynet-r2-vm 的内部 IP。这是预期行为,因为您刚刚删除了 allow-custom 防火墙规则。
  1. 关闭 SSH 终端:
exit

移除 allow-ssh 防火墙规则

移除 allow-ssh 防火墙规则,并尝试通过 SSH 连接到 mynet-us-vm

  1. 导航菜单 (“导航菜单”图标) 中,依次点击 VPC 网络 > 防火墙
  2. 选择 mynetwork-allow-ssh 规则。
  3. 点击删除
  4. 再次点击删除,确认删除该规则。
  5. 等待该防火墙规则被删除。
  6. 导航菜单中,依次点击 Compute Engine > 虚拟机实例
  7. 对于 mynet-us-vm,点击 SSH 以启动一个终端并进行连接。
注意:出现连接失败消息,这表示您未能通过 SSH 连接到 mynet-us-vm,因为您刚刚删除了 allow-ssh 防火墙规则。

任务 4. 回顾

在本实验中,您探索了默认网络及其子网、路由和防火墙规则。之后,您删除了默认网络,并确定了如果没有 VPC 网络,便无法创建任何虚拟机实例。

因此,您重新创建了一个具有子网、路由、防火墙规则和两个虚拟机实例的新自动模式 VPC 网络。接下来,您测试了虚拟机实例的连接情况,并就防火墙规则对连接的影响进行了探索。

结束实验

完成实验后,请点击结束实验。Google Cloud Skills Boost 会移除您使用过的资源并为您清理帐号。

系统会提示您为实验体验评分。请选择相应的星级数,输入评论,然后点击提交

星级数的含义如下:

  • 1 颗星 = 非常不满意
  • 2 颗星 = 不满意
  • 3 颗星 = 一般
  • 4 颗星 = 满意
  • 5 颗星 = 非常满意

如果您不想提供反馈,可以关闭该对话框。

如果要留言反馈、提出建议或做出更正,请使用支持标签页。

版权所有 2020 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。