ssh - Visual Studio 2017 和远程调试器 Msvsmon 之间的 ssh 隧道
问题描述
我想从 machine1 上运行的 Visual Studio 2017 调试在 machine2 上运行的应用程序。我只能通过 ssh 连接到 machine2。从 machine1 到 machine2 的 ssh 连接工作正常。
在 machine2 上,我运行 Visual Studio 2017 远程调试器,端口号 4022,“无身份验证”和“允许任何用户调试”。
端口号可能是 4023,因为 machine2 是运行 32 位应用程序的 64 位窗口:https ://docs.microsoft.com/en-us/visualstudio/debugger/remote-debugger-port-assignments?view=vs-2017 但我不确定,因为我不知道如何检查远程调试器是 32 还是 64。
我通过在 machine1 上运行以下命令创建了一个 ssh 隧道:
ssh -L 4022:localhost:4022 machine2user@machine2IP
(如何创建多个隧道?隧道是双向的吗?)
在 machine1 Visual Studio 项目设置中,我将远程调试器设置为“远程(无身份验证)”并定位到 localhost:4022。
我可以看到在 machine2 远程调试器中, machine1user 连接。在 machine1 Visual Studio 中,我可以看到 machine2 上运行的进程。
但是当我尝试附加到我的 exe 进程时,我得到:
machine1 上的防火墙规则允许任何 ssh 流量和 4022,4023 流量。machine2 上的防火墙规则由远程调试器安装自动设置。
如何让 machine1 上的 Visual Studio 监听来自 machine2 的远程调试器流量?(我猜这可能是问题所在)。
我已经在这里检查了类似的问题,但没有任何帮助。
解决方案
我通过使用端口 4023 创建隧道来解决它:
ssh -L 4023:localhost:4023 machine2user@machine2IP
推荐阅读
- xamarin.forms - 为什么这个通用代码不适用于在 iOS 中显示 PDF 而不是在 Android 中?
- php - Amazon Linux EC2 上的 PHP 服务器
- java - 如何在 Netbeans 中使用 keycloak-installed-adapter 使用 keycloak.logout()
- r - 根据同一数据框的两列以上的值汇总一列的值
- amazon-web-services - 一个具有“较小功能”的 lambda 函数与多个函数的优缺点是什么
- c - 为什么while循环在else语句之前停止?
- flutter - 颤振:如何在按下后退按钮时不退出应用程序
- css - 导航到特定组件或刷新时如何将类添加到正文?
- google-apps-script - 谷歌搜索中的单字符点是什么意思?
- php - laravel 编辑表单复选框值旧输入