我运行一个 Web 服务器,例如python -m SimpleHTTPServer 80
或python -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.com到http://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 查找来跟踪您访问的网站,但它也会禁用您的主机文件。