【问题标题】:JProfiler - how to profile remote application when there is firewall?JProfiler - 有防火墙时如何分析远程应用程序?
【发布时间】:2013-08-19 13:14:37
【问题描述】:

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

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

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

【问题讨论】:

    标签: proxy firewall putty jprofiler tunneling


    【解决方案1】:

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

    第 1 步:创建适当的 SOCKS 隧道:

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

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

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

    上面的代码 sn-p 应该放在 jprofiler.bat 里面:

    \Program Files\jprofiler8\bin\windows

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

    【讨论】:

      【解决方案2】:

      我用 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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-15
        • 2023-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-18
        • 2022-07-06
        • 2017-08-08
        相关资源
        最近更新 更多