2013-08-19 14 views
2

我成功设法安装了JProfiler远程探测器,并且看到它在'catalina.out'(Tomcat)中运行。唯一的问题是远程机器上的所有端口都被防火墙(80和8080除外),无论我选择哪个端口,JProfiler GUI都无法连接到远程探测器。JProfiler - 如何在存在防火墙的情况下配置远程应用程序?

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

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

回答

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

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

0

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

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

因为它不是一个特权端口,您可以登录为标准用户。

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

顺便说一句,我也用jpenable目标揭露剖析代理无需修改应用程序服务器启动/配置文件:

jpenable --pid=<app-server-pid> --noinput --gui --port=8849 
相关问题