为什么我的 ubuntu 主机不允许来自 JMeter 的 RMI 调用?

为什么我的 ubuntu 主机不允许来自 JMeter 的 RMI 调用?

我在 ubuntu 机器上运行 jmeter 客户端。我尝试通过 RMI 启动远程测试。启动工作正常,但我没有得到结果。


启动 JMeter 服务器(rhel 6.5):

$HOME/jmeter/bin/jmeter-server -Djava.rmi.server.hostname=10.168.88.2

启动JMeter客户端(ubuntu 14.04):

$HOME/jmeter/bin/jmeter-java.rmi.server.hostname=192.168.88.2'

启动JMeter客户端(Windows 7):

c:\jmeter\bin\jmeter.bat -java.rmi.server.hostname=192.168.113.47'


当我从主机(ubuntu)运行测试并在我的客户虚拟机(windows7)上进行微小更改时,此错误出现在 jmeter-server.log 中

**Ubuntu**
ERROR - jmeter.samplers.RemoteListenerWrapper: testStarted(host) 
java.rmi.ConnectException: Connection refused to host: 127.0.1.1;
**Windows7**
ERROR - jmeter.samplers.RemoteListenerWrapper: testStarted(host) 
java.rmi.ConnectException: Connection refused to host: 192.168.113.47;

事实:我的客户虚拟机(win7)的IP会转移到jmeter服务器,但是我的ubuntu主机还没有达到这一点。

我的 Ubuntu 主机上的 IPTables 如下所示:

$ sudo iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N ufw-after-forward
-N ufw-after-input
-N ufw-after-logging-forward
-N ufw-after-logging-input
-N ufw-after-logging-output
-N ufw-after-output
-N ufw-before-forward
-N ufw-before-input
-N ufw-before-logging-forward
-N ufw-before-logging-input
-N ufw-before-logging-output
-N ufw-before-output
-N ufw-reject-forward
-N ufw-reject-input
-N ufw-reject-output
-N ufw-track-forward
-N ufw-track-input
-N ufw-track-output
-A INPUT -j ufw-before-logging-input
-A INPUT -j ufw-before-input
-A INPUT -j ufw-after-input
-A INPUT -j ufw-after-logging-input
-A INPUT -j ufw-reject-input
-A INPUT -j ufw-track-input
-A FORWARD -j ufw-before-logging-forward
-A FORWARD -j ufw-before-forward
-A FORWARD -j ufw-after-forward
-A FORWARD -j ufw-after-logging-forward
-A FORWARD -j ufw-reject-forward
-A FORWARD -j ufw-track-forward
-A OUTPUT -j ufw-before-logging-output
-A OUTPUT -j ufw-before-output
-A OUTPUT -j ufw-after-output
-A OUTPUT -j ufw-after-logging-output
-A OUTPUT -j ufw-reject-output
-A OUTPUT -j ufw-track-output

我猜测防火墙阻止了所有传入的 RMI 回调和一些(ubuntu 主机)传出信息。

有人能帮我解决这个问题吗?

答案1

我建议阅读这些文章 -https://cloud.google.com/compute/docs/tutorials/how-to-configure-ssh-port-forwarding-set-up-load-testing-on-compute-engine/https://www.smartmeter.io/documentation#toc-controller---generators-communication为了更好地理解分布式模式下节点之间的通信。

您通过以下方式设置的主机名-Djava.rmi.服务器.主机名,它们是实例正在运行的机器的主机名吗?我的意思是 10.168.88.2 是服务器的主机名,而 192.168.88.2 是您的 Ubuntu 机器的主机名?

还要确保你可以从服务器到客户端,因为服务器需要连接到客户端才能发送结果。

如果您无法从服务器直接访问客户端,请使用 SSH 隧道(在第一篇文章中有详细描述)。

希望这可以帮助。

答案2

好的,我能够停用所有防火墙规则。RMI 调用被防火墙阻止了。

现在我将调整防火墙,然后就可以开始测试了:)

相关内容