Ubuntu 上排查与修复 RabbitMQ 网络问题的实用步骤
一 快速定位清单
- 确认服务与端口:执行 sudo systemctl status rabbitmq-server 查看状态;默认 AMQP 端口为 5672,管理界面端口为 15672。若端口被修改,客户端与配置需保持一致。
- 本机连通性:在客户端机器执行 ping <Ubuntu_IP>;如不通,优先排查网络与防火墙。
- 防火墙放行:Ubuntu 常用 ufw,执行 sudo ufw allow 5672;管理界面需放行 15672。云服务器还需在控制台安全组放行对应端口。
- 管理界面可达性:浏览器访问 http://<Ubuntu_IP>:15672;若本机能访问而外部不能,多为防火墙/安全组/端口映射问题。
- 客户端配置核对:确认 host、port、username、password、virtual-host 与服务器一致。
- 用户权限:确保所用用户对目标 vhost 具备 configure/write/read 权限(管理界面 Admin → 用户 → 权限)。
二 常见症状与对应修复
三 防火墙与安全组配置要点
- Ubuntu ufw:sudo ufw allow 5672/tcp;如需管理界面 sudo ufw allow 15672/tcp;必要时 sudo ufw reload。
- firewalld(如启用):sudo firewall-cmd --list-ports 查看;放行示例 sudo firewall-cmd --permanent --add-port=5672/tcp 与 15672/tcp,随后 sudo firewall-cmd --reload。
- 云服务器:在控制台安全组入方向放行 5672 与 15672(协议 TCP,源地址按需设置)。
四 客户端与权限配置检查
- 客户端必填项:host(服务器 IP 或可解析主机名)、port(默认 5672)、username、password、virtual-host;与服务器实际配置保持一致。
- 用户与 vhost:在管理界面为用户授予目标 vhost 的 configure/write/read 权限,避免使用受限账户进行生产/消费。
- 常见误区:仅放行管理端口 15672 无法让 AMQP 客户端连接,务必同时放行 5672。
五 网络连通性测试命令清单
- 服务状态:systemctl status rabbitmq-server
- 端口监听:ss -lntp | egrep ‘:(5672|15672|4369|25672)’
- 本机访问管理界面:curl -I http://localhost:15672
- 外部连通性:nc -vz <Ubuntu_IP> 5672 与 15672;或在本机执行 telnet <Ubuntu_IP> 5672
- 主机名解析:getent hosts <你的主机名>;若异常,按上文修复 /etc/hosts
- 云环境:核对安全组入方向规则已放行 5672/15672