为什么我无法在 AWS 上访问我的 RabbitMQ 代理?

Why can't I access my RabbitMQ broker on AWS?

我正在尝试使用 C# .NET Core 3.1 客户端与我的 RabbitMQ 服务器通信。如果我 运行 在本地机器上安装 RabbitMQ 服务器,它工作正常。如果我尝试在我在 AWS 上启动的 RabbitMQ 服务器上执行相同的操作,我将无法访问它。

C# 客户端:

        var factory = new ConnectionFactory
        {
            HostName = amqp.Server,
            UserName = amqp.Username,
            Password = amqp.Password,
            Port = amqp.Port
        };

        _connection = factory.CreateConnection();

我检查了amqp.Server、用户名、密码和端口的值,它们都是正确的。无论如何,它 returns 以下异常:

RabbitMQ.Client.Exceptions.BrokerUnreachableException: None of the specified endpoints were reachable ---> System.AggregateException: One or more errors occurred. (Connection failed) ---> RabbitMQ.Client.Exceptions.ConnectFailureException: Connection failed ---> System.Net.Internals.SocketExceptionFactory+ExtendedSocketException (10060): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

首先我认为,AWS 防火墙可能会阻止来自已用端口(5671、AMQP)的请求,但尝试使用 Telnet 连接成功。

当前ACL设置截图:

相同的设置也用于出站规则。但老实说,我不确定我是否必须使用 TCP 或其他流量类型。

编辑:访问类型设置为“Public 访问”。我忘了说了。抱歉。

有人知道要尝试什么吗?

EDIT2:这是 CLI 命令的输出 list-brokers:

我发现了问题。我们公司的防火墙屏蔽了5671端口,现在可以用了。 感谢@samtoddler 和@amitd 的帮助。