如何通过 SSH 隧道建立入站和出站连接?

如何通过 SSH 隧道建立入站和出站连接?

我对计算机网络的了解非常有限,所以我的术语可能在某些地方不正确,但我会尝试尽可能清楚、概括和准确地解释情况。

设置如下:

具有本机 socks 支持的应用程序配置为连接到本地监听的代理服务器(在这种情况下,代理服务器是启用了动态隧道的 PuTTY),该服务器通过 SSH 隧道连接到远程服务器,然后连接到目的地。

当本地机器上的软件充当客户端(即,它正在启动连接)时,这种方法可以正常工作,但如果软件需要接收传入连接,则这种方法无法工作,因为连接是与远程隧道服务器建立的,而远程隧道服务器不知道如何处理所述连接并随后将其丢弃。

远程服务器和本地服务器分别运行 GNU/Linux 和 Windows。

我的问题是,如何让远程隧道服务器将其在某个端口上收到的连接转发到我的本地计算机?如果可能的话,最好通过现有的 SSH 连接。

答案1

ssh将此称为“反向端口转发”;在 OpenSSH 中,这是-R命令行选项,在 PuTTY 中,这是通过选择端口转发的“远程”选项来完成的。请注意,服务器ssh必须允许GatewayPorts yes其他sshd_config机器连接到远程的转发套接字。

答案2

您似乎对计算机网络的理解并不“非常有限”。TCP 连接应该可以通过 socks 隧道正常工作。但如果应用程序使用 UDP,则在没有更复杂的设置的情况下无法通过隧道工作。您尝试通过隧道使用什么应用程序?

相关内容