rabbitMQ 连接超时

rabbitMQ Connection timed out

我在 vm 上有 rabbitMQ 服务器 运行。 我正在关注 rabbitMQ java 教程。 它在 vm 上本地工作正常,但是当尝试从主机发送时我得到一个异常

Exception in thread "main" java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at com.rabbitmq.client.impl.FrameHandlerFactory.create(FrameHandlerFactory.java:32)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:714)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:760)
at Send.main(Send.java:16)

这是我使用的发送代码:

import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Connection;
import java.util.concurrent.TimeoutException;
import com.rabbitmq.client.Channel;

public class Send {
    private final static String QUEUE_NAME = "hello";

    public static void main(String[] args) throws java.io.IOException, TimeoutException {

            ConnectionFactory factory = new ConnectionFactory();
            factory.setHost("192.168.198.100");
            factory.setPort(5672);
            Connection connection = factory.newConnection();
            Channel channel = connection.createChannel();

            channel.queueDeclare(QUEUE_NAME, false, false, false, null);
            String message = "Hello World from Windows!";
            channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
            System.out.println(" [x] Sent '" + message + "'");

            channel.close();
            connection.close();

        }
    }

我可以 ping 服务器 192.168.198.100 但我无法访问管理 UI 192.168.198.100:15672/

所以谁能帮我弄清楚这个问题出了什么问题? 提前致谢。

1.

您正在使用 guest guest 作为凭据,不允许用于远程 IP。

请阅读:Can't access RabbitMQ web management interface after fresh install 那么你必须添加这个:

factory.setPassword("test");
factory.setUsername("test");

2.

您是否启用了管理功能UI?如果不使用:

rabbitmq-plugins enable rabbitmq_management

3.

检查您的防火墙配置,可能端口 5672 和 15672 已关闭。 您可以使用 telnet 来测试端口:

telnet 192.168.198.100 5672
Trying 192.168.198.100...
Connected to 192.168.198.100.
Escape character is '^]'.

和:

telnet 192.168.198.100 15672
Trying 192.168.198.100...
Connected to 192.168.198.100.
Escape character is '^]'.