Google Compute实例是否具有稳定的公有DNS名称?

时间:2013-07-17 00:01:55

标签: google-compute-engine

这是一个由两部分组成的问题:

  • GCE实例是否具有稳定的公有DNS名称?公共IP a.b.c.d的默认DNS名称似乎是d.c.b.a.bc.googleusercontent.com
  • 如果是,获取此信息的最佳方式是什么?这是迄今为止我一直在使用的黑客攻击:

    EXTERNAL_IP=$(curl -s http://bot.whatismyipaddress.com/)
    EXTERNAL_DNS=$(dig +short -x ${EXTERNAL_IP})
    

2 个答案:

答案 0 :(得分:1)

反向查找是可以的,对于IP地址,您可能更喜欢使用gcutil https://developers.google.com/compute/docs/gcutil/tips

EXTERNAL_IP = $(gcutil getinstance --format = csv --zone = [your_zone] [your_instance] | grep external-ip | cut -d“,” - f 2)

答案 1 :(得分:0)

GCE实例当前没有用于其外部IP地址的公共DNS名称。但是现在有一个gcloud compute config-sshdocs)命令可以很好地替代。

这会将Host块插入到您的~/.ssh/config文件中,其中包含主机密钥的IP地址和配置。

尽管这仅对SSH(以及基于SSH的应用程序(如Mosh和git + ssh)有用),但与DNS相比确实具有一些优势:

  • 没有与DNS一样的缓存/传播延迟

  • 它会预先填充正确的主机密钥,并且即使临时IP地址发生更改,也会以正确的方式检查主机密钥。

示例:

$ gcloud compute config-ssh
...
$ ssh myhost.us-west1-b.surly-koala-232