对 HTTP(或 HTTPS)上的 SSH 隧道的说明

对 HTTP(或 HTTPS)上的 SSH 隧道的说明

我注意到,当我在本地创建从我的 PC 到远程 PC 的隧道时,对于某些设备(通常是路由器),不会发生通过 http 或 https 的连接。我收到一个弹出窗口,上面写着:

The 'Host' field contained in Http header is invalid

如果在文件file中设置以下内容hosts

127.0.0.1 modemtim

我使用连接调制解调器而且不仅是127.0.0.1,一切正常。

SSH 命令:

ssh -L 8080:<IP_REMOTE_ROUTER>:80 <USER>@<REMOTE_TUNNEL>

为什么?

答案1

如果您连接到,典型的 http 请求如下所示http://google.com/?q=icarus

GET /?q=icarus HTTP/1.1
Host: google.com
User-Agent: mozilla/123
Accept: */*

低成本 Web 服务提供商在一台计算机上托管许多域名,例如 www.yourdomain.name 和 www.mydomain.us。该机器上的 Web 服务器查看Host:标头以了解要使用哪一组文件。如果您连接到http://127.0.0.1/index.html并且它被转发到 www.yourdomain.name 远程网络服务器将有一个Host: 127.0.0.1标头,这不能帮助它决定需要哪组文件。将条目添加到 /etc/hosts 并向http://www.yourdomain.name/index.html解决了这个问题。

相关内容