使用SSH的动态端口转发知道请求的目的地并将其发送到那里,据说是因为使用了SOCKS协议.
使用SSH的本地和远程端口转发将请求转发到固定目的地,而不是请求指示自己要去的位置。
上述动态端口转发与本地/远程端口转发之间的差异是因为本地和远程端口转发工作在较低级别的协议上,并且无法理解请求的目的地,还是因为本地和远程端口转发工作有能力知道请求想去哪里,但没有这样做?
例如,我们可以在以下情况下讨论: HTTP客户端向SSH发送HTTP请求,该请求用于动态或本地/远程端口转发。
谢谢。
发布于 2019-02-06 14:03:14
不同之处在于客户认为与之交谈的内容。以HTTP为例:
SSH静态(本地和远程)端口转发对于使用它们的应用程序是透明的。使用HTTP,应用程序(浏览器)根本不知道它正在与端口进行转发。对于本地转发,它认为它直接与在客户端("localhost")上运行的web服务器对话。SSH通过将所有流量传递给真正的real服务器来伪造real服务器。
SSH动态端口转发不透明。应用程序(浏览器)认为它在与"SOCKS代理服务器“而不是The服务器对话。应用程序使用SOCKS代理服务器请求到uses服务器的连接。然后,它认为它是通过socks代理与via服务器(而不是在SSH服务器或客户端上)进行对话。
另外一点是,S可以下载并在服务器上安装SOCKS代理,创建转发给它的本地端口,其结果将与动态转发相同。
https://unix.stackexchange.com/questions/499048
复制相似问题