通过远程桌面连接建立 TCP/IP 连接隧道

Kri*_*son 42 remote-desktop port-forwarding

我可以通过远程桌面连接连接到专用网络上的远程 Windows 服务器。我希望能够建立从我的计算机到该服务器网络上的其他计算机的 TCP/IP 连接。

远程桌面连接可以通过连接共享打印机、驱动器和其他本地资源。有没有办法通过 RDC “隧道化” TCP/IP 连接?

我想要类似于 SSH 提供的端口转发的东西。我看不到通过 RDC 执行此操作的任何方法,但我希望该功能在那里,而我只是不知道。

小智 21

如果您在客户端(而不是本机 Windows 客户端)运行 rdesktop,则可以使用rdp2tcp
它允许您管理通过 RDP 连接转发的 TCP 端口。


Cha*_*ent 8

我不认为你可以通过 RDP 建立隧道,但是如果你要 rdp 到服务器,然后启动一个 ssh 隧道回到你的客户端,你的机器将通过 ssh 连接。您可以转发远程和本地端口,这样您就可以做到这一点,以便一切都相反

编辑

如果您在客户端 PC 上安装了 ssh 服务器并将其设置为在端口 443 上接受 ssh 连接,那么您可以从您的服务器(使用 ssh 客户端连接)连接到 ssh 服务器(您的客户端)并且您不需要打开任何端口( 443 应该对 https 开放)

  • 是的,看来我需要安装一个 SSH 服务器。不幸的是,这需要 MIS 采取措施打开防火墙中的端口,因此可能需要几天/几周的时间。 (2认同)

wol*_*olf 7

我没有找到比rdp2tcp更好的方法来与不允许管理员访问或接口到接口网络路由的 Windows Server 一起使用。您需要在 rdesktop 上执行OOP 补丁才能使其正常工作(转到最后几页找到与最新版本的 rdesktop 相对应的补丁)。我使用 MinGW 编译器来编译隧道的 Windows 端。

该文档也非常出色且简洁。

这看起来可能是一个小问题:如果您使用带有“-”的“addin”名称,rdesktop 将无法正确解析命令行。这可能是一种需要适当转义的攻击,但我不确定。

请注意,据我所知,这不是一个“真正的”TCP 隧道,它“看到”TCP 协议数据单元,因为如果没有 Windows 端的管理员权限,这是不可能的。它更像是一个带有预先配置端点的袜子代理(虽然不是很重要)。如果您喜欢的话,它还具有实际的袜子代理功能。

我用它轻松管理了一个交互式 SSH 会话,但它无法支持 SSH 文件传输(在 rdesktop 控制台中给出了“虚拟通道断开连接”(rdp2tcp 作为其子进程,由 rdesktop 使用 stdout/stdin dup2'ed/piped 运行) ,但不对 stderr 进行任何更改))。源代码中有一个名为 RDP2TCP_PING_TIMEOUT 的常量,它看起来像是用于保持隧道的保持活动超时。假设中间网络中存在某种限制,将其从 5 秒增加到 900 秒似乎已经达到了目的,并且它可以承受高达 100MB 的传输(在该特定网络上大约需要 15 分钟)。

除此之外,rdp2tcp 被发现收到了一个 SIGPIPE,它声称收到该信号是因为 rdesktop 管道中断,尽管我无法从 rdesktop 代码或 ' 的输出中找到任何发生这种情况的证据。 lsof' 显示在 SIGPIPE 触发之前和之后 rdesktop 的管道数量没有变化。

如果发生这种情况,您将需要重新启动 rdesktop,也可能需要重新启动隧道的 Windows 端。您可以使用 rsync 和恢复文件传输,也许您可​​以自动化整个恢复过程。

所有这一切都假设 Linux 作为您的客户端。由于我在 Cygwin/X 上遇到了一些不相关的问题,我还没有在 Windows 上尝试过修补过的 rdesktop。我想它应该有效。

另外,我的经验是使用 SSH,但通过任何其他方式传输大量文件都可能会遇到相同的问题。