我已将这些行添加到主机文件中:
127.0.0.1 localhost adobe.com
127.0.0.1 adobe.com
Run Code Online (Sandbox Code Playgroud)
它在 Windows 上完美运行。但是在 Ubuntu 11.10 中,当我尝试使用 Firefox 访问它时,网站正在打开。
谷歌浏览器虽然支持 /etc/hosts 配置。谷歌浏览器显示:
“它有效!这是该服务器的默认网页。网络服务器软件正在运行,但尚未添加任何内容。”
Lui*_*ado 10
我可以确认您的问题,它似乎影响 Chrome 和 Firefox,仅 Firefox。这是针对受同一问题影响并且受两个/所有浏览器影响的用户的答案。按照以下步骤使其正常工作。假设您已经编辑过/etc/hosts我推荐以下两种编辑文件的文件:
gksudo gedit /etc/hosts(您现在可以通过 GUI 友好的方式编辑文件。提供 gksudo 的 gksu 在官方 18.04 及更高版本的存储库中已停止使用。) sudo nano /etc/hosts(您现在可以通过终端友好的方式编辑文件。)你有例如:
127.0.0.1 localhost adobe.com
Run Code Online (Sandbox Code Playgroud)
或者
127.0.0.1 localhost
127.0.0.1 adobe.com
Run Code Online (Sandbox Code Playgroud)
(两者是一回事。)
您首先测试它以查看它是否从终端正常工作。键入ping adobe.com,它应该响应分配给它的 IP。在这种情况下,它应该响应 127.0.0.1。这意味着没问题。
然后我们继续浏览器测试。您测试了 Chrome,它工作正常。您/etc/hosts在拥有和不拥有 adobe.com 条目之间进行了更改,并且每次更改时它都有效。但是后来你使用 Firefox,它可能第一次工作,但在hosts来回更改文件后,它以某种方式停止工作。这意味着这是缓存问题或解析正确名称的问题。
在 Firefox 和解析名称的情况下,Firefox 将前缀www添加到 adobe 网站,因此它看起来像“www.adobe.com”,但在 Chrome 上它看起来像“adobe.com”。它们都指向同一个地方,www 前缀只是在那里告诉您您正在访问的地方是一个网络服务。但是在您遇到问题的情况下,您需要将其添加到hosts文件中,以便当 Firefox 添加前缀 www 时它可以工作。所以它看起来像这样:
127.0.0.1 localhost
127.0.0.1 adobe.com www.adobe.com
Run Code Online (Sandbox Code Playgroud)
或只是一样
127.0.0.1 localhost adobe.com www.adobe.com
Run Code Online (Sandbox Code Playgroud)
注意:请记住,您必须按F5刷新站点/Firefox 选项卡或关闭该选项卡并再次打开以进行测试。不知何故,Enter像疯了一样压是行不通的。
这应该可以解决一些用户的问题,但假设到目前为止您还没有解决问题,我们可以测试一下它可能是什么。
我们到这里来检查几个级别的缓存。你有你的程序缓存,在这种情况下是 Firefox,然后你有你的系统缓存,在这种情况下是 Ubuntu,然后你有你的硬件缓存,在这种情况下是你的路由器。
据我所知,Ubuntu 桌面版默认没有安装 DNS 缓存服务。最常见的是nscd,如果你安装了它,一个简单的/etc/init.d/nscd restart就可以了。但是对于大多数人来说,他们不会安装这个,所以我们可以否决 Ubuntu 系统的错误。
剩下的就是路由器和网络浏览器。对于路由器,您必须对其进行配置以停止 DNS 缓存或重新配置以解决此问题。这完全取决于路由器型号、制造商等。并非所有路由器都做 DNS 缓存,但有些路由器会做,您需要在它的配置中查看它是否有此选项以及是否启用了该选项。但是让我们假设您没有启用 DNS 缓存的路由器。
这离开了浏览器。
要了解 Firefox 的 DNS 缓存是否存在问题,您可以安装一个附加组件来检查 Firefox 中的 DNS 缓存。我推荐的是DNS Cache。
重新启动 Firefox 后,您应该会在底部看到一个齿轮(类似于右上角的 Ubuntu 齿轮)。您可以左键单击或右键单击 Cog,您应该会看到诸如启用/禁用 DNS 和刷新它之类的选项。这将有助于解决 Firefox DNS 缓存问题。玩它。
我想我有你可以解决的所有方法。如果我错过了什么,请告诉我。
小智 8
我知道这个线程已经有一年了,但我偶然发现它寻找同样问题的答案。我终于找到了解决办法!结果发现该/etc/hosts文件已被 DNS 完全绕过。要更改此设置,您必须编辑/etc/nsswitch.conf并包含files在 下hosts。下面的例子:
passwd: compat
group: compat
shadow: compat
hosts: dns files myhostname <-- this line here.
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
Run Code Online (Sandbox Code Playgroud)
这将确保/etc/hosts文件包含在名称解析检查中。它将首先检查 DNS,然后检查hosts文件。我确定 OP 不再需要此信息,但这对于任何寻求此问题答案的人来说仍然是有益的。
您还必须重新启动才能使其生效
| 归档时间: |
|
| 查看次数: |
49612 次 |
| 最近记录: |