远程调试器通过互联网连接到另一台机器的IP地址

16

我的设置: 本地电脑:x86 Vista和Visual Studio 客户端服务器:x64服务器(静态IP)。

目前我使用远程桌面连接它。远程调试器正在作为服务运行,并且有一个具有“作为服务登录”的特权用户帐户。

我能否配置远程调试器以适应此设置?

指南和经验将使我的生活变得不那么糟糕。谢谢。


那需要一个VPN连接。请在serverfault.com上咨询。 - Hans Passant
@HansPassant 不需要VPN(至少在我的情况下,用于调试C#应用程序)。请参见下面的答案。 - T.Todua
4个回答

14

我曾遇到类似的问题,就像Hans Passant在上面所说,需要使用VPN。通过以下步骤,我能够通过互联网连接到进程并进行调试:

  1. 在服务器上安装最新的Microsoft远程调试器。
  2. 在我的本地计算机和服务器上都安装Hamachi,并连接到同一个网络。
  3. 在本地计算机上的Visual Studio中转到“调试” ->“附加到进程”,然后输入服务器的Hamachi IP地址。
  4. 选择“显示所有用户的进程”并选择要调试的进程。

注意:我在两台机器上都使用了完全相同的用户登录,并且密码也相同。

希望这能帮助大家解决问题。


1
非常好的回答。Hamachi速度相当慢但工作良好。我使用端口443进行远程调试以通过防火墙,并且不得不使用2.1版本的Hamachi,因为2.2版本有一些已知的安装问题。 - 79E09796
Hamachi对我来说非常好用,但我无法将其连接为直接隧道,只能使用中继隧道,只要我通过RDP连接到主机,它就可以正常工作。我还遇到过一个服务器,必须使用配置向导并选择运行远程调试器作为服务才能使其正常工作。 - BornToCode
如上所述 - 使用步骤1、3和4(无Hamachi)。在Windows身份验证模式下在服务器上运行MSVSMON.exe(只接受所有默认设置)。可以工作(缓慢)-但可以工作。注意:您必须在本地计算机上创建与用于登录远程计算机(服务器)的相同的用户和密码。我的设置:VS2012在Windows 8.1上调试到Windows Server 2008 Standard。 - nspire
1
哇,它起作用了 - 我在我的博客中写了更详细的内容:https://keyoti.com/blog/remote-debug-net-applications-over-the-internet-with-visual-studio/ - Jim W says reinstate Monica

3

对于我来说,只需要使用公共IP地址就可以了。在安装时,请确保Visual Studio远程工具会为所有相关网络打开防火墙端口。同时,在列出进程时,请确保连接目标公共IP地址是带有TCP端口的(VS2019的默认端口是4024)。

enter image description here


1

无法通过远程桌面连接调试器。

请查看如何设置远程调试,特别是“配置Windows防火墙”部分。您需要确保可以连接到正确的端口,这将需要软件和/或硬件防火墙更改。VPN可能是解决方案的一部分(正如@Hans Passant在他的评论中建议的那样)。

一个更简单的答案可能是在与您尝试调试的网络相同的计算机上安装Visual Studio。然后,您的调试器正在进行本地连接,而您仍然通过远程桌面与远程网络进行交互。我不确定这是否是一个选项。


谢谢,我是一位研究人员,正在处理一份存储在地球另一端服务器上的大型数据集。我编写代码、推送到Github、从服务器拉取并运行。由于我频繁修改代码,因此我正在寻找更有效的方法来完成这项工作。 - Samarth Bharadwaj

1

无需第三方应用程序!

(我建议按照这个教程操作,特别是底部标题为“设置远程调试器”的部分)。 然而,简单地说,在远程计算机上安装Remote Debugging Tools后,以管理员权限运行它,然后执行以下步骤:

  • 打开Windows防火墙设置页面

  • 点击高级设置,会出现如下窗口:enter image description here

  • 点击入站规则->新建规则,并在以下页面上进行选择:
    - [规则类型]自定义
    - [程序]特定程序(并选择:C:\Program Files\Visual Studio\Common7\IDE\Remote Debugger\x64\msvsmon.exe或者您正确的路径,还要注意您所需的路线x86/x64
    - [协议和端口]通过单击下一步跳过该页面(或者为了最大安全性,您实际上可以选择远程调试器窗口显示的确切端口)
    - [范围]在第二个字段中选择(其中写着哪个远程IP..)您当前的IP地址
    - [操作]允许连接
    - [配置文件]下一步
    - [名称]任何您想要标识的名称,例如My rule for VS

  • 您可能需要的最后一步是,在远程计算机上为文件夹设置连接(硬链接)以正确解析应用程序文件:
    * 当使用远程桌面连接时,共享驱动器本地资源 > 更多 > 驱动器 > C
    * 连接后,在远程“我的电脑”中将出现您的“映射驱动器”,并复制其位置(例如\\RobertoPC\)。然后以管理员特权打开CMD并执行:

    mklink /D C:\my_folder \\RobertoPC\C\my_folder

  • 在本地计算机的C:驱动器上创建一个名为my_folder的文件夹,并将项目放入该文件夹中,然后使用远程调试选项运行该项目:

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接