530 communication auth_error ai_generated true

AMQP 连接错误:服务器关闭连接 (530) 不允许

AMQPConnectionError: connection closed by server (530) NOT_ALLOWED

ID: communication/amqp-connection-530-not-allowed

其他格式: JSON · Markdown 中文 · English
85%修复率
90%置信度
1证据数
2024-01-10首次发现

版本兼容性

版本状态引入弃用备注
RabbitMQ 3.12.0 active — — —
pika 1.3.2 active — — —
amqplib 0.10.3 active — — —

根因分析

AMQP 客户端尝试连接时权限不足或虚拟主机(vhost)无效,导致 RabbitMQ 代理拒绝。

English

The AMQP client attempted to connect with insufficient permissions or an invalid virtual host (vhost) on the RabbitMQ broker.

generic

官方文档

https://www.rabbitmq.com/amqp-0-9-1-reference.html#connection.close

解决方案

  1. Verify and grant correct permissions for the user on the target vhost using RabbitMQ CLI: `rabbitmqctl set_permissions -p my_vhost my_user "^.*" "^.*" "^.*"` and ensure the vhost exists with `rabbitmqctl add_vhost my_vhost`.
  2. Configure the client connection string to explicitly specify the vhost: In Python with pika, use `pika.URLParameters('amqp://user:pass@host:5672/my_vhost')`.
  3. Check RabbitMQ logs for detailed rejection reason: `tail -f /var/log/rabbitmq/[email protected]` to see if the error is due to vhost mismatch or user permissions.

无效尝试

常见但无效的做法:

  1. Reinstall RabbitMQ server to reset permissions 90% 失败

    Reinstalling is overkill; the issue is typically a misconfigured vhost or user permissions, not a corrupt installation.

  2. Use the default guest/guest credentials with default vhost '/' 80% 失败

    RabbitMQ disables guest user access from non-localhost by default; this fails for remote clients.

  3. Increase the connection timeout in the client 95% 失败

    The error is a rejection, not a timeout; increasing timeout doesn't change permission checks.