You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

连接JMeter Slave Docker容器时出现Connection refused错误如何解决

根因定位

报错中Slave尝试连接的172.17.0.2是Docker容器默认桥接网络的内部IP,跨主机场景下,Master节点未配置自身可被外部访问的RMI地址,返回给Slave的回调地址为自身容器内部IP,Slave跨主机无法访问该地址,而同主机场景下容器内部IP互通所以运行正常。

排查&解决步骤
  • 补充Master节点RMI主机名配置
    你当前的Master启动命令中缺少java.rmi.server.hostname参数,这是问题核心。需在Master启动命令中添加该参数,值为Master所在EC2的可被Slave访问的公网IP/同VPC私网IP,修正后的启动命令示例如下:
    docker run \
      -v "${volume_path}":${jmeter_path} \
      -p 3000:3000 \
      --rm \
      jmeternew \
      -n -X \
      -t ${jmeter_path}/$1 \
      -Dserver.rmi.ssl.disable=true \
      -Dclient.rmi.localport=3000 \
      -Djava.rmi.server.hostname=<Master所在EC2的可访问IP> \
      -R slaveIP:1099 \
      -l ${jmeter_path}/client/result_${timestamp}.jtl \
      -j ${jmeter_path}/client/jmeter_${timestamp}.log
    
  • 验证端口连通性
    确认EC2安全组、宿主机防火墙已双向放行以下端口:
    • Master侧3000端口:允许Slave节点IP访问
    • Slave侧1099、6000端口:允许Master节点IP访问
      可通过nc命令验证连通性:
      nc -zv <对端IP> <端口号>
  • 修正Slave节点RMI配置
    Slave节点的-Djava.rmi.server.hostname参数需填写Slave所在EC2的可被Master访问的公网/私网IP,不可设置为0.0.0.0,该配置无法对外暴露正确的可访问地址。
  • 可选:使用host网络模式
    如果仍存在网络连通问题,可在Docker启动命令中添加--net=host参数,容器直接复用宿主机网络,规避Docker NAT转换导致的IP识别问题,使用该模式时可删除原有端口映射配置。

内容的提问来源于stack exchange,提问作者Svp57

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 22:27:07