尝试通过 IP 或使用 ssh -L 访问网站时,服务器出现 404

尝试通过 IP 或使用 ssh -L 访问网站时,服务器出现 404

我正在尝试访问www.fallenlondon.com通过其 IP 地址。但是,ebz-2-1147703023.eu-west-1.elb.amazonaws.com和都46.137.175.221给出服务器错误:404。

ssh -L *:8080:www.fallenlondon.com:80 me@myremotehost如果我这样做然后导航到localhost:8080(这对于 Google 和我尝试过的其他几个随机网站都很有效),我会遇到同样的问题。

有人能解释一下这是怎么回事吗?如果能提供解决方案,我将不胜感激。

编辑: 按照凯尔·琼斯的回答,显然这是由于 HTTP 主机标头中未包含服务器需要的(所需)域名信息来消除歧义并给我想要的结果。

有什么方法可以确保标题在两种用例中都包含我想要的内容?


nslookup:

nslookup www.fallenlondon.com
Server:     127.0.0.1
Address:    127.0.0.1#53

Non-authoritative answer:
www.fallenlondon.com    canonical name = ebz-2-1147703023.eu-west-1.elb.amazonaws.com.
Name:   ebz-2-1147703023.eu-west-1.elb.amazonaws.com
Address: 46.137.175.221

主持人:

host www.fallenlondon.com
www.fallenlondon.com is an alias for ebz-2-1147703023.eu-west-1.elb.amazonaws.com.
ebz-2-1147703023.eu-west-1.elb.amazonaws.com has address 46.137.175.221

host fallenlondon.com
fallenlondon.com has address 46.137.122.254
fallenlondon.com mail is handled by 30 aspmx3.googlemail.com.
fallenlondon.com mail is handled by 10 aspmx.l.google.com.
fallenlondon.com mail is handled by 20 alt1.aspmx.l.google.com.
fallenlondon.com mail is handled by 20 alt2.aspmx.l.google.com.
fallenlondon.com mail is handled by 30 aspmx2.googlemail.com.

答案1

IP 地址不一定是特定网站所特有的。

多年来,Web 提供商一直使用 HTTP 1.1 Host 标头来区分网站,并通过单个 IP 地址为多个网站提供服务。您的 Web 浏览器会向 Web 服务器发送一个 Host 标头,告知它您请求的网站的域名,然后服务器会响应正确的页面。如果您只提供 IP 地址,服务器将无法确定您想要哪个网站(IP 地址后面可能有很多网站)。在这种情况下,一些网站会返回通用页面,而一些网站会向浏览器返回错误代码。

我认为您必须将 www.fallenlondon.com 的条目添加到 /etc/hosts(或您的系统支持的任何等效静态主机表),该条目指向 127.0.0.1。然后,您可以使用 www.fallenlondon.com:8080 到达隧道的本地端点,并且带有正确域的 Host 标头将通过 ssh 隧道发送到 AWS 服务器。我在这里尝试过,它对我有用。

相关内容