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

RabbitMQ跨服务器连接问题:如何连接其他主机上的RabbitMQ服务

解决RabbitMQ内网连接失败的问题

1. 修正客户端连接端口

你代码里用的15672是RabbitMQ的管理控制台端口,C# AMQP客户端的默认连接端口是5672,先修改代码中的Port值:

var factory = new ConnectionFactory
{
    HostName = "192.168.0.115",
    UserName = "guest",         
    Password = "guest",        
    Port = 5672,                     
};

2. 配置RabbitMQ监听内网地址

当前RabbitMQ只监听localhost,导致内网其他机器无法访问,需要修改监听配置:

  • 找到RabbitMQ的配置文件(rabbitmq.conf):
    • Linux系统通常在/etc/rabbitmq/目录下
    • Windows系统在C:\Program Files\RabbitMQ Server\rabbitmq_server-[版本号]\etc\目录下
  • 在配置文件中添加或修改监听规则,让服务监听所有网卡:
    listeners.tcp.default = 0.0.0.0:5672
    
    或者指定内网IP:
    listeners.tcp.default = 192.168.0.115:5672
    
  • 重启RabbitMQ服务:
    • Linux:sudo systemctl restart rabbitmq-server
    • Windows:打开「服务」面板,找到RabbitMQ服务并重启

3. 开放主机防火墙端口

确保192.168.0.115的防火墙允许5672端口的TCP连接:

  • Linux(以ufw为例):
    sudo ufw allow 5672/tcp
    sudo ufw reload
    
    或者用firewalld:
    sudo firewall-cmd --add-port=5672/tcp --permanent
    sudo firewall-cmd --reload
    
  • Windows:
    打开「Windows Defender防火墙」→「高级设置」→「入站规则」→「新建规则」,选择「端口」,指定TCP 5672端口,允许连接。

4. 调整guest用户访问权限

默认情况下,RabbitMQ的guest用户仅允许从localhost登录,需要修改其权限:

  • 方式1:通过管理控制台
    访问http://192.168.0.115:15672(未启用管理插件的话执行rabbitmq-plugins enable rabbitmq_management),用guest/guest登录后,进入「Admin」→「Users」→ 点击guest用户的「Set permission」,给/虚拟主机分配所有权限。
  • 方式2:命令行
    执行以下命令:
    rabbitmqctl set_permissions -p / guest ".*" ".*" ".*"
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 18:43:21