我有一个java进程在我的机器上监听端口4502。我使用ngrok创建了一个隧道,这样我就可以在我的开发机器上访问应用程序了。我面临的问题是将调试器附加到远程JVM。
下面是我使用的调试java配置:
-agentlib:jdwp=transport=dt_socket,address=*:5005,server=y,suspend=n
下面是应用程序隧道的ngrok配置:
ngrok http 4502
下面是JVM隧道的ngrok配置(我也尝试过http协议,但没有成功):
ngrok tcp 5005
ngrok为tcp隧道输出以下内容:
Forwarding tcp://2.tcp.eu.ngrok.io:10928 -> 127.0.0.1:5005
使用IntelliJ,我将远程调试配置如下:
Debugger mode: Attach to remote JVM
Host: tcp://2.tcp.eu.ngrok.io
Port: 10928启动调试器时会出现以下错误:
运行‘调试作者桌面’的错误:无法打开调试器端口(tcp://2.tcp.eu.ngrok.io:10928):java.io.IOException“握手失败-连接提前关闭”
在运行java进程的机器上,我已经确保5005端口在启动进程之前是打开的。在使用IntelliJ的机器上,我确保了10928端口是打开的。为了能够将调试器附加到第二台计算机上运行的进程,我必须做什么?任何帮助都将不胜感激。
发布于 2021-11-16 13:30:09
我找到了解决办法。问题在远程调试器配置中。指定主机时,不能包括协议。一旦我将tcp://2.tcp.eu.ngrok.io改为2.tcp.eu.ngrok.io,它就成功了!
https://stackoverflow.com/questions/69986483
复制相似问题