有关托管实例组节点上的外部 IP 地址以及 Google Cloud 上的“Cloud NAT”的问题

有关托管实例组节点上的外部 IP 地址以及 Google Cloud 上的“Cloud NAT”的问题

(交叉发布至 Google“gce-discussion”支持委员会)

我一直在担心(并在 Stack Overflow、gce-discussion 和 Tomcat 用户列表服务器上发布)实例组节点对携带单个节点的外部 IP 地址的 Web 服务的调用(这使得通过调用 IP 来限制 Web 服务变得有问题)。

然后我看到了一种叫做“云 NAT”的东西。

如果我已经设置了 Cloud NAT,那么来自我的实例组的 Web 服务调用是否会显示 NAT 中设置的 IP 地址?

这又引出了几天来一直在我脑海中盘旋的另一个问题:我们的实例组节点当前设置为具有临时外部 IP 地址。它们为什么要有外部 IP 地址,有什么真正的理由吗?例如,如果没有外部 IP 地址,我是否仍可以通过 web-to-ssh 门户获得终端会话?我是否也可以使用“gcloud compute scp”?我认为我最初拥有外部 IP 地址的原因可能是从我的 Mac 上的 ssh 和 scp 访问它们(无论如何,在大多数情况下,这比它的价值更麻烦)。

答案1

好像你在这里有两个问题:(1)访问没有外部 IP 的虚拟机(SSH 进入虚拟机)(2)虚拟机可以将出站流量发送到外部 IP 的方式

首先我们来谈谈如何通过 SSH 访问虚拟机。云控制台中的 SSH 按钮仅在虚拟机具有外部 IP 地址时才有效。该地址可以是静态外部 IP 地址,也可以是临时 IP 地址。

通过命令行 SSH 和 SCP(例如 gcloud compute ssh 或 gcloud compute scp)访问虚拟机的工作方式如下:默认情况下,这些命令尝试使用其外部 IP 地址联系虚拟机。同样,该外部 IP 地址可以是静态的,也可以是临时的。如果虚拟机没有外部 IP 地址,则无法使用命令行 SSH 直接连接到它。

但是,如果您的 VPC 网络通过 Cloud VPN 或 Cloud Interconnect 连接到本地网络,并且路由和防火墙允许,则您可以使用带有 --internal-ip 标志的 gcloud compute ssh 连接到虚拟机。您还可以通过 SSH 进入具有外部 IP 的虚拟机,然后连接到没有外部 IP 的虚拟机。您可以找到公共文档这里 现在,让我们谈谈从虚拟机到“Web 服务”的出站流量。目前尚不清楚他们要求的是什么 Web 服务。具体来说,您是否试图访问 Google API 和服务?

一般而言,如果“Web 服务”是指 Internet 上的任何 IP 地址,则 VM 需要 Internet 访问。Internet 访问的要求如下这里如果使用 Cloud NAT 将请求路由到 Internet 地址,则该请求的源 IP 将是 NAT 使用的外部 IP 之一。

现在,如果我们谈论的是 Google API 和服务,我们有一些方法可以让虚拟机访问 Google API 和服务的外部 IP,即使这些虚拟机没有互联网访问权限。私有 Google 访问允许没有外部 IP 的虚拟机访问 Google API 和服务的选定范围的外部 IP。

请找到文档在私人 Google 访问和关联有关如何配置私人 Google 访问。

相关内容