networking - 基于 SSH 隧道的远程调试器

标签 networking ssh visual-studio-debugging putty dcom

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

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

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 到服务器上的远程调试器的连接看起来像他们有起源于本地主机。因此,我猜测远程调试器将尝试连接到源(本地主机)并尝试在那里发送回复。

这有意义吗?如果是这样,有没有办法可以将此连接欺骗为来自我计算机的实际 IP 地址?如果可能的话,也许我可以欺骗远程调试器连接到正确的位置?

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

最佳答案

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

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

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

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

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

    关于networking - 基于 SSH 隧道的远程调试器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18487216/

    相关文章:

    ruby-on-rails - Capistrano 3 部署 : fatal: Could not read from remote repository

    c# - 如何检查网络连接?

    android - Android 中 3G 的部分唤醒锁

    networking - 如何使用容器中的主机IP?

    linux - 为什么外部 NIC 无法在我的服务器上运行(在 Debian 7 上运行)?

    c# - 如何通过 sudo 运行命令并通过 ssh .net c# 输入密码

    git拒绝密码,仅当以root身份登录时

    visual-studio - 被调试的进程究竟如何危害调试进程(机器)?

    c# - 调试时忽略特定文件

    c# - 如何调试从外部应用程序调用的类库?