Firefox没有遵守hosts文件

12

Firefox浏览器在访问URL时无法遵守hosts文件规定。例如;

我的hosts文件中写着127.0.0.1 local.webdev.com,但在地址栏输入local.webdev.com的URL时,我总是被重定向到互联网上,而不是本地主机。在其他浏览器中访问这个URL则没有问题。

7个回答

8

Firefox最近推出了一个名为"DNS over HTTPS"的新功能,您可能已经(不小心)启用了它。开启此选项会直接将您的DNS请求发送到DNS服务器而非默认的操作系统。

前往 设置-> 通用 -> 网络设置 -> 启用DNS over HTTPS 并关闭此选项。

这会确保您的DNS请求发送到您的操作系统,首先读取hosts文件,然后再发送到DNS。


这对我有用。就我所知,我几乎可以确定我没有手动启用它,而它成为了默认行为。我使用的是Firefox 81.0.1。 - kevincoleman
你可以继续使用“DNS over HTTPS”,并通过将“network.trr.excluded-domains”或“network.trr.exclude-etc-hosts”设置为False来使用“/etc/hosts”。 - ThankYee
嗯,network.trr.exclude-etc-hosts在Firefox 83中添加)必须设置为true(默认值),才能使用/etc/hosts文件。唯一需要注意的是,在更改主机文件后,您必须重新启动或翻转首选项(两次)。 - Nickolay

3
我的解决方案是在 Firefox 地址栏中输入"about:config",然后添加一个名为browser.fixup.dns_first_for_single_words的布尔值,将它设置为true。(当前在 Firefox 78.0.2 上工作)

在Firefox 81.0上,“DNS over HTTPS”似乎默认情况下被禁用了,但将单词设置为true可以解决我的麻烦(至少是与此问题的范围相关的麻烦)。 - nuala

1
问题是我自己造成的...由于之前的问题,我启用了network.dns.disableIPv6,而我试图访问的主机(我在/etc/hosts中设置了一个条目)只支持IPv6。
基本上:如果你的/etc/hosts条目是针对IPv6的,请确保你没有在about:config中禁用IPv6地址解析!

1
在我的情况下,问题很简单地通过在URL前添加HTTP协议来解决,例如:
http://
+
thetoppers.htb
→
http://thetoppers.htb

0
在我的情况下,问题出在我设置的代理上:
设置 -> 通用 -> 网络设置 -> 设置

enter image description here

enter image description here


0

我曾经遇到过同样的问题。

不确定是否完全解决,但在我的情况下,我注意到以下几点:

  • 当我进行普通刷新(F5、Ctrl+R、刷新按钮)时,它不会遵循“hosts”DNS。
  • 当我使用清除缓存/重新加载(Ctrl+Shift+R、Ctrl+F5、Shift+刷新按钮)时,每次都可以正常工作。

0
对我来说,问题在于网站是通过ipv6提供服务的,但我只在我的hosts文件中更改了ipv4地址。一旦我在hosts文件中添加了一个ipv6行,它就开始按预期工作了。如果您转到about:networking#dns,您可以看到网站在表格的“Family”中是ipv4还是ipv6。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接