通过SSH隧道远程调试

时间:2013-08-28 11:56:53

标签: networking ssh visual-studio-debugging putty dcom

我正在与Microsoft ForeFront背后的服务器通信,我需要连接到位于服务器上的Visual Studio远程调试器。我的开发计算机位于Microsoft ForeFront之外,因此非常麻烦。到目前为止,我已经设法将我的机器上的Visual Studio连接到最前端的服务器上的远程调试器。我可以在Remote Debugger Monitor中看到连接成功。 “DOMAIN \ Jens连接”它说。 Visual Studio客户端仍在等待,过了一段时间它抱怨“无法连接到名为Jens @ SERVER的Visual Studio调试监视器。目标计算机上的Visual Studio调试器无法连接回此计算机”

到目前为止,为了设置这一切,我尝试使用Putty来隧道连接远程调试器。 我已经将Putty设置为连接到Microsoft Forefront网络外部的linux服务器。在Putty我设置了以下转发(123.123.123.123是ForeFront外的linux服务器):

4R123.123.123.123:135      localhost:135
4R123.123.123.123:137      localhost:137
4R123.123.123.123:138      localhost:138
4R123.123.123.123:139      localhost:139
4R123.123.123.123:445      localhost:445

这部分效果很好。我可以从我的开发机器访问所有这些端口,因为我之前写的Visual Studio甚至可以连接。我在我的开发计算机和服务器上使用相同的用户名和密码设置了本地管理员,并使用该用户运行Visual Studio和远程调试器。

现在我的理论是,服务器上的远程调试器想要建立一个TCP连接回我的开发计算机发送回复到Visual Studio,我猜我从visual studio到服务器上的远程调试器的连接看起来就像他们来自localhost一样。因此,我猜远程调试器将尝试连接到origin(localhost)并尝试在那里发送回复。

这有意义吗?如果是这样,有没有办法可以欺骗这个连接,因为它来自我的电脑的实际IP地址?如果可能的话,我可以欺骗远程调试器连接到正确的位置吗?

如果我以不好的方式解释了这一点,请问我,我会尽力澄清。

1 个答案:

答案 0 :(得分:1)

好的,我现在找到了一个简单的解决方案。我在开发盒上的VMWare虚拟机上安装了OpenVPN服务器。所以我现在有树机。

  • 我的开发机器
  • 需要调试的服务器
  • 新的OpenVPN服务器(虚拟)

然后我在我的防火墙中向OpenVPN机器打开了端口443,然后我在需要调试的服务器上和我的开发机器上安装了OpenVPN客户端,并将它们连接到OpenVPN服务器。

我必须配置OpenVPN,以便我有2个不同的用户(每个客户端一个),我还必须在VPN上启用跨用户通信。我只需将VPN的IP子网添加到允许的专用网络列表中。

最后一点是在C:\ Windows \ System32 \ drivers \ etc \ hosts文件中添加一个条目,将服务器名称指向vpn ip地址(您必须使用正确的服务器名称连接到远程调试器)