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.