3

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

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

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

4

2 回答 2

4

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

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

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

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

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

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

上面的代码片段应该放在jprofiler.bat中,该文件位于此处:

\Program Files\jprofiler8\bin\windows

Step 3: Open remote JProfiler session and use the original remote host and the original remote port. In other words, start normal remote profiling session with no deviations from the original process. The PuTTY tunneling will take care of the firewall problem for you automatically.

于 2013-08-19T13:51:22.790 回答
1

我对 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
于 2015-09-29T20:00:01.163 回答