RabbitMQ连接报错ECONNREFUSED:无法连接5672端口的求助
RabbitMQ连接拒绝(ECONNREFUSED ::1:5672)问题修复
这个错误不是防火墙问题(除非你手动限制了5672端口),核心原因是:RabbitMQ服务未运行,或者服务仅监听IPv4地址,但你的代码通过IPv6的::1尝试连接。
修复步骤:
1. 确认RabbitMQ服务正在运行
根据你的操作系统执行对应命令启动服务:
- Windows:打开服务管理器找到RabbitMQ服务,设置为“正在运行”;或在命令行执行
net start RabbitMQ - macOS(brew安装):
brew services start rabbitmq - Linux:
systemctl start rabbitmq-server或service rabbitmq-server start
2. 强制使用IPv4连接(最快速的修复)
修改代码中的连接地址,将amqp://localhost替换为amqp://127.0.0.1——因为localhost可能被解析为IPv6的::1,但RabbitMQ默认通常只监听IPv4的127.0.0.1。修改后的完整代码:
const amqp = require("amqplib/callback_api"); amqp.connect(`amqp://127.0.0.1`, (err, connection) => { if (err) throw err; connection.createChannel((err, channel) => { const queueName = 'queue'; const message = 'This is the message to send' channel.assertQueue(queueName, { durable:false, }); channel.sendToQueue(queueName, Buffer.from(message)); console.log('Message: ' + message); setTimeout(()=>{ connection.close(); }, 1000); }); });
3. 检查RabbitMQ端口监听状态
执行对应命令查看5672端口的监听情况:
- Linux/macOS:
netstat -an | grep 5672 - Windows:
netstat -ano | findstr 5672
如果输出只有0.0.0.0:5672(IPv4监听),没有[::]:5672(IPv6监听),说明服务不支持IPv6连接,保持使用127.0.0.1即可。
4. 验证RabbitMQ服务可用性
访问RabbitMQ管理界面(默认端口15672),能正常打开则说明服务运行正常。如果未开启管理插件,执行:
rabbitmq-plugins enable rabbitmq_management
内容的提问来源于stack exchange,提问作者marcox
相关产品推荐
相关产品推荐

