如何在两跳 SSH 隧道上使用 JProfiler
Posted
技术标签:
【中文标题】如何在两跳 SSH 隧道上使用 JProfiler【英文标题】:How to use JProfiler over two-hop SSH tunnel 【发布时间】:2015-01-24 02:57:44 【问题描述】:我正在尝试将 JProfiler 连接到在我将调用 remote 的服务器上运行的 JVM。这个服务器只能从我的工作站(本地)通过另一个我称为middle的服务器访问。我将 JProfiler 连接到 remote 的计划是这样的:
在远程
上安装 JProfiler 工具建立从本地到中间到远程的SSH隧道:
ssh -v -N -L 8849:[remote's private address (192.168... etc)]:8849 [middle]
在localhost:8849
上建立一个新的 JProfiler 会话,选择“立即启动,稍后使用 JProfiler GUI 连接”
但是,我最终得到一个错误:
连接错误
要么使用旧版本的原生库,要么使用另一个 应用程序正在侦听端口 8849。请检查您的 DYLD_LIBRARY_PATH 环境变量和你的端口配置
除了我的 SSH 隧道外,我没有任何其他程序绑定到本地端口 8849,并且我已确认 SSH 隧道本身应该可以正常工作 - 我能够转发测试 HTTP 服务器的连接通过类似配置的隧道远程到本地。
我找到了this 类似的问题,但没有提供解决方案。
我的配置中缺少什么?
【问题讨论】:
【参考方案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 隧道的情况下连接失败。
【讨论】:
以上是关于如何在两跳 SSH 隧道上使用 JProfiler的主要内容,如果未能解决你的问题,请参考以下文章