我正在尝试设置一个实例(landingpage2)来使用自定义内部 IP,实例启动后,我无法 ssh 到公共 IP,甚至无法 ping 它。
如果我没有为实例使用自定义内部 IP,则一切都运行正常。
我是否遗漏了什么?
fwissue@gcp2017-181116:~$ gcloud compute routes list | grep dmz1
default-route-4d479ca761d23b53 dmz1 10.8.0.0/24 1000
default-route-552ffd32014e8b04 dmz1 0.0.0.0/0 default-internet-gateway 1000
fwissue@gcp2017-181116:~$ gcloud compute instances list
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS
landingpage2 us-east1-b n1-standard-1 10.8.0.2 35.190.156.124 RUNNING
fwissue@gcp2017-181116:~$ ping 35.190.156.124
PING 35.190.156.124 (35.190.156.124): 56 data bytes
--- 35.190.156.124 ping statistics ---
21 packets transmitted, 0 packets received, 100% packet loss
答案1
步骤本文对我来说效果很好。以下是我测试的方法:
1)创建一个新网络
gcloud compute --project=Myproject networks create testnet --mode=auto
2)打开防火墙规则以允许 SSH 和 ICMP
gcloud compute --project=Myproject firewall-rules create allowicmpandssh --direction=INGRESS --priority=1000 --network=testnet --action=ALLOW --rules=tcp:22,icmp --source-ranges=0.0.0.0/0
3)保留静态IP 10.128.0.11
gcloud compute addresses create myinternalip --region us-central1 --subnet testnet --addresses 10.128.0.11
4)我创建了两个虚拟机,一个使用动态 IP,另一个使用保留 IP。
gcloud compute instances create "instance-2" --zone "us-central1-f" --machine-type "n1-standard-1" --subnet "testnet" --image "debian-9-drawfork-v20180109" --image-project "eip-images" --boot-disk-size "10" --boot-disk-type "pd-standard" --boot-disk-device-name "instance-2"
gcloud compute instances create my-instance --zone us-central1-f --image "debian-9-drawfork-v20180109" --image-project "eip-images" --private-network-ip myinternalip --subnet testnet
5)使用动态内部 IP 在实例中使用 SSH,并在第二台虚拟机上 ping 两个地址
user@instance-2:~$ ping 10.128.0.11
PING 10.128.0.11 (10.128.0.11) 56(84) bytes of data.
64 bytes from 10.128.0.11: icmp_seq=1 ttl=64 time=1.08 ms
64 bytes from 10.128.0.11: icmp_seq=2 ttl=64 time=0.222 ms
我当然能够使用其外部 IP 直接在第二台 VM 中进行 SSH。