将传入的 SSH 流量转发到本地 Socks5 服务器(或其他服务)

将传入的 SSH 流量转发到本地 Socks5 服务器(或其他服务)

场景是,云 Ubuntu 服务器在指定端口上运行 Socks5 代理服务器;在此云服务器上:

  • Socks5 服务器在端口 1515 上提供服务(仅接受本地连接)
  • SSH 正在接受来自端口 22、33 和 44 的连接

我们想要的是让任何客户端使用 SSH 的“动态端口转发”功能连接到云服务器上运行的 Socks5 服务器,具体客户端将使用此命令:

ssh -D 1080 -N -f [email protected] 

因此,任何在客户端上使用端口 1080 的应用程序都将通过 SSH 连接路由其流量,然后通过远程 Socks5 服务器路由,因此流量路径将如下所示:

客户端计算机上运行的应用程序 > 端口 1080 上的客户端 Socks 服务器 > SSH 隧道 > 接受本地连接的 Socks5 服务器

我希望我已经解释清楚了,谢谢

编辑:我希望客户端仅使用 -D 选项,并希望服务器实际上将传入的 SSH 流量路由到另一个接口或 Socks 主机

答案1

首先,-D 1080 将在您的本地主机和 SSH 连接的远程端创建一个 SOCK5 代理。这就是为什么它不会转发到远程 SOCKS5 代理。

您需要创建一个 SSH 隧道,将最后一段隧道连接到远程 1515 端口,以便它在您的机器上显示为本地。

ssh -L 1515:localhost:1080 -N -f [email protected]

此时,在您运行上述 ssh 命令的本地框中的另一个窗口中......

然后您应该能够连接到 localhost:1080 以透明访问远程 SOCK5 代理。

请在此处查看有关 ssh 隧道的有用视觉指南:- https://iximiuz.com/en/posts/ssh-tunnels/

相关内容