网络浏览器没有通过 hosts 文件获取我的网络服务器,但它们在 127.0.0.1 上获取了我的网络服务器

网络浏览器没有通过 hosts 文件获取我的网络服务器,但它们在 127.0.0.1 上获取了我的网络服务器

我运行一个 Web 服务器,例如python -m SimpleHTTPServer 80python -m http.server 80(这取决于 Python 版本),然后我echo blah >index.html 要编写一个包含文本 blah 的 index.html。

C:\Python27>start python -m SimpleHTTPServer 80


Serving HTTP on 0.0.0.0 port 80 ...

并且有效

C:\Python27>curl 127.0.0.1
blah

C:\Python27>

Chrome 将其拾起

http://127.0.0.1 显示 blah

我的主机文件 c:\windows\system32\drivers\etc\hosts

有这些线

127.0.0.1 rice.com
127.0.0.1 www.rice.com

对于 rice.com 来说,hosts 文件有效

如果我告诉 chrome 去http://rice.com,然后会显示“无法访问该站点 rice.com 拒绝连接。”

但是在浏览 hosts 文件时它并没有选择 Web 服务器!

所以我可以访问http://127.0.0.1在 chrome 中可以正常工作

但当我这样做http://rice.com 它没有转到 rice.com,因此 hosts 文件正在执行某些操作,或者更确切地说,它正在产生一些影响。

但 chrome 无法从http://rice.comhttp://127.0.0.1

Firefox 也是如此。

那是 Windows 7。我在另一台碰巧运行 Windows 10 的笔记本电脑上尝试过,同样的事情发生了。

我启动网络服务器 python -m http.server 80

同样的事情..如果我这样做http://127.0.0.1它可以看到它(index.html 的内容)。如果我这样做http://rice.com然后它说“无法访问站点。拒绝连接”。

答案1

如果chrome://settings/security选项“使用安全 DNS”已启用,请尝试禁用它并重新启动 Chrome。

“安全 DNS”代表“DNS over HTTPS”,现在默认启用。它使浏览器忽略所有本地 DNS 设置,并使用浏览器中配置的提供商(默认情况下可能是 Google)通过安全的 HTTPS 通道自行进行 DNS 查找。

这将防止窃听者或您的 ISP 通过监视您的 DNS 查找来跟踪您访问的网站,但它也会禁用您的主机文件。

相关内容