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

C#连接AWS RabbitMQ提示none of the endpoints were reachable问题咨询

AWS RabbitMQ连接报错none of the endpoints were reachable 排查解决方法

核心报错原因

  • 代码未启用TLS配置:你使用的5671端口是AMQP over TLS的专用端口,要求连接必须开启TLS加密,现有代码缺少该配置
  • 实例端点填写错误:你填写的mq.ap-southeast-1.amazonaws.com不是实例的唯一专属端点,每个Amazon MQ RabbitMQ实例都有独立的完整端点地址
  • 安全组未放行端口:实例关联的AWS安全组没有放开你本地公网IP的5671端口入站权限
  • 实例访问模式限制:如果实例部署在私有子网且未开启公网访问,本地公网环境无法直接连接
  • 认证信息错误:填写的用户名密码是AWS控制台账号密码,而非创建RabbitMQ实例时单独设置的专属账号密码

分步排查解决

  1. 先修正代码配置
    补充TLS相关配置,替换为你自己的实例信息,参考配置如下:
using System;
using System.Text;
using RabbitMQ.Client;

namespace Producer
{
    class Sender
    {
        public static void Main(string[] args)
        {
            var factory = new ConnectionFactory()
            {
                // 替换为AWS控制台RabbitMQ实例详情页的完整AMQP端点,去掉前缀amqps://
                HostName = "xxx.mq.ap-southeast-1.amazonaws.com",
                Port = 5671,
                // 替换为创建实例时设置的RabbitMQ专属用户名密码,不是AWS账号密码
                UserName = "你的RabbitMQ用户名",
                Password = "你的RabbitMQ密码",
                // 新增TLS配置
                Ssl = new SslOption
                {
                    Enabled = true,
                    ServerName = "和上面HostName填一样的内容",
                    Version = System.Security.Authentication.SslProtocols.Tls12
                },
                // 可选配置,避免超时断开
                RequestedHeartbeat = TimeSpan.FromSeconds(60)
            };

            using(var connection = factory.CreateConnection())
            using (var channel = connection.CreateModel())
            {
                channel.QueueDeclare("BasicTest", false, false, false, null);
                string message = "Getting Started with .net Core RabbitMQ";
                var body = Encoding.UTF8.GetBytes(message);
                channel.BasicPublish("", "BasicTest", null, body);
                Console.WriteLine("Message Sent: {0}", message);
            }

            Console.WriteLine("Press Enter to Exit");
            Console.ReadLine();
        }
    }
}
  1. 检查安全组规则
    进入AWS控制台该RabbitMQ实例的详情页,找到关联的安全组,添加入站规则:
  • 类型:AMQP over TLS
  • 端口范围:5671
  • 源:你本地的公网IP(可通过搜索引擎搜索「我的IP」获取)
  1. 验证网络连通性
    打开Mac终端执行命令telnet 你的RabbitMQ实例完整端点 5671,如果能连通说明网络配置正常,无法连通则需要检查实例是否开启了公网访问权限,是否部署在私有子网。
  2. 核对实例访问配置
    如果实例是私有部署未开公网访问,要么在实例配置中开启公网可访问选项(仅测试环境使用,生产环境不建议),要么通过AWS VPN、跳板机接入实例所在的VPC后再连接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 09:39:03