为什么我在 GCE 上的 resolv.conf 文件中有一些内容?

Why do I have some content in my resolv.conf file on GCE?

我的 Google Compute Engine 虚拟机中的 /etc/resolv.conf 文件中有以下内容:

domain c.company.internal.
search c.company.internal. 160467777293.google.internal. google.internal.
nameserver 169.254.169.254
nameserver 10.240.0.1

为什么我会有这个,这是什么意思?

这允许在您的项目中解析 DNS 名称。例如,对于一个 GCE VM 与另一个 GCE VM 通信,您可以只使用它的主机名连接到它(您已经选择),而不是它的内部 IP(这是自动分配的)。

此外,GCE VM 的 fully-qualified domain name 格式为:

[vm-name].c.[project-name].internal

您可以通过 运行 hostname -f.

查看任何给定 VM 上的内容

这也允许您解析特殊的主机名,例如 metadata (the GCE metadata server, FQDN: metadata.google.internal),它实际上位于 169.254.169.254.

一个补充说明;最后两行是您使用的 DNS 名称服务器——它们都指向 Google-内部解析器,具有 Misha 指出的行为。

如果您将这些切换为例如8.8.8.8,您将使用 Google 的 public DNS 解析器。如果您这样做,您将无法访问内部名称,但如果您愿意,您可以指向您公司的内部 DNS 服务器来访问这些名称。