首页 文章

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

提问于
浏览
5

我需要通过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 回答

  • 2

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

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

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

  • 2

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

  • 0

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

相关问题