谷歌云计算引擎的一个实例能否具有多个外部ip地址

时间:2020-05-03 19:09:15

标签: google-compute-engine

我正在使用谷歌云计算引擎来运行小型Web服务器以及当前正在使用免费试用版的其他一些服务器,我将在过期时升级到付费帐户,但我希望在服务器上安装另一台服务器。不同的广域网IP地址我知道我可以使用其他端口并进行转发/重定向,但是我的问题是一个实例可以获取多个外部IP,或者我需要为另一个实例创建/支付以获得第二个外部IP地址吗?

1 个答案:

答案 0 :(得分:1)

是的,您可以创建具有多个外部IP的VM实例。

看看文档Creating instances with multiple network interfaces

默认情况下,VPC网络中的每个实例都有一个默认值 网络接口。使用这些说明来创建其他网络 接口。每个接口都连接到不同的VPC网络, 允许该实例访问Google Cloud中的不同VPC网络 平台(GCP)。您不能将多个网络接口连接到 相同的VPC网络。

以及Requirements部分:

  • 您只能在创建实例时配置网络接口。
  • 在单个实例中配置的每个网络接口必须连接到不同的VPC网络,并且每个接口必须属于 IP范围与其他任何子网都不重叠的子网 接口。
  • 创建实例之前,必须存在多个接口要附加到的其他VPC网络。参见Using VPC Networks 有关创建其他VPC网络的说明。
  • 您不能在不删除实例的情况下删除网络接口。

  • 每个接口都可以选择具有外部IP地址。

我尝试创建这样的VM:

  1. 创建custom VPC networks

    $ gcloud compute networks create test-vpc-network-1 --subnet-mode=custom
    $ gcloud compute networks create test-vpc-network-2 --subnet-mode=custom
    
  2. 创建custom VPC subnets

    $ gcloud compute networks subnets create test-subnet-1 --network=test-vpc-network-1 --region=europe-west3 --range=172.16.1.0/24
    $ gcloud compute networks subnets create test-subnet-2 --network=test-vpc-network-2 --region=europe-west3 --range=172.16.2.0/24
    
  3. reserve static external IPs(可选):

    $ gcloud compute addresses create test-static-ip-1 --region=europe-west3
    $ gcloud compute addresses create test-static-ip-2 --region=europe-west3
    
  4. 创建VM实例:

    $ gcloud compute instances create test-instance-2ip --zone=europe-west3-a --machine-type=n1-standard-1 --network-interface subnet=test-subnet-1,address=34.89.215.180 --network-interface subnet=test-subnet-2,address=35.234.123.210 --tags=test-instance-2ip --image=ubuntu-1804-bionic-v20200430 --image-project=ubuntu-os-cloud --boot-disk-device-name=test-instance-2ip
    

    这是具有2个外部IP的VM实例:

    NAME               ZONE            MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP            EXTERNAL_IP                   STATUS
    test-instance-2ip  europe-west3-a  n1-standard-1               172.16.1.3,172.16.2.2  XXX.89.XXX.180,XXX.234.XXX.210  RUNNING
    
  5. 别忘了create firewall rules

    $ gcloud compute firewall-rules create test-instance-2ip-vpc-1 --direction=INGRESS --priority=900 --network=test-vpc-network-1 --action=ALLOW --rules=tcp,udp --source-ranges=0.0.0.0/0 --target-tags=test-instance-2ip
    $ gcloud compute firewall-rules create test-instance-2ip-vpc-2 --direction=INGRESS --priority=900 --network=test-vpc-network-2 --action=ALLOW --rules=tcp,udp --source-ranges=0.0.0.0/0 --target-tags=test-instance-2ip
    

    以上规则仅作为示例。

此外,请看第三方example

此外,您还可以尝试Protocol forwarding

您可以设置多个转发规则以指向单个目标 例如,允许您将多个外部IP地址与一个 虚拟机实例。您可以在可能要提供服务的情况下使用此功能 来自一个VM实例但通过不同的外部IP的数据 地址。这对于设置SSL虚拟服务器特别有用 托管。