Azure Windows虚拟机JProfiler远程性能分析连接问题及解决步骤
JProfiler远程连接Azure Windows虚拟机Java应用分步流程及问题解决
目标虚拟机(xxx.xx.xx.254)前置配置
- 给Java应用添加JProfiler代理参数
找到Java应用的启动脚本或命令,加入对应JProfiler版本的JVM代理参数。如果目标机已安装JProfiler,参数示例:-agentpath:"C:\Program Files\jprofiler14\bin\windows-x64\jprofilerti.dll"=port=9010,nowait
注意替换实际安装路径;如果目标机未装JProfiler,需将对应平台的代理文件(如windows-x64下的jprofilerti.dll)上传至目标机,参数中指定该文件的绝对路径。 - 重启Java应用,确保代理参数生效,此时应用会监听9010端口。
Azure网络与本地防火墙配置
- Azure网络安全组(NSG)规则
在目标虚拟机的NSG中添加入站规则:允许来源IP为xxx.xx.xx.159的TCP流量访问9010端口;同时确认出站规则允许目标机与xxx.xx.xx.159的TCP通信(默认规则通常允许,若未生效需手动配置)。 - Windows防火墙配置
在目标机打开Windows Defender防火墙,添加入站规则:允许9010端口的TCP连接,或直接放行Java应用进程的网络通信。
本地虚拟机(xxx.xx.xx.159)JProfiler连接步骤
- 打开JProfiler,选择New Session -> Attach to remote JVM
- 连接类型选择Direct Socket Connection
- 填写目标机IP:
xxx.xx.xx.254,端口:9010 - 点击OK,等待连接建立,成功后即可查看目标应用的JVM性能数据。
常见问题排查
直接连接失败
- 端口连通性测试:在xxx.xx.xx.159机器上执行
Test-NetConnection xxx.xx.xx.254 -Port 9010(PowerShell)或telnet xxx.xx.xx.254 9010,若不通,优先检查Azure NSG和Windows防火墙规则是否正确配置。 - 代理参数验证:查看目标应用的启动日志,确认是否存在
JProfiler agent initialized类的日志,若没有,说明代理参数未生效,检查路径是否正确、JProfiler位数(32/64位)是否与Java应用匹配。 - 端口占用检查:在目标机执行
netstat -ano | findstr :9010,确认9010端口是否由目标Java应用进程监听。
SSH方式连接超时
- 启用SSH服务:目标Windows虚拟机默认未开启SSH,需在设置中启用OpenSSH服务器,或安装第三方SSH服务。
- SSH端口放行:在Azure NSG中添加入站规则,允许来源IP为xxx.xx.xx.159的TCP流量访问22端口(默认SSH端口),同时在目标机Windows防火墙中放行SSH服务的通信。
- SSH连通性测试:在xxx.xx.xx.159机器上执行
ssh administrator@xxx.xx.xx.254,确认能否正常登录;若登录成功但JProfiler连接失败,检查JProfiler的SSH配置项(用户名、密码/密钥、目标机JProfiler路径)是否正确。
内容的提问来源于stack exchange,提问作者Jeby
相关产品推荐
相关产品推荐

