Answers:
我可以确认您的问题,它似乎同时影响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
要么
127.0.0.1 localhost
127.0.0.1 adobe.com
(都是同一回事。)
您首先要进行测试,以从终端查看它是否正常运行。类型ping adobe.com
,它应该从为其分配的IP响应。在这种情况下,它应该以127.0.0.1响应。这意味着可以。
然后,我们继续浏览器测试。您测试了Chrome,它可以正常工作。您/etc/hosts
在拥有和没有adobe.com条目之间进行了更改,并且每次更改它都可以使用。但是,当您使用Firefox时,它可能第一次起作用了,但是在hosts
来回更改文件后,它以某种方式停止了工作。这意味着它是缓存问题或解析正确名称的问题。
对于Firefox并解析名称,Firefox 在Adobe网站上添加了前缀www,因此它看起来像是“ www.adobe.com”,而在Chrome上看起来像是“ adobe.com”。它们都指向同一地点,而www前缀只是告诉您所访问的地点是Web服务。但是,如果遇到问题,则需要将其添加到hosts
文件中,以便Firefox在添加前缀www时可以使用。所以它看起来像这样:
127.0.0.1 localhost
127.0.0.1 adobe.com www.adobe.com
还是一样
127.0.0.1 localhost adobe.com www.adobe.com
注意:请记住,您必须按F5刷新站点/ Firefox选项卡,或关闭该选项卡并再次打开以进行测试。不知怎的,Enter像疯了一样压迫。
这应该可以解决某些用户的问题,但是假设到目前为止您仍然尚未解决问题,我们可以测试出可能的结果。
然后,我们在此处获得了几个级别的缓存来检查。您拥有了程序缓存(在本例中为Firefox),然后有系统缓存(在本例中是Ubuntu),然后有了硬件缓存(在本例中是路由器)。
据我所知,Ubuntu Desktop版本默认没有安装DNS缓存服务。最知名的是nscd,如果您安装了nscd,则可以轻松/etc/init.d/nscd restart
完成。但是对于大多数人来说,他们将不会安装此程序,因此我们可以推翻Ubuntu系统的故障。
剩下路由器和Web浏览器。对于路由器,您必须将其配置为停止DNS缓存或重新配置它以解决此问题。这完全取决于路由器的型号,制造商等。并非所有路由器都进行DNS缓存,但有些路由器会这样做,如果具有此选项并且是否启用了该选项,则需要在其配置中查看。但是,让我们假设您没有启用DNS缓存的路由器。
离开浏览器。
要确定Firefox在DNS缓存方面是否存在问题,可以安装一个插件来检查Firefox中的DNS缓存。我推荐的是DNS缓存。
重新启动Firefox后,您应该在底部看到一个齿轮(类似于右上角的Ubuntu齿轮)。您可以左击或右键单击Cog,并且应该会看到诸如启用/禁用DNS并刷新它的选项。在问题为Firefox DNS缓存的情况下,这将有所帮助。玩吧。
我想我已经找到解决问题的所有方法。如果我错过了什么,请告诉我。
www.foo.net
应该因为工作而foo.net
起作用。相反,如果foo.net
和www.foo.net
都定义为127.0.0.1
in /etc/hosts
,则foo.net
在Web浏览器的地址栏中键入并按Enter键将导致浏览器尝试打开与的连接127.0.0.1:80
。如果不是,则表明某个地方存在错误。
我知道这个线程已经使用了一年,但是我偶然发现了这个线程,以寻找同样问题的答案。我终于找到了解决方案!原来/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
这将确保该/etc/hosts
文件包含在名称解析检查中。它将首先检查DNS,然后检查hosts
文件。我确定OP不再需要此信息,但这对于寻求该问题答案的任何人仍然有用。
您还必须重新启动才能生效
/etc/hosts
?hosts
?要不然是啥?
所有答案都是不错的,但是最简单的解决方法是:
修改/ etc / hosts(并可能重新启动Firefox)后,请使用重新加载有问题的标签Ctrl+Shift+R
。它将绕过Firefox可能具有的任何类型的缓存。
我的问题是,同一域名有多个条目。系统只看到第一次出现。
127.0.0.1 domain1.com domain2.com domain3.com # <-- WENT UNNOTICED
# .
# .
192.168.1.21 domain1.com # <-- DOESN'T WORK
hosts
文件(也就是说,即使在www
添加具有子域的域之后,甚至在刷新页面后,问题仍然存在),我建议将其报告为错误。(我不知道这将是一个错误的,因为Firefox的大概使用操作系统的DNS解析设施,做,还是应该尊重它。但是你可以对报告它firefox
在Ubuntu,然后再排除故障可能可能从那里重新定位。)