![仅当通过 SSH 隧道连接时,RDP 连接才会超时](https://linux22.com/image/684380/%E4%BB%85%E5%BD%93%E9%80%9A%E8%BF%87%20SSH%20%E9%9A%A7%E9%81%93%E8%BF%9E%E6%8E%A5%E6%97%B6%EF%BC%8CRDP%20%E8%BF%9E%E6%8E%A5%E6%89%8D%E4%BC%9A%E8%B6%85%E6%97%B6.png)
我有一个有趣的问题。让我描述一下我的设置:
我家里有一台服务器,用作我的虚拟机主机。这里的所有计算机都是 VM 计算机,我认为这没什么区别,因为它们都桥接到路由器,并且可以单独访问网络。
我已经设置了一个 Ubuntu 服务器,作为虚拟机,只有一个可公开访问的 SSH 服务器,作为我网络其余部分的网关,它是私有的(我已通过路由器端口 22 进行了端口转发),我们称之为SSH 主机。
我有一台 Windows 10 VM,我想通过 RDP 连接它。我已将 Windows 中的远程设置配置为允许远程连接。此外,为了进行故障排除,我已关闭 Windows 防火墙。我们称这台计算机为电脑端
最后,我设置并运行了 Ubuntu 桌面虚拟机,我设置并运行了 Xrdp,这样我就可以通过 RDP 轻松远程访问这个 Linux 虚拟机。我们称这台计算机为Ubuntu电脑
从我的网络内部我可以通过 RDP 连接到电脑端和Ubuntu电脑使用他们的 IP 地址或 DNS 主机名(在路由器上设置)。
在我的网络外部,如果我在路由器上设置了端口转发,我可以通过 RDP 进入电脑端和Ubuntu电脑 使用公共 IP 或我的域名作为我的网络(必须重新配置路由器才能测试这两种设置)。
我可以 ping电脑端和Ubuntu电脑计算机并在网络内部时获取回复。
因此,我相信 RDP 设置正确且工作正常。我试图做的是避免路由器上的端口转发 3389,以便我可以从外部使用 RDP。我想要这样做有几个原因,但我不会在这里讨论。
不久前我接触到了 SSH 隧道的想法,并且曾经成功地在 Windows 和 Linux 机器上设置了许多 SSH 隧道。
在工作或学校(在我的网络之外),使用 Windows 上的 Putty,我创建了一个本地隧道,连接到 SSH-HOST,然后我可以通过 RDP 进入Ubuntu电脑很好,所以我的 SSH 隧道在 Putty 中设置正确。但其他一切都保持不变(只是更改本地隧道目标 IP)连接到电脑端通过 RDP 只是旋转,然后最终说 RDP 无法连接到远程计算机。
我已经花了大约一周的时间来测试我失败的地方。我在学校和工作中运行了 putty,另外还使用 serverauditor 在我的 iphone 上设置了 SSH 隧道,然后运行了 RDP 应用程序,该应用程序也可以让我进入 Ubuntu-PC,但无法连接到 Win-PC。
做这一切,我总是可以进入Ubuntu电脑计算机,所以我知道事情是开放的。但是电脑端没有通过 SSH 隧道进行外部连接。
这就是我困惑的地方。我还应该尝试什么?