RabbitMQ连接127.0.0.1:5672失败求助:运行send/receive.py遇连接拒绝
看起来你遇到了RabbitMQ最常见的连接问题之一——端口5672连接被拒绝。我帮你梳理几个关键排查步骤,按顺序来应该能解决问题:
首先确认RabbitMQ服务是否正在运行
这是最常见的原因!如果服务没启动,本地肯定连不上。- Linux系统:执行
sudo systemctl start rabbitmq-server启动服务,再用sudo systemctl status rabbitmq-server检查状态,确保显示active (running)。 - macOS(用Homebrew安装):执行
brew services start rabbitmq启动,brew services list查看状态。 - Windows系统:可以在「服务」列表里找到RabbitMQ服务手动启动,或者打开命令提示符执行
rabbitmq-server start。
- Linux系统:执行
检查5672端口是否被其他进程占用
有时候其他程序会占用RabbitMQ默认的5672端口,导致服务无法监听。- Linux/macOS:执行
lsof -i :5672,如果返回结果里不是RabbitMQ的进程,就杀掉那个进程(比如kill -9 <进程ID>)。 - Windows:执行
netstat -ano | findstr :5672,找到占用端口的PID,然后在任务管理器里结束对应的进程。
- Linux/macOS:执行
验证RabbitMQ的监听配置
确保RabbitMQ确实在监听localhost的5672端口:
查看RabbitMQ的配置文件(比如Linux的/etc/rabbitmq/rabbitmq.conf,macOS的/usr/local/etc/rabbitmq/rabbitmq.conf),确认有类似listeners.tcp.default = 5672的配置,且监听地址是localhost或0.0.0.0(允许本地连接)。如果配置被修改过,改回默认后重启服务。检查用户权限(尤其是guest用户)
默认的guest用户只能从localhost访问,但如果权限配置有问题也会导致连接失败:
执行rabbitmqctl list_user_permissions guest,确保输出里包含/(虚拟主机)、.*(配置权限)、.*(写权限)、.*(读权限)。如果权限不对,可以用rabbitmqctl set_permissions guest ".*" ".*" ".*"重新设置,然后重启服务。排查本地防火墙设置
本地防火墙可能阻止了5672端口的连接:- Linux:执行
sudo ufw allow 5672开放端口,然后重启防火墙。 - Windows:打开「Windows Defender防火墙」→「高级设置」,添加一条入站规则,允许5672端口的TCP连接。
- Linux:执行
另外看你的send.py代码片段,逻辑是没问题的——默认连接localhost、声明队列,所以问题大概率出在RabbitMQ的服务状态或环境配置上,按上面的步骤逐一排查应该能解决。
内容的提问来源于stack exchange,提问作者Edsel Norwood

