我正在尝试使用 Visual Studio 2010 Remote Debugging 来调试 Amazon ec2 云机器上的应用程序 [从这里称为 REMOTE] 并且无法使其正常工作。
0) 机器:本地运行 Windows 7 Pro-64 位远程运行 Windows Server 2008-R2 64 位
1)我有远程调试监视器和远程机器上的其他东西(我在远程调试方面有很多经验,通常在更简单的网络情况下)。我正在使用 64 位版本的 msvsmon.exe
2) 本地计算机的 Windows 防火墙设置为允许 devenv.exe 发送任何内容。
传入规则允许端口 TCP 135、UDP 500 和 4500
在本地和互联网之间,我们有:
本地路由器将 TCP 和 UDP 端口 1-1193 和 1195-48999 转发到本地
本地 Ooma 框将 TCP 和 UDP 端口 1-1193 和 1195-48999 转发到“本地路由器”
我已经用 tcping.exe 和端口 45678 测试了转发,并且可以正常工作,所以我知道路由器和 ooma 框的转发规则正在工作。
我已经在本地网络上测试了对另一台机器的远程调试,它工作正常。因此,如果 LOCAL 的防火墙出现问题,似乎只能是范围(私有/公共/域)。我们这里没有涉及域。据我所知,我已经检查了我查看过的每个防火墙规则中的所有 3 个框,所以我认为范围不是问题。虽然我想知道
3)EC2防火墙的安全组设置允许入站,我认为适用:TCP 135 TCP 139 TCP 445 TCP 4015 UDP 0-65535
4)在远程我创建了入站规则以允许:TCP 135、139、445 和 80 UDP 137、138、500、4500(尽管据我所知,我没有使用 IPSec)
5) 我还允许 msvsmon.exe 配置防火墙以在我启动它时允许来自任何机器的连接,这可能是多余的,但此时我正在尝试一切。
6) 在 msvsmon 的工具 > 选项中,我启用“无身份验证(仅限本机)”并选中“允许任何用户调试”。端口是 4015。
7) 在 LOCAL 上,我将 Transport 更改为“Remote (native only with no authentication)”。我将远程主机名放在限定符中。
然后,在 REMOTE 上,msvsmon 显示“Doug connected”。
伟大的!除了我什么都得不到。等待后,在本地我得到,“无法连接到 [主机名]。远程机器没有响应。”
8) 我无法远程关闭 msvsmon。我可以单击文件 > 退出,但 msvsmon 然后冻结。
REMOTE 上的 ProcessHacker 显示以下连接:msvsmon.exe (7364), [REMOTE Hostname], 3893, , , TCP, Listen, msvsmon.exe (7364), [REMOTE Hostname], 3894, , , TCP, Listen, msvsmon.exe (4232), [远程主机名], 3901, [远程主机名], 4015, TCP, 已建立, msvsmon.exe (7364), [远程主机名], 4015, , , TCP, 听, msvsmon.exe (7364), [远程主机名]、4015、[本地主机名]、58007、TCP、关闭等待、msvsmon.exe (7364)、[远程主机名]、4015、[远程主机名]、3901、TCP、已建立、
LOCAL ProcessHacker 显示:devenv.exe (4624), Ducky, 58175, [RemoteHost], 4015, TCP, FIN Wait 2,
如果我想要足够长的时间,LOCAL 上的“FIN Wait 2 连接”就会消失,但 REMOTE 上的“关闭等待”连接直到我终止 msvsmon 进程后才会消失。
9)所以似乎REMOTE正在尝试在不同的端口上联系LOCAL并且没有通过?或者...?
我真的没主意了。很明显,我在某个地方出了点问题。我已经尝试关闭本地和远程的 windows 防火墙并获得相同的结果。