仅使用 Plink 进行反向动态端口转发

仅使用 Plink 进行反向动态端口转发

网上有很多教程解释如何配置 ssh 来创建动态端口转发服务器。就我而言,仅使用 Plink,我遇到了一些麻烦。

上下文如下:我希望将我HOSTA(Linux 机器)的所有流量(HTTP、RDP 等)重定向到HOSTB(Windows 机器)。

我的命令如下:

[HOSTB - Windows 计算机]

plink.exe -N -D 127.0.0.1:8888 -P 22 REMOTEIP
plink.exe -N -R 2222:127.0.0.1:8888 -P 22 REMOTEIP

[HOSTA-Linux 机器]

 curl --socks5 127.0.0.1:2222 https://www.google.com

所有端口都已打开(HOSTB 上的 8888 和 HOSTA 上的 2222)。但是,流量似乎会从 HOSTA 发出,而不会从 HOSTB 发出。我尝试了不同的程序和不同的 socks 版本,问题仍然存在

我是否遗漏了什么?

谢谢 !

答案1

这是一个老问题,但它一直出现。

正如问题评论中提到的,您的尝试会导致动态端口转发到您希望从其发起通信的系统(SOCKS 客户端)。而这不会实现您所希望的反向动态端口转发。

您需要的是以下内容:

plink.exe -N -R 2222:127.0.0.1:8888 -P 22 REMOTEIP
and
  # when local host is running SSH Server
  plink.exe -N -D 127.0.0.1:8888 -P 22 localhost
or
  # when local host has not SSH Server
  plink.exe -N -D 8888 -P 22 PROXYSSHIP
or
  # when a dedicated SOCKS proxy server is available
  plink.exe -N -L 8888:SOCKSPROXYIP:SOCKPORT

您可以替换localhost为另一个可以进行动态端口转发的 SSH 服务器,也可以将流量转发到 SOCKS 代理服务器。但是,为了实现您的目标,您选择的任何服务器都必须位于您想要代理的网络上。

因此,当您在目标网络上没有可以连接的 SSH 服务器时,通常会出现问题。例如,localhost没有运行 SSHd(服务器),并且您在该网络上没有其他启用 SSH 的服务器上的帐户。此外,如果您不知道任何 SOCKS 代理为该网络提供服务,您的选择就会大大减少。

如果没有 SSHd 连接,您就无法做到这一点,因为 PLINK (0.63) 是一个没有 SOCKS 实现的客户端。如果您使用OpenSSH 7.6 或更高版本,SSH 客户端确实具有 SOCKS 功能,这意味着您可以使用以下命令重新连接回您的客户端框...

ssh me@mine -R 1080 -N -f

... SSH 客户端将充当代理服务器(无需单独的代理服务器)。唉,据我所知,这仅在使用 OpenSSH 7.6+ 构建的工具中可用。

因此,您可以尝试以下操作。1、2 和 3 与上面概述的更改配合使用,而 4 和 5 则需要研究。

  1. 您可以在 Windows 客户端上安装 SSH 服务器并使用localhost上述
  2. 您可以将同一网络上的另一台服务器与您的 Windows 客户端进行识别,并使用 PLINK 连接到该服务器并在那里运行您的 SOCKS 代理。
  3. 您可以识别一个已经在执行您想要的操作的现有 socks 代理。
  4. 您可以尝试找到更高版本的 PLINK,希望它能像 OpenSSH 7.6+ 一样添加 SOCKS 功能
  5. 您可能能够使用“安全套接字漏斗”,但它需要在某个地方设置一个服务器,以便您的 socks 客户端和 windows 客户端都可以访问,并且需要在 windows 客户端上运行 SSF 客户端。我自己还没有这样做过,所以我不是根据经验说的。

相关内容