我的目标:
我在位置 A 有一台计算机,我们称之为主机 A。我在位置 B(主机 B)有一台计算机,它运行着一个 ssh 服务器,我可以从主机 A ssh 到主机 B。我想在主机 A 的 Web 浏览器上访问一个网站,比如http://example.com/通过主机 B 的 ssh 隧道。
我做了什么:
在主机 A 中,我输入ssh -v -N -L 8080:example.com:80 host-B
。我可以使用netstat --inet -lnp
ssh 检查是否确实在监听 127.0.0.1:8080,外部地址为 0.0.0.0:*。在主机 B 中,我可以访问 example.com。因此,在主机 A 的浏览器中(此处为 Firefox),当我输入 url “http://本地主机:8080/",我应该访问 example.com 网页。
我的问题:
当我这样做时,我实际上得到了 404 not found。然而,在我发出“ssh -L”的 shell 中,我看到了一些日志,例如:
debug1: Connection to port 8080 forwarding to example.com port 80 requested.
(1)那么这里发生了什么?我做了完全相同的事情(除了使用 example.com),例如,本示例是关于本地端口转发。
当我尝试使用“www.ubuntuforums.org”(ssh -v -N -L 8080:www.ubuntuforums.org:80 host-B
在主机 A 中)时,http://本地主机:8080/实际上带我去“https://www.canonical.com/“。(2)为什么呢?
当我尝试时ssh -v -N -L 8080:www.stackoverflow.com:80 host-B
,我得到:
Fastly error: unknown domain: localhost. Please check that this domain has been added to a service. Details: cache-cdg20728-CDG
(3)再说一遍,为什么?这对我来说有太多谜团了……