Leo*_*Leo 0 networking port-forwarding
最终我想转发一个 HTTP 连接。对链接问题中的命令进行故障排除,我试过这个:
ssh -L localhost:8888:www.google.com:80 -N localhost
Run Code Online (Sandbox Code Playgroud)
如果我现在localhost:8888
在同一个浏览器上访问,我会得到 404 而不是 Google 主页。对于其他网站,我会遇到其他类型的错误。
我在这里缺少什么?这不是简单的端口转发吗?TCP 层之上的所有内容不应该完全相同吗?显然不是。
所以:
小智 5
HTTP(s) 客户端将告诉服务器它用于访问它的名称(例如,允许同一服务器托管具有不同名称的多个站点)。
所以,如果客户说www.google.com
:
Hi www.google.com, please serve your home page
Run Code Online (Sandbox Code Playgroud)
有用。但是如果客户说www.google.com
:
Hi localhost, please serve your home page
Run Code Online (Sandbox Code Playgroud)
那么服务器不太明白你的意思,因为那里没有本地主机网络服务器。
您需要伪造客户端随 HTTP 请求发送的“Host:”标头。否则,将使用 URL 中的主机名。几个例子:
wget --header="Host: www.google.com" http://localhost:8888/
Run Code Online (Sandbox Code Playgroud)
或者
curl --header "Host: www.google.com" http://localhost:8888/
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
170 次 |
最近记录: |