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

Vol*_*ike 17 10.04 dns resolv.conf hosts

我正在运行 Ubuntu 10.04.2 LTS 桌面。作为一名网络开发人员,我很自然地在我的/etc/hosts文件中创建了一个“me.com” 。不幸的是,在第一次检查我的本地主机条目之前,我的名称解析会进入 DNS,我不知道为什么。

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

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

您知道为什么我的工作站的名称解析必须先访问 DNS 服务器,然后才能访问我的/etc/hosts文件条目吗?现在,我正在使用resolv.conf 技巧

jfm*_*ier 17

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

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

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

  • 还要记住,一旦名称被 Linux 机器上的应用程序或服务解析,它将在缓存中保留一段称为 TTL(生存时间)的时间。因此,如果您切换分辨率顺序,最好重新启动系统或清除任何缓存。 (5认同)