ssh - 通过 ssh 的 VisualVM

标签 ssh visualvm

我已阅读 Visual VM remotely over ssh但我认为我还没有完全理解,因为它对我不起作用:-(请问有人可以举一些例子吗?

ssh -D 9696 login@ip.of.external.machinevisualvm.exe -J-Dnetbeans.system_socks_proxy=localhost:9696 -J-Djava.net.useSystemProxies=true 启动 VisualVM,但没有显示外部机器的进程(仅显示本地进程,如 VisualVM 本身)。此外,有时(但并非总是)我在 ssh 窗口中收到消息“ channel 3:打开失败:连接失败:连接被拒绝”。

有什么帮助吗?

最佳答案

您需要在远程端运行 jstatd,或者使用 host:port 指定 JMX 连接。

Jstatd:

jstatd -J-Djava.security.policy=permissions.txt [-p 端口]

之后:添加到目标计算机的远程连接,并在该远程连接的属性上配置 jstatd 连接。

(permissions.txt 包含以下内容:

grant {
  permission java.security.AllPermission;
};

编辑:(评论答案)

  1. ssh -D 9696 me@remote,并在远程命令行上按上述方式运行 jstatd。如果您希望 jstatd 位于默认 1099 以外的端口,请使用 jstatd 的 -p 参数。

  2. 在本地计算机上运行 visualvm.exe -J-Dnetbeans.system_socks_proxy=localhost:9696 -J-Djava.net.useSystemProxies=true

  3. 在 Visual vm 中:添加新的远程连接,并指定远程作为主机和 jstatd 的端口(默认为 1099,或者在运行 jstatd 时使用 -p 指定)

    您现在应该在 VisualVM 中看到远程端的进程

关于ssh - 通过 ssh 的 VisualVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1609961/

相关文章:

ssh - 通过 ssh 使用 gdbserver 进行远程调试

bash - rsync 与 ssh 不使用存储在 ~/.ssh/config 中的凭据

java - 需要在 VMWare 下在 Windows 上运行 VisualVM 的帮助

java - 分析本地进程时 jvisualvm 挂起

java - 视觉虚拟机/j视觉虚拟机 : not supported for this JVM

php - PHP 中的 SFTP 连接(不是通过 ssh)

ssh - ssh ProxyCommand失败: “forbidden char/command over SSH”

c# - SSH.NET 上传整个文件夹

java - Java转储中retained size=0是什么意思?

java - 比较 VisualVM 和 Eclipse TPTP