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

Azure虚拟机部署RabbitMQ后客户端连接失败问题排查

问题描述

通过Azure Marketplace创建部署在Windows Server 2016上的RabbitMQ Server实例(仅修改实例规格为Standard_B2s),已完成以下配置:

  • 在Azure门户为虚拟机配置网络入站规则,开放80、443、15672、3389及5672端口;
  • 通过远程桌面连接虚拟机,验证RabbitMQ服务正常运行,并新增拥有根虚拟主机(/)访问权限的管理员用户;
  • 本地PC可通过浏览器访问{virtual-machine-ip}:15672并登录管理界面。

但使用以下C#代码尝试连接时,抛出异常RabbitMQ.Client.Exceptions.BrokerUnreachableException: „None of the specified endpoints were reachable”,更换端口为5672或15672也无法解决,需找出缺失的配置项。

代码片段:

var factory = new ConnectionFactory()
{
    HostName = "{vm-ip}",
    UserName = "{new-user}",
    Password = "{new-user-pass}",
    VirtualHost = "/",
    Port = 80
};
using var connection = factory.CreateConnection();
using var channel = connection.CreateModel();
缺失配置项及解决方法

1. 检查RabbitMQ监听绑定配置

默认情况下RabbitMQ仅监听localhost(127.0.0.1),外部客户端无法直接连接。需修改配置让其监听虚拟机的公网/内网IP或所有地址:

  • 远程桌面进入虚拟机,定位到RabbitMQ配置目录(通常为C:\Program Files\RabbitMQ Server\rabbitmq_server-{版本号}\etc\rabbitmq)
  • 若不存在rabbitmq.conf文件则新建,添加配置:listeners.tcp.default = 0.0.0.0:5672(让5672端口监听所有网络地址)
  • 重启RabbitMQ服务:打开命令提示符,依次执行rabbitmq-service stop和rabbitmq-service start

2. 配置Windows本地防火墙规则

Azure入站规则开放端口后,虚拟机自身的Windows防火墙可能仍拦截5672端口的外部连接:

  • 在虚拟机的Windows防火墙中,创建新的入站规则,允许TCP协议的5672端口通过,应用于所有网络配置文件(域、专用、公网)

3. 使用正确的协议与端口

  • 15672是RabbitMQ管理界面的HTTP端口,不能用于AMQP客户端连接;5672是AMQP协议的默认端口,客户端需使用该端口
  • 修正后的代码应将Port设置为5672:
var factory = new ConnectionFactory()
{
    HostName = "{vm-ip}",
    UserName = "{new-user}",
    Password = "{new-user-pass}",
    VirtualHost = "/",
    Port = 5672 // AMQP协议默认端口
};
using var connection = factory.CreateConnection();
using var channel = connection.CreateModel();

4. 验证用户权限完整性

尽管已给用户分配根虚拟主机权限,仍需确认权限是否完全生效:

  • 登录{vm-ip}:15672管理界面,进入「Admin」→「Users」,找到新建用户
  • 检查「Permissions」区域,确认该用户对/虚拟主机拥有configure、write、read三项完整权限,若缺失则重新配置

5. 排查网络连通性

在本地PC上测试端口连通性,确认网络层面无拦截:

  • 打开PowerShell,执行Test-NetConnection {vm-ip} -Port 5672
  • 若返回TcpTestSucceeded: False,需检查Azure入站规则的源地址范围(是否限制了特定IP,本地PC需在范围内)、规则优先级(是否被其他拒绝规则覆盖)

内容的提问来源于stack exchange,提问作者Wojciech X

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 00:03:34