Ssh

通過 HTTP(或 HTTPS)的 SSH 隧道的說明

  • February 17, 2020

我注意到,當我在本地創建從我的 PC 到遠端的隧道時,對於某些設備(通常是路由器),通過 http 或 https 的連接不會發生。我得到一個彈出視窗,上面寫著:

The 'Host' field contained in Http header is invalid

如果在文件文件中設置以下內容hosts

127.0.0.1 modemtim

我使用modemtim連接,而不僅僅是127.0.0.1,一切正常。

SSH 命令:

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

為什麼?

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

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

低成本的 Web 服務提供商在一台機器上託管許多域,例如 www.yourdomain.namewww.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發出請求可解決此問題。

引用自:https://unix.stackexchange.com/questions/568095