为什么浏览器会忽略我的主机文件条目?

时间:2016-05-26 05:33:37

标签: ip mapping hosts

当我请求不同的网址(比如说www.facebook.com)特定网站时,我映射了一个IP为www.x.lk的网站来加载Facebook。它运作良好。但是当我尝试映射逆时间时,它应该在我要求Facebook时加载www.x.lk,但它不起作用。最初的Facebook网站正在加载。问题是什么?任何人都可以帮助我吗?

    # Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost
104.16.73.189 www.facebook.com

5 个答案:

答案 0 :(得分:6)

我最近在 Firefox 中遇到了此问题,并想尽办法进行解释。最初,我认为这与DuckDuckGo的配置有关,然后我想起Register article,有关Mozilla通过HTTPS(又名DoH)启用DNS的问题,并想知道这是否可能是原因。

在下面,您将找到一个解决方案,然后提供一些信息,并在有兴趣的情况下对任何隐含的隐私进行修复。

解决方案(Firefox):

此解决方案与Chrome非常相似-只需查找“使用安全DNS”并确保未选中它即可-但我不使用Chrome,因此这里是Firefox的说明。

  1. 转到选项页面。
  2. 通常,向下滚动到“ 网络设置”(或在选项搜索框中键入“ DNS”)。
  3. 点击设置
  4. 在最底部,您会找到一个带有标签“ 通过HTTPS启用DNS ”的复选框。在最新版本中,默认情况下启用此功能。 Enabled DNS over HTTPS
  5. 取消选中/取消选中/取消选中此复选框。 Disabled DNS over HTTPS
  6. 按“ 确定”并退出设置。
  7. 尝试在您的主机文件-facebook.com中浏览至该站点。现在,应该通过您的主机文件条目来处理它。

说明

我不会详细解释DNS,HTTPS或HTTPS上的DNS(通常缩写为DoH)。但是,对于绝大多数用户而言,出于隐私考虑,通过HTTPS禁用DNS可能不是一件好事。但是,在某些情况下它可能适得其反,而忽略hosts文件中的自定义域条目就是其中一种。

基于HTTPS的DNS意味着您的浏览器进行的任何DNS查询均由提供商(在这种情况下为Cloudflare)解决。这意味着Firefox将不再由操作系统解决Firefox中的DNS查询(旧的默认设置),而是将您的DNS查询安全地发送到Cloudflare。

这里不是讨论选择退出DoH是对还是错的地方,所以我只提供一个在家工作时使用的替代方法-Pi-Hole

如果您刚好有Raspberry Pi,Pi-Hole尤其有用-如果没有,您可以便宜得多。很棒是因为您可以将其插入路由器,并告诉您希望Pi-Hole同时充当DNS解析器和DHCP服务器。前者(DNS解析器)很棒,因为它可以解决上述解决方案可能带来的DNS解析方面的任何隐私问题。后者(DHCP服务器)很棒,因为这意味着所有连接到路由器的机器现在都将通过您的Pi-Hole路由其DNS请求。

还应该注意的是,Pi-Hole的主要主要好处是可以阻止遥测和广告!

答案 1 :(得分:5)

您是否有机会使用Chrome?如果不是,请尝试刷新系统的DNS缓存(Windows上为ipconfig /flushdns)。

然而,Chrome有自己的DNS缓存。我发现转到chrome://net-internals/#sockets并点击“Flush socket pools”就可以了。

如果您不希望每次都手动执行此操作,Host Switch Plus扩展程序可能会有所帮助。

注意:您也可以转到chrome://net-internals/#dns查看网址解析的内容,但“清除主机缓存”按钮并未解决此问题。 < / p>

答案 2 :(得分:0)

我终于找到了解决方法。 在Chrome浏览器中,chrome://flags/->安全DNS查找->禁用。

答案 3 :(得分:0)

我遇到了同样的问题,我尝试了一切,但没有帮助。 最终,我意识到我在网站上使用域名而不是www版本:

所以而不是例如:

ip.address example.com

如果要测试的是实际链接而不是域(例如网站http://www.example.com),则应该使用www前缀:

ip.address www.example.com

那应该可以。

还要确保您的网卡不使用任何自定义dns(例如google或cloudflare),而是使用ISP的自动dns。

答案 4 :(得分:-1)

步骤概述

  1. 验证问题
  2. 通过反复试验,从最常见的解决方案开始
  3. 继续,直到问题解决。

验证问题 问题可能出在浏览器上,或是设置不属于浏览器。可能有两个浏览器(例如Chrome和FireFox)都出现问题,每个浏览器都是出于自己的原因,或者是通过两种浏览器中都没有的设置。

Chrome解决方案

Chrome解决方案1-将hosts文件掺假,将.localhost放在每个主机名的末尾。 在:/ etc / hosts:

127.0.0.1 myservername.localhost Google Chrome Ignoring Hosts File

Chrome解决方案2-(此问题的答案,此处不再赘述)

按可能性降序排列的FireFox配置解决方案

FireFox解决方案1:通过取消选中设置中的功能来禁用基于HTTPS(DoH)的DNS。要查找该复选框,请打开FireFox设置或首选项(无论您使用的是哪种设置)。滚动到第一个面板的底部以查找并单击“网络设置”。底部附近有一个复选框,标记为“通过HTTPS启用DNS”。取消选中可能会解决问题。
Why is my hosts file entry being ignored by the browser?

FireFox解决方案1a-如果您要使用DoH AND主机文件,则需要将DoH用作操作系统的DNS,因此它位于主机文件之后。 https://www.reddit.com/r/firefox/comments/e64073/dns_over_https_doh_needs_hosts_file/

FireFox解决方案2-将network.dns.offline-local设置为false。为此,请在地址栏中键入about:config。单击出现的警告,然后使用配置搜索找到“ network.dns.offline-local”。将其切换为false。 https://superuser.com/questions/1433325/does-firefox-ignore-the-hosts-file-how-to-make-firefox-honor-the-hosts-file

FireFox解决方案3-如果使用的是ip6,则使hosts文件具有ip6条目。

FireFox解决方案4-在主机文件中同时设置www和非www域名。 127.0.0.1 foo.com 127.0.0.1 www.foo.com

FireFox解决方案5-在FireFox中禁用dns缓存。为此,请在地址栏中键入about:config。单击出现的警告,然后使用配置搜索找到“ network.dnsCacheEntries”。将其值更改为0。

FireFox解决方案6-让自己参与nsswitch.conf。它涉及/ etc / hosts的使用方式。愿原力与你同在。这就是我的全部。

FireFox解决方案7-尝试更多配置解决方案:

browser.fixup.dns_first_for_single_words to True
network.dns.disablePrefetch to True
network.dns.offline-localhost to False
network.dnsCacheEntries to 0 (ZERO)
network.dnsCacheExpiration to 0 (ZERO)
network.dnsCacheExpirationGracePeriod to 0 (ZERO)

信用:Jay Rizzo

FireFox解决方案8-尝试以下解决方案:

Navigate to 3 bars > Preferences > General > Scroll to the end > Network Proxy > settings

Configure Proxies to Access the Internet: *CHANGE* Auto-detect proxy settings for this network

    I was using Use System Proxy Settings
        I also found that is you change tracking in preferences & config this hides the box's too in Firefox
Navigate to 3 bars > Preferences > Privacy & Security > Tracking Protection >Always& "Do Not Track" >Always
AND YOU ALSO have to set this in the browserabout:config`
privacy.trackingprotection.enabled To True

信用:Jay Rizzo

FireFox解决方案9-责怪您的代理(如果使用的是代理)。然后修补一下,看看是否可以修复。

FireFox解决方案10-使用SwitchHost之类的插件,希望引入的新问题少于已解决的新问题,请牢记问题可能不会持续一年或更长时间。

FireFox解决方案11-使自己参与fireFox的Trusted Recursive Resolver(trr)。它涉及/ etc / hosts的使用方式。愿原力与你同在。这就是我的全部。

FireFox解决方案12-停止将CloudFlare用于dns, https://www.reddit.com/r/firefox/comments/f32enr/firefox_ignores_etchosts_file_on_macbook/

FireFox解决方案13-如果您的FireFox版本是2008年,请升级到最新版本 http://forums.mozillazine.org/viewtopic.php?p=3274240