我在主机文件中添加了一个条目用于开发网站。
我添加了一个新行/etc/hosts
xx.xx.xx.xx www.mysite.com
但即使在重新启动后,当我使用 chrome 或 firefox 时,主机名也不会解析为我放入文件中的 IP。
我正在运行 Fedora 14 x86_64。
答案1
如果您的浏览器通过代理连接,则由代理进行名称解析,而不是运行浏览器的计算机,因此您需要将此网站放入“无代理”列表中。
答案2
嗯,你没有 /etc/resolv.conf 吗?
应该有一行:
查找文件绑定
这意味着系统的解析器将首先查找 /etc/hosts(文件),如果找不到,将询问同一文件中配置的名称服务器(bind 是 DNS 服务器)。顺序很重要。
无需重新启动,它每次都会查看 /etc/resolv.conf 以了解如何解析名称。
通常dhcp客户端会覆盖/etc/resolv.conf的内容,一些系统(大多数?全部?)你可以创建/etc/resolv.conf.tail,其内容将在之后附加到/etc/resolv.conf覆盖。
因此,除非我完全错了或者你的系统不同,否则你现在就知道如何修复它了:)
编辑:在某些系统上,现在他们似乎使用 /etc/nsswitch.conf 作为解析顺序,因此并非所有内容都在 /etc/resolv.conf 中。
EDIT2:“GNU C 库 2.0 的引入伴随着“名称服务切换”(NSS)的引入。有关更多详细信息,请参阅 man 5 nsswitch.conf 和 GNU C 库参考手册。”看起来像是另一个 GNU 怪事,啊。过去只有一种方法可以做事,这使得学习和管理变得更加容易。听起来像windows做法(别管别人,大家都用我们的东西)。
答案3
一些 Linux 发行版还使用/etc/host.conf
命令解析器的查找。
默认值似乎是order bind,hosts
,它会告诉您的解析器在数据库之前使用 DNS hosts
。
如果您有/etc/host.conf
文件,请检查order
声明。
答案4
*NIX 的所有常见版本都使用文件 /etc/nsswitch.conf 来确定查询文件的顺序。
该行:
hosts: files dns myhostname mdns4_minimal [NOTFOUND=return]
这是完成此操作的地方。在许多安装中,“dns”列在“文件”之前,如下所示:
hosts: dns files myhostname mdns4_minimal [NOTFOUND=return]
尝试将其更改为首先包含“文件”,如第一个示例中所示。
该更改会立即影响系统。如果您正在本地运行绑定或某种形式的 DNS,请停止/重新启动它,以便它刷新自己的缓存。
我们每天处理数十亿笔交易,发现绑定(尽管我很喜欢它)并且没有 dns 缓存服务器或它们的数量能够跟上我们的查找,所以我们不得不去使用我们的 /etc/hosts 文件对于我们所做的一些事情。