【问题标题】:Why is my hosts file entry being ignored by the browser? [closed]为什么我的主机文件条目被浏览器忽略? [关闭]
【发布时间】:2016-05-26 05:33:36
【问题描述】:

当我请求不同的 URL(比如www.x.lk)特定站点时,我映射了一个 IP 为 www.facebook.com 的网站以加载 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

【问题讨论】:

  • 在我的工作推出了新的代理服务后,我遇到了同样的问题;所以我所有的请求都发给了他们的代理,然后代理执行 DNS 解析,而不是在我的本地设备上/使用我的本地主机文件执行。

标签: ip mapping hosts


【解决方案1】:

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

但是,Chrome 有自己的 DNS 缓存。我发现转到chrome://net-internals/#sockets 并单击“冲洗套接字池”是有效的。

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

注意:您也可以转到 chrome://net-internals/#dns 来检查 URL 解析到的内容,但“清除主机缓存”按钮并没有为我解决这个特殊问题。

【讨论】:

  • nop.:( 仍然没有工作。我都做了,你有没有尝试过我在这里尝试做的事情?并且成功了?
  • 是的,我在 Firefox 和 Chrome 上尝试使用该确切 IP(以及 127.0.0.1)。但是,我在 Mac 上(看起来您正在使用主机文件 cmets 中的 Windows)。您使用的是哪个浏览器和 Windows 版本? ping 是否将 www.facebook.com 解析到您指定的地址?
  • 我使用的是 win 10 和 chrome。现在我的整个主机文件本身都被忽略了。这两种方式都行不通。 :( 你知道获得网站实际 IP 的方法吗?大多数时候它们隐藏在服务器 IP 之前
  • 您是否尝试过使用其他浏览器? Chrome 很可能是这里的罪魁祸首,但最好能确定一下,这样我们就可以缩小范围。
  • “冲洗套接字池”经过许多其他实验后对我有用!谢谢
【解决方案2】:

我最近在 Firefox 中遇到了这个问题,并且正在为解释而摸不着头脑。起初我以为是 DuckDuckGo 的配置问题,然后我想起了一个 Register article,关于 Mozilla 通过 HTTPS 启用 DNS(又名 DoH),我想知道这是否可能是原因。

如果您有兴趣,您会在下面找到一个解决方案,然后是一些信息和潜在的解决任何隐私问题的方法。

解决方案(火狐):

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

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

说明

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

DNS over HTTPS 意味着您的浏览器进行的任何 DNS 查询都由提供商(在本例中为 Cloudflare)解析。这意味着 Firefox 中的 DNS 查询不再由操作系统解析(旧的默认设置),而是您的 DNS 查询现在安全地发送到 Cloudflare。

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

如果你碰巧有一个 Raspberry Pi,Pi-Hole 会非常有用 - 如果你没有,你可以很便宜地买到一个。这很棒,因为您可以将其插入路由器并告诉它您希望 Pi-Hole 同时充当 DNS 解析器和 DHCP 服务器等。前者(DNS 解析器)很棒,因为它可以解决您因上述解决方案而可能遇到的 DNS 解析的任何隐私问题。后者(DHCP 服务器)很棒,因为这意味着所有连接到您的路由器的机器现在都将通过您的 Pi-Hole 路由其 DNS 请求。

还应该指出,Pi-Hole 的另一个巨大好处是阻止遥测和广告!

【讨论】:

  • 对我来说 启用 DNS over https 解决了它(并且网站在再次禁用它时仍然被阻止)。非常感谢
【解决方案3】:

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

所以而不是例如:

ip.address example.com

如果您正在使用实际链接进行测试,而不仅仅是域,您应该使用 www 前缀,例如网站http://www.example.com

ip.address www.example.com

那么它应该可以工作了。

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

【讨论】:

  • 对我不起作用:(
【解决方案4】:

我终于找到了解决方案.. 在 chrome 中,chrome://flags/ -> 安全 DNS 查找 -> 禁用。

【讨论】:

  • 注意:上次我检查(两分钟前),这个标志不再出现在 Chrome 标志中,现在驻留在设置>“隐私和安全”>“使用安全 DNS”中。对于我的工作机器,此标志已禁用,并带有“此设置在托管浏览器上已禁用”的文本,因此您的里程可能会因在 Chrome 中解决此问题而有所不同。
  • 我检查了我的安全 DNS 设置。它已被禁用。
【解决方案5】:

步骤概述

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

FireFox 解决方案 1a - 如果您想使用 DoH 和您的 hosts 文件,那么您需要使用 DoH 作为您的操作系统的 DNS,因此它位于 hosts 文件之后。 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”。将其切换为假。 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 - 在 hosts 文件中设置 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)

学分:杰伊·里佐

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

学分:杰伊·里佐

FireFox 解决方案 9 - 如果您正在使用代理,请怪罪您的代理。然后修补它,看看你是否可以修复它。

FireFox 解决方案 10 - 使用 SwitchHost 等插件,希望引入的新问题少于已解决的问题,记住问题可能在一年或更长时间内不会实现。

FireFox 解决方案 11 - 让您自己参与 fireFox 的可信递归解析器 (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

【讨论】:

    猜你喜欢
    • 2013-03-05
    • 2015-05-08
    • 1970-01-01
    • 2023-01-23
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    • 2020-05-23
    • 2010-12-25
    相关资源
    最近更新 更多