如何在两跳SSH隧道上使用JProfiler

时间:2014-11-25 22:31:05

标签: java remote-server tunnel jprofiler ssh-tunnel

我正在尝试将JProfiler连接到运行在我称之为远程的服务器上的JVM。此服务器只能通过我的工作站(本地)通过另一台我称之为中间的服务器访问。我将JProfiler连接到远程的计划如下:

  1. 远程

  2. 上安装JProfiler工具
  3. 建立从本地中间远程的SSH隧道:

    ssh -v -N -L 8849:[remote's private address (192.168... etc)]:8849 [middle]

  4. localhost:8849上建立新的JProfiler会话,选择“立即启动,稍后使用JProfiler GUI连接”
  5. 然而,我最终收到错误:

      

    连接错误

         

    使用旧版本的本机库或其他版本   应用程序正在侦听端口8849.请检查您的   DYLD_LIBRARY_PATH环境变量和您的端口配置

    我没有绑定到本地端口8849的任何其他程序,除了我的SSH隧道,我已经确认SSH隧道本身应该正常工作 - 我能够转发测试HTTP服务器的连接通过类似配置的隧道远程本地

    我发现了this类似的问题,但未提供任何解决方案。

    我的配置中缺少什么?

1 个答案:

答案 0 :(得分:1)

使用

建立直接隧道
ssh -t user@remote -L [localPort]:localhost:[remotePort] -N

2跳隧道是使用链式ssh命令构建的:

ssh -t user@middle -L [localPort]:localhost:[remotePort] \
ssh -t user@remote -L [remotePort]:localhost:[remotePort] -N

其中localPort是您要在本地使用的端口,remotePort是配置文件代理正在侦听的端口。所有这些都在本地计算机上的单个命令中执行。可以使用第一行中的其他ssh调用添加更多跃点。对于整个命令,必须只有一个尾随-N

这种方法适用于JProfiler。

如果隧道出现故障或者分析代理没有侦听,您将收到您提到的消息,因为在SSH隧道的情况下连接失败的方式。