我需要通过反向隧道 RDP 到服务器

Roc*_*ley 7 linux ssh ssh-tunneling

我在网络 A 上有一台 Windows PC,在网络 B 上有一台 Windows PC。同样在网络 BI 中有几台 Linux 服务器。从网络 A 上的 PC,我可以 ssh 到网络 B 上的任何服务器。但是,我无法从网络 B 上的计算机连接到网络 A 上的 PC。

                                                      Windows PC Local
                                                       __  _          
                              can ssh                 [__]|=|         
              .-,(  ),-.    --------->    .-,(  ),-.  /::/|_|         
           .-(          )-.            .-(          )-. 
          (    Network A   )          (    Network B   )
           '-(          ).-'           '-(          ).-'
               '-.( ).-'    <---------     '-.( ).-'    
                            can't ssh               Linux Server #1
     Windows PC Remote                               __  _         
      __  _                                         [_Linux Server #2
     [__]|=|                                        /: __  _         
     /::/|_|                                          [__]|=|        
                                                      /::/|_|        
Run Code Online (Sandbox Code Playgroud)

我希望能够从我的网络 B 电脑 RDP 到我的网络 A 电脑。是否可以通过其中一个 linux 机器使用某种反向隧道?

Dra*_*oan 6

解决方案 1:在网络 A 上的 PC 上,通过连接到网络 B 上的 Linux 主机,使用Putty 之类的东西创建反向 ssh 隧道。本地端口应该是,远程主机和端口是任意的(让我们举个例子) . 然后从网络 B 上的 PC,使用 putty 连接到同一 Linux 主机,并执行转发隧道。本地端口应设置的东西比其他(如微软RDP客户端将不允许连接到本地主机,但允许连接到本地主机任意端口)。所以让我们重用相同的端口号,远程ip应该和远程端口一样。然后将 RDP 客户端指向 。3389127.0.0.1600033896000127.0.0.16000127.0.0.1:6000

实际上,您连接到6000网络 B 中 PC上的端口。Putty 将其转发到 Linux 主机,该主机已设置为将其转发到127.0.0.1端口6000。来自网络 A 上 PC 的 Putty 连接侦听6000并将其转发到127.0.0.1PC A 上的端口3389,然后 RDP 接受连接。

方案二:在B网的PC上设置一个SSHD,然后只需要做一个反向端口转发即可。有Bitvise SSHD运行在Windows和是免费的非商业用途。Bitvise 还做一个单独的客户端,与 WinSSHD 一起处理 RDP 隧道。这个解决方案的好处是保存用户名、设置(如全屏等),并且可以从保存文件启动,并且将阻止您在使用 RDP 之前设置/记住转发端口。