Windows 8 中无法识别 Hosts 文件更改

Windows 8 中无法识别 Hosts 文件更改

当我在 Windows 8 中更改 hosts 文件时,它不起作用。尽管我的更改保留在 hosts 文件中。

我正在尝试使用以下行将域名 riddergarn.dev 重定向到 127.0.0.1:

127.0.0.1 riddergarn.dev

我使用 avast!,Windows Defender 已禁用,因此这不是问题的原因。我尝试过ipconfig /flushdns在 CMD 中操作,但也没有解决问题。

我尝试在各种网站上寻找答案,但至今没有找到答案。也许有人可以帮助我。

编辑:禁用 avast!并没有解决问题。

我的hosts文件(example.com 也无法解析为 127.0.0.1):

# localhost name resolution is handled within DNS itself.
127.0.0.1       localhost
#   ::1             localhost
127.0.0.1       riddergarn.dev
127.0.0.1       example.com

我的 %SYSTEMROOT% 是C:\Windows

我不使用 IIS,而是使用 Apache。

当我尝试 ping 该域时,我得到以下信息:

C:\Users\Andreas>ping riddergarn.dev
Ping request could not find host riddergarn.dev. Please check the name and try a
gain.

答案1

在我写这篇文章的时候,已经是 2019 年 8 月了。我刚遇到这个问题(“hosts”文件命令无法工作或激活)。我在一台功能强大但较旧的戴尔台式机(XPS Gen5)上使用 Windows 8.1。我的浏览器是 Firefox(48;我知道已经过时了),还有 Windows Explorer(11)。我的电脑上的根目录是 C:。

我想轻松有效地阻止来自令人反感的、未经请求的广告商(源自无害的网页)的在线弹出图像,但无法执行 hosts 文件命令(旨在将“邪恶”主机名与 127.0.0.1 本地主机 IP 地址关联起来)。

我尝试了很多补救措施(来自各种在线论坛网站),正要放弃的时候,它终于开始起作用了。感觉很棒。问题是,主机文件命令不起作用的原因可能有很多,你可能需要找出并解决所有问题。以下是一些(不是全部)需要检查和尝试的事情(请原谅那些对于你的专业水平来说太基础的事情):

  • 确保您的主机文件位于C:\Windows\System32\drivers\etc(或等效的)子目录/文件夹中。

  • 确保您的注册表在此处有一个条目:

    \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath
    

    指向正确的主机位置;例如:(%SystemRoot%\System32\drivers\etc不带引号)

    "C:\Windows\System32\drivers\etc\hosts" also works when the location of Windows is "C:\Windows."
    
  • 确保仅使用可靠的文本文件编辑器(例如 Windows 记事本)来编辑和保存 hosts 文件,该编辑器不会在保存修改后的“hosts”文件时引入任何类型的隐藏字符或添加文件名后缀(如“.txt”)。

  • 为了方便和简单起见,您可以重命名(例如,重命名为hosts.sav)或将原始 hosts 文件移动并保存到安全的地方,然后创建(例如,使用 Windows 记事本)并使用一个全新的 ANSI 类型的临时测试 hosts 文件,只需一个命令 - 例如:“127.0.0.1google.com”(不带引号)- 后面跟着一个完全空白的行(没有换行符)。(您可以使用任何网站。我选择强大的 Google。)(如有必要,127.0.0.1<tab>localhost还可以插入第一行,总共三行。)使用此测试 hosts 文件可以轻松、快速且明确地了解 hosts 文件及其命令是否“打开”并处于活动状态。如果 Google 未被浏览器阻止,则 hosts 未运行或由于某种原因被绕过。但是,如果 Google.com(或您选择的测试站点)被阻止,则 hosts 正常运行,并且您有一个成功的命令措辞模式,可以重复用于其他真实命令。然后,您可以在 Google 行前面放置一个“#”来禁用它,或者只是删除该行,但该命令可以方便地在您编辑 hosts 文件时持续检查 hosts 文件的状态(它是否正常工作?)(并可能引入错误,导致主机无法工作)。

  • 使用 DOS 命令

    ipconfig /flushdns
    

    (不带引号)在 Windows“命令提示符”功能中根据需要更改 hosts 文件。比重新启动容易得多。我发现重新启动是不必要的。

  • 如果您在文本编辑器中打开 hosts 文件,进行更改并保存 hosts(无需关闭编辑器),Firefox 就会对更改做出反应(即,在点击刷新或重新加载页面按钮后),而无需停止并重新启动 Firefox。相比之下,Microsoft Internet Explorer (IE) 要求您停止并重新启动 IE,以使更改(例如,访问特定的被阻止网站)生效。

在 hosts 文件本身中:

  • 我 (a) 从最左边开始使用命令行语言(数字 IP 地址),没有任何前导空格,并始终使用单个制表符将数字地址与字母主机名分开。有人告诉我,单个空格也应该可以,或者地址和主机之间可以使用多个空格。)无论如何,保持一致可能很重要。

  • 确保每一行都以“#”(用于文档)开头或为命令行,直到最后一行。然后以完全空白的行结束。

  • 重申一下,每行都以某种字符开头,没有空格,直到到达文件末尾。然后...

  • 最后一行应该是空白(没有字符,隐藏或其他)。

  • 例如,要阻止 Google,您可以使用任一命令:

    127.0.0.1<tab>www.google.com
    

    或者

    0.0.0.0<tab>www.google.com
    

    127.0.0.1你收到错误消息时(在 Firefox 中)

    无法连接。

    0.0.0.0你收到(Firefox)错误消息时

    找不到服务器。

  • 我需要做的最后一件事(这会阻止我挑剔的主机命令工作)是从字母主机名中删除“http://”或“https://”。我复制了整个网址并将它们放入主机文件命令行中。这是我犯的愚蠢新手错误。您似乎没有这个问题,但其他人可能有。网址中的“www.”(如果存在)似乎不是主机命令的问题,事实上可能是必要的。实验一下。

答案2

您使用的是 Internet Explorer 吗?根据我的经验,您需要重新启动 IE 才能识别主机更改(其他浏览器会立即识别更改)。

答案3

Windows 8(特别是 Windows Defender)阻止对 hosts 文件的编辑。

防御者中有一个选项可以将文件排除在这种保护之外。

具体内容见此链接: http://www.howtogeek.com/122404/how-to-block-websites-in-windows-8s-hosts-file/

相关内容