我已阅读 Visual VM remotely over ssh但我认为我还没有完全理解,因为它对我不起作用:-(请问有人可以举一些例子吗?
ssh -D 9696 login@ip.of.external.machine
和 visualvm.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;
};
编辑:(评论答案)
ssh -D 9696 me@remote
,并在远程命令行上按上述方式运行 jstatd。如果您希望 jstatd 位于默认 1099 以外的端口,请使用 jstatd 的 -p 参数。在本地计算机上运行
visualvm.exe -J-Dnetbeans.system_socks_proxy=localhost:9696 -J-Djava.net.useSystemProxies=true
在 Visual vm 中:添加新的远程连接,并指定远程作为主机和 jstatd 的端口(默认为 1099,或者在运行 jstatd 时使用 -p 指定)
您现在应该在 VisualVM 中看到远程端的进程
关于ssh - 通过 ssh 的 VisualVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1609961/