为什么我无法在 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 的帮助。
我正在尝试使用 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 的帮助。