无法通过SSH隧道远程调试JVM

时间:2011-10-04 08:59:26

标签: java debugging ssh jvm

我需要通过SSH隧道使用远程调试器调试Java应用程序。我在我的PC上配置了putty,我可以使用隧道连接到服务器上运行的任何其他服务,但是eclipse远程调试器无法连接。

在服务器端,我使用Java 1.6.0_21-b06启动以下调试选项:

-Xrunjdwp:transport=dt_socket,address=8686,server=y,suspend=n

在我的笔记本电脑上,ssh隧道配置为:

L8686 IP_ADDR:8686

在ssh隧道上运行会话时,JVM调试器是否有任何限制?

还有一件事,当我尝试连接时,在服务器控制台上我可以看到以下log mesage:

Listening for transport dt_socket at address: 8686

3 个答案:

答案 0 :(得分:2)

您可以尝试L8686 localhost:8686,因为JVM可能拒绝来自非本地地址的连接吗?请注意,'localhost'是服务器角度的地址。

答案 1 :(得分:2)

我有相同的场景,一切正常,这是我运行我的Java应用程序的方式:

 java -Xmx120m -agentlib:jdwp=transport=dt_socket,server=y,address=8000 -jar bla.jar

可能最相关的部分是-agentlib。

答案 2 :(得分:0)

如果VM已启动或现有调试会话已关闭且VM再次开始侦听调试连接,则通常会发生Listening for transport dt_socket at address: 8686。也许在服务器上运行tcpdump可以给出一个线索,哪个对等体关闭连接并且在那一侧看起来更深一些。