IP 地址

许多 Google Cloud Platform (GCP) 资源可以具有内部 IP 地址和外部 IP 地址。实例使用这些地址与其他 Google Cloud Platform 资源和外部系统进行通信。

如需了解如何为资源创建和管理 IP 地址,请参阅保留静态外部 IP 地址

如需了解次要内部 IP 地址,请参阅别名 IP 范围概览

在 GCP 中,您可以向某些资源分配 IP 地址。 例如,您可以向 Compute Engine 虚拟机 (VM) 实例分配内部 IP 地址和外部 IP 地址。 同样,您可以分别向用于内部负载平衡或外部负载平衡的转发规则分配内部 IP 地址或外部 IP 地址。

每个虚拟机实例可以具有一个主要内部 IP 地址、一个或多个次要 IP 地址和一个外部 IP 地址。 要在同一虚拟私有云 (VPC) 网络中的实例之间进行通信,您可以使用实例的内部 IP 地址。要与互联网进行通信,您必须使用实例的外部 IP 地址,除非您已配置某种类型的代理。同样,您必须使用实例的外部 IP 地址连接同一 VPC 网络外部的实例,除非网络是以某种方式(例如通过传统 VPN)关联的。外部主要 IP 地址和内部主要 IP 地址可以是临时或静态 IP 地址。

若要进行网络、全局和内部负载平衡,需要使用转发规则。转发规则必须具有外部或内部 IP 地址,具体取决于您使用的负载平衡器。对于网络和全局负载平衡,您可以分别创建区域或全局转发规则并分配区域或全局静态外部 IP 地址。对于内部负载平衡,请分配内部 IP 地址。

如需了解如何识别实例的内部和外部 IP 地址,请参阅查找实例的外部和内部 IP 地址

外部 IP 地址

如果您需要与互联网进行通信、与其他网络中的资源进行通信或者与 Compute Engine 外部的资源进行通信,则可以向实例或转发规则分配外部 IP 地址。只要防火墙规则允许连接,GCP VPC 网络外部的来源就可以通过外部 IP 地址对特定资源进行寻址。只有具有外部 IP 地址的资源才能直接向网络外部发送流量以及接收来自网络外部的流量。即使发送者位于同一 VPC 网络中,与使用外部 IP 地址的资源进行通信也会产生额外的结算费用。如需 Compute Engine IP 地址范围的列表,请参阅网络

Compute Engine 支持两种类型的外部 IP 地址:

  • 静态外部 IP 地址

    静态外部 IP 地址在被明确释放前会长期分配给一个项目,而且在被明确分离前会保持附加到资源的状态。

    对于虚拟机实例,静态外部 IP 地址在被移除前会保持附加到已停止实例的状态。

  • 临时外部 IP 地址

    临时外部 IP 地址适用于虚拟机实例和转发规则。 只有在虚拟机停止并重启或实例被终止之前,临时外部 IP 地址才会保持附加到虚拟机实例的状态。如果实例停止,则分配给该实例的任何临时外部 IP 地址都将被释放回常规 Compute Engine 池,并且可供其他项目使用。当已停止的实例再次启动时,系统会向该实例分配一个新的临时外部 IP 地址。

要向单个实例分配多个外部 IP 地址,您可以使用协议转发将多个转发规则设置为指向单个目标实例。

静态外部 IP 地址

您可以保留一个静态外部 IP 地址,这样会将该地址无限期地分配给您的项目,直到您明确释放该地址。如果您的服务依赖于特定 IP 地址并且需要阻止其他人使用该地址,这种做法就非常有用。您可以保留一个新的静态外部 IP 地址,或者将现有的临时外部 IP 地址升级为静态外部 IP 地址。

静态外部 IP 地址可以是区域资源,也可以是全局资源。区域静态 IP 地址允许该区域的资源或该区域内的地区的资源使用该 IP 地址。在这种情况下,虚拟机实例和区域转发规则都可以使用区域静态 IP 地址。

全局静态外部 IP 地址仅供全局转发规则用于全局负载平衡。您不能将全局 IP 地址分配给区域或地区资源。

临时外部 IP 地址

临时外部 IP 地址是指存留时间不超过实例生命周期的 IP 地址。如果您在创建实例或转发规则时没有指定 IP 地址,系统会自动向该资源分配一个临时外部 IP 地址。

如果您删除资源,则临时外部 IP 地址会从资源中释放。对于虚拟机实例,如果停止实例,也会释放临时外部 IP 地址。一旦您重启实例,该实例就会被分配一个新的临时外部 IP 地址。如果您的现有虚拟机没有外部 IP 地址,可以为其分配一个。转发规则始终具有一个 IP 地址(无论是外部还是内部),因此您应该不需要在创建转发规则后向其分配 IP 地址。

主要内部 IP 地址

每个虚拟机实例可以具有一个 VPC 网络独有的主要内部 IP 地址。您可以在创建虚拟机实例时分配特定的内部 IP 地址,也可以为项目保留静态内部 IP 地址并将该地址分配给您的资源。如果您没有指定地址,则 Compute Engine 会自动分配一个地址。在任一情况下,地址都必须属于子网的 IP 范围。

您可以使用实例的内部 IP 地址将数据包路由到虚拟机实例。只能从同一网络或关联的网络(例如,通过 Cloud VPN 关联的网络)中的其他实例访问内部 IP 地址。

Compute Engine 支持两种类型的内部 IP 地址:

  • 静态内部 IP 地址

    静态内部 IP 地址在被明确释放前会长期分配给一个项目,而且在从资源明确分离前会保持附加到资源的状态。

    对于虚拟机实例,静态内部 IP 地址在被移除前会保持附加到已停止实例的状态。

  • 临时内部 IP 地址

    临时内部 IP 地址适用于虚拟机实例和转发规则。

    临时内部 IP 地址仍然附加到虚拟机实例和转发规则,直到删除实例或转发规则。

    您可以在创建资源时分配临时内部 IP 地址,方法是,在请求中不指定 IP 地址,让 Compute Engine 随机分配地址。

对于内部负载平衡器,您可以分配静态内部 IP 地址、指定明确的临时内部 IP 地址或者让 GCP 随机分配临时内部 IP 地址。如需详细了解如何为内部负载平衡器指定 IP 地址,请参阅内部负载平衡文档中的负载平衡 IP 地址

实例还可以具有别名 IP 地址和范围。如果您在一个虚拟机上运行多项服务,则可以向每项服务分配各自独一无二的 IP 地址。

内部 DNS 名称

如果您要在同一 VPC 网络中的实例之间进行通信,则可以向实例发送数据包,只需指定目标实例的完全限定的 DNS 名称 (FQDN) 即可。VPC 网络会自动将该名称解析为实例的内部 IP 地址。实例的内部完全限定域名 (FQDN) 采用以下格式:

  • 使用地区 DNS 的实例:[INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal
  • 使用全局 DNS 的实例:[INSTANCE_NAME].c.[PROJECT_ID].internal

其中:

  • [INSTANCE_NAME] 是实例的名称。
  • [ZONE] 是实例所在的地区。
  • [PROJECT_ID] 是实例所属的项目。

使用 FQDN(而不是内部 IP 地址)非常有用,因为每次删除并重新创建实例时,内部 IP 地址都可能发生变化。相比之下,您的实例名称很可能会保持不变。 但是,实例名称只能在同一 VPC 网络中处理。例如,通过在 Compute Engine 内部运行的虚拟机,您可以使用 pingcurl 或任何其他能处理 DNS 名称的程序访问其他实例。

如需详细了解完全限定域名 (FQDN),请参阅内部 DNS

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Compute Engine 文档