如何设置外部防火墙以启用Visual Studio远程调试。

7
我在这里阅读了许多文章,包括 MS 和谷歌上的远程调试,所有这些文章都涵盖了 Windows 防火墙以及如何打开端口并将调试器远程代理添加为例外。似乎使用远程调试器必须能够动态打开端口。
在使用外部防火墙时,这是不可能的。有人知道要使用什么配置才能通过外部防火墙进行远程调试吗?客户端计算机已经打开了所有端口,服务器已经打开了以下端口:
TCP 135、139、445 UDP 137、138、500、4500
编辑:在网站端使用 Windows 2008 R2 SP1,在调试端使用 Windows 7 SP1,其中安装了 VS。然而,防火墙对于两者都是外部的,必须分别进行配置,即它没有关于正在请求端口的运行进程的信息,它只看到端口请求。
2个回答

2
在Vs2010中,托管远程调试是通过RPC完成的。如果您的远程操作系统支持它,您可以尝试使用配置RPC动态端口分配并在防火墙上打开配置的端口。顺便说一下,除了端口之外,您还需要配置用户访问权限。
如果不知道您的操作系统是什么,这里还有一个链接适用于更现代化的操作系统:如何限制RPC动态TCP/IP端口分配
* NetSh INT IPV4 SET DynamicPort TCP Start=1024 num=65535
* NetSh INT IPV4 SET DynamicPort UDP Start=1024 num=65535

我编辑了我的问题,加入了关于操作系统的信息。不过那个链接看起来很有希望。 - Abel
1
抱歉,我没有Windows 2008检查,但看起来在2008上您可以通过NetSH(添加到答案中)简单设置端口范围。只需小心,如果范围太小,则可能会导致服务器出现问题,并且在防火墙上打开端口范围会在某种程度上妥协安全性。 - elevener
一个有趣的补充(仅将防火墙上的开放端口限制为您调试站点的IP地址):) - elevener
那件事已经完成了,即使我想要不同的结果,他们也不会允许。 - Abel
事实上,我认为您甚至不需要重新配置服务器。使用netsh检查服务器上的当前动态端口范围,并在防火墙上打开该端口范围。希望您的防火墙支持打开范围 :) - elevener
虽然我还不确定这是否能够100%地工作(需要等待防火墙更改完成),但我会给予怀疑的好处并接受这个方案。但至少看起来是可行的方式。 - Abel

0

我相信Visual Studio远程调试使用DCOM,问题可能与以下相关: http://support.microsoft.com/kb/248809(即问题可能是NAT而不是防火墙)。

我建议尝试设置VPN并通过VPN进行调试。那应该可以解决问题...


我们有一个VPN,但由于VPN连接到公共服务器,所以他们仍然使用防火墙(这是正确的做法,可以防止任何潜在感染和不受信任的客户端感染服务器)。 - Abel

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