为什么即使有 hosts 文件条目,我的名称解析也会命中 DNS?

为什么即使有 hosts 文件条目,我的名称解析也会命中 DNS?

我正在运行 Ubuntu 10.04.2 LTS 桌面版。作为一名 Web 开发人员,我自然会在文件中创建“me.com” /etc/hosts。不幸的是,我的名称解析在首先检查本地主机条目之前就转到了 DNS,我不知道为什么。

最终结果是,如果我的 /etc/resolv.confnameserver 127.0.0.1首先包含该条目,那么我会在不到一秒的时间内从我的网络浏览器中收到来自 me.com(本地)的响应。但如果我没有该条目,那么如果我的 ISP 有点慢,我的响应有时可能需要长达 5 秒钟的时间。

这个问题太麻烦了,我不得不在这里提出问题(有人已经解决了)如何自动将该条目插入到 中/etc/resolv.conf。但这里的一位用户 (@shellholic) 强烈建议(并与我反复评论)我应该提出这个问题。

你知道为什么我的工作站的名称解析必须先到达 DNS 服务器,然后才能到达我的/etc/hosts文件条目吗?目前,我使用的是resolv.conf 技巧

答案1

该文件/etc/nsswitch.conf将允许您重新配置名称解析的顺序。默认情况下,主机文件是第一个,然后是配置的 DNS。可能会有更多选项。

该文件/etc/hosts仅列出 IP 地址和主机名(如果需要,可以为一个 IP 列出多个名称)

该文件/etc/resolv.conf将列出默认的搜索域,并将按顺序列出要使用的名称服务器。

相关内容