有没有办法在 Visual Studio 中的不同子网上进行远程调试?

Is there a way to remote debug on a different subnet in Visual Studio?

我有一个远程客户。我需要调试 none 我的其他客户遇到的一些奇怪的问题。在尝试与该客户召开会议之前,我想知道是否有某种方法可以远程调试我们的应用程序。

我看到有可用于 Visual Studio 的远程调试工具,但根据我的阅读,我需要在同一子网上。由于此人距离遥远,因此这是不可能的。此外,由于我想保持我们的连接安全,我需要连接某种加密隧道(这是我有点模糊的地方,因为我的网络技能主要是理论上的)。

据我了解,加密隧道是通往另一个(不同的)子网的桥梁。这是为了确保另一端的那些计算机不会干扰本地子网计算机。

所以,因为客户端的计算机在不同的子网中,我认为这是不可能的。或者是吗?难道没有办法通过将数据包从一个子网转发到另一个子网来使客户端计算机在我的子网上显示为虚拟计算机吗?我认为这在理论上是可能的,但我不太确定我将如何去做。

此外,目前我连接到客户端的当前方式是通过 GoToMeeting,但我认为它不支持隧道。如果没有,那么我可能需要一些生成隧道的方法,所以我也在考虑使用一些像 PuTTY 这样的 SSH 程序。

正如我之前所说,我的网络知识非常理论化,所以如果我建议的工具不正确,请指正。 (我是程序员,该死!不是网络工程师!)

两台电脑都是Windows盒子。 Windows 10(客户端)和 Windows 8.1(开发)。

如果您可以连接到远程网络中的 ssh 服务器,则可以(根据服务器上的配置)创建一个隧道,这样您就可以连接到本地图片上的套接字,并且连接显示为从服务器到远程网络上的端点。

您需要研究 OpenSSH 的 -L 命令,结合 PuTTY 文档,应该有助于解释需要什么。

默认情况下,端点是 ssh 服务器上的一个端口,但也可以是远程服务器可以连接到的不同主机上的一个端口。

我不熟悉 Windows SSH 服务器的当前状态,但即使手头没有系统服务器,您也应该可以 运行 'on demand' - 如果你 运行 它在非特权端口上并且由你想要连接的用户作为,它甚至不需要管理员权限。

我不熟悉 GoToMeeting,但 IT 部门应该熟悉 SSH 的 SSH 隧道。如果尝试这样做,请专注于建立有效连接,然后设置隧道,然后作为单独的步骤通过它连接。

建立 SSH 连接后,它不需要自己做任何事情,然后您可以在指定端口转发的同时研究连接,但需要先让基本连接正常工作。