JProfiler - 当有防火墙时如何配置远程应用程序?

时间:2013-08-19 13:14:38

标签: proxy firewall putty jprofiler tunneling

我成功设法安装了JProfiler远程探测器,我看到它在'catalina.out'(Tomcat)中运行。唯一的问题是远程计算机上的所有端口都是防火墙(80和8080除外),无论我选择哪个端口,JProfiler GUI都无法连接到远程探测器。

我尝试使用PuTTY隧道,但我不确定如何设置隧道规则。此外,似乎JProfiler中没有“网络首选项”,我可以在其中指定SOCKS代理。

如何在不打扰防火墙规则的情况下解决此问题?远程机器不在我的直接控制之下,打开其他端口需要花费大量时间和文书工作。

2 个答案:

答案 0 :(得分:4)

我找到了一个涉及几个步骤的解决方案。

第1步:创建正确的SOCKS隧道:

PuTTY proxy settings for JProfiler when profiling remote application with firewall.

不要忘记最后点击“添加”按钮。

第2步:修改JProfiler的启动脚本并添加SOCKS代理设置:

java -Xmx512m -classpath "%LOCALCLASSPATH%" -DsocksProxyHost=localhost -DsocksProxyPort=8849 com.jprofiler.frontend.FrontendApplication

以上代码段应放在位于此处的 jprofiler.bat 中:

\ Program Files \ jprofiler8 \ bin \ windows

第3步:打开远程JProfiler会话并使用原始远程主机和原始远程端口。换句话说,启动正常的远程分析会话,不会偏离原始进程。 PuTTY隧道将自动处理防火墙问题。

答案 1 :(得分:0)

我用SSH做同样的事情(在Windows上使用Cygwin):

ssh -L 8849:localhost:8849 <username>@<target-hostname>

由于它不是特权端口,您可以以标准用户身份登录。

然后我可以将JProfiler GUI连接到本地Windows机器上的端口8849。

BTW,我还在目标上使用jpenable来公开分析代理而不修改应用程序服务器的启动/配置文件:

jpenable --pid=<app-server-pid> --noinput --gui --port=8849