当我在 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/