通过 Windows 机器进行 SSH 端口转发

通过 Windows 机器进行 SSH 端口转发

是否可以使用没有 SSH 的 Windows 机器作为网关,连接到只能从网络内部访问的 SSH 服务器?

让我用一张草图来澄清我的问题:

我(Linux 机器)---> WIN(没有 SSHD 的 Windows)--->LIN(带有 SSHD 的 Linux)。

Machine Me 是我用来通过 WIN 连接 LIN 的 PC。WIN 可从外部访问,它有一个开放的 RDESKTOP 端口,而 LIN 只能从网络内部访问。

希望你理解这个问题。

答案1

OpenSSH 具有通过 ProxyCommand 选项使用代理的非常灵活的能力。如果 Windows 机器上没有 SSH 守护程序,那么您可以安装 socks 代理、HTTP CONNECT 代理或通用 TCP 代理吗?如果可以,那么您可以将其用作连接到内部系统的点。具体细节取决于您安装的代理类型以及各个系统之间的防火墙/过滤器类型。

如果不安装某种代理,Windows 系统就无法实现这一点。Windows 没有任何内置的通用代理可以转发 SSH 流量。

答案2

核心问题是你是否可以通过另一台机器连接到某项服务。答案是可以的,但你需要软件。

我刚刚快速谷歌了一下,发现了这个东西:http://www.quantumg.net/portforward.php Linux 上也有各种实用程序,但我个人最喜欢的是 rinetdhttp://www.boutell.com/rinetd/

两者的工作方式相同 - 您运行一个程序,该程序基本上将数据包从一台主机转发到另一台主机。如果您可以访问中间的机器,则应该能够安装一个守护进程/服务器来执行此操作。

答案3

Windows具有内置的端口映射机制:

netsh interface ipv6 install  # Port forwarding needs to enable ipv6
netsh interface portproxy add v4tov4 listenaddress=123.234.12.34 listenport=22 connectaddress=192.168.1.2 connectport=22

将 123.234.12.34 替换为你的 Windows Server 的公网 IP,将 192.168.1.2 替换为你的 Linux Server 的内网 IP

答案4

不,sshd 会进行转发,因此如果 Windows 中没有运行 SSH 守护程序,您就无法进行转发。

相关内容