为什么当我尝试访问 bitcoin.stackexchange.com 及其 /etc/hosts 中的 IP 别名时,浏览器会出现不同的行为?

为什么当我尝试访问 bitcoin.stackexchange.com 及其 /etc/hosts 中的 IP 别名时,浏览器会出现不同的行为?

我还没有发现任何浏览器支持定义的别名,/etc/hosts即使单个术语(无需在浏览器中前缀http://)不被解释为默认搜索引擎的搜索术语(情况为坏狼浏览器)。别名在前缀为 http:// 时有效,例如, http://bse但必须键入http://会破坏使用它们的目的。

Cloudflare 不允许通过别名访问 bitcoin.stackexchange.com,定义为 172.64.144.30 bitcoin.stackexchange.com bse

Error 1003 Ray ID: 85750e9fc9b65e4d • 2024-02-18 08:56:29 UTC
Direct IP access not allowed
What happened?
You've requested an IP address that is part of the Cloudflare network. A valid Host header must be supplied to reach the desired website.

当我尝试访问时,bitcoin.stackexchange.com我没有从 Cloudflare 收到任何错误。

  1. bitcoin.stackexchange.com当我尝试从台式电脑访问并附172.64.144.30 bitcoin.stackexchange.com bse加到 时,我是否发送主机标头/etc/hosts

  2. 为什么我在尝试访问浏览器时会得到不同的浏览器http://bse行为bitcoin.stackexchange.com

  3. Brave、Firefox (?)、Chromium 等浏览器中是否有任何设置about:config可以让我无缝地使用我的别名?

除了/etc/hosts我的 DNS 查询之外,其他查询均由家庭路由器解析,如我的内容所示/etc/resolv.conf

# Generated by Connection Manager
search home 
nameserver 192.168.1.1

我所做的研究是man hosts172.64.144.30 bitcoin.stackexchange.com bse附加的假设目的/etc/hosts是限制对我的路由器的 dns 服务器的某些 DNS 查询的数量(这可能使我的分析看起来过于激进,从而导致有针对性的监视)。我知道反向 DNS 查找的可能性,但这超出了问题的范围。

答案1

  1. 是的,您的浏览器会发送一个 Host 标头,并且在 HTTPS 访问的情况下,另外使用 SNI,告诉服务器它要访问哪个站点。这当然没什么不寻常的 - 一台服务器可以为任意数量的主机上的任意数量的网站提供服务,因此它需要知道您正在尝试访问哪一个。如今,IP 对于许多网络服务器来说根本不够用。
  2. 由于上述原因,如果服务器未配置为为您尝试访问的主机提供服务,则服务器可能会选择为您提供默认网站或根本不提供网站。
  3. 在 Firefox 中,您可以将关键字分配给书签,这样只需访问关键字即可转到已添加书签的链接。您不必使用http://<keyword>,而只需使用裸关键字即可。右键单击任何书签并对其进行编辑,出现的对话框将包含一个用于输入关键字的字段。

相关内容