AMQPConnectionError: connection refused (111) to rabbitmq-host:5672
ID: communication/rabbitmq-connection-refused-ec2
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| RabbitMQ 3.12 | active | — | — | — |
| Erlang 26 | active | — | — | — |
| Pika 1.3 | active | — | — | — |
| amqp-node 0.10 | active | — | — | — |
Root Cause
The AMQP client cannot establish a TCP connection to the RabbitMQ server because the server is not listening on the specified port, the service is down, or a firewall/security group is blocking inbound traffic.
generic中文
AMQP 客户端无法与 RabbitMQ 服务器建立 TCP 连接,因为服务器未在指定端口上监听、服务已关闭,或防火墙/安全组阻止了入站流量。
Official Documentation
https://www.rabbitmq.com/docs/connection#connection-refusedWorkarounds
-
80% success Check if RabbitMQ is running: `systemctl status rabbitmq-server` or `rabbitmqctl status`. If not running, start it: `systemctl start rabbitmq-server`.
Check if RabbitMQ is running: `systemctl status rabbitmq-server` or `rabbitmqctl status`. If not running, start it: `systemctl start rabbitmq-server`.
-
75% success Verify firewall rules: on Linux, run `sudo ufw status` or `iptables -L -n | grep 5672`. Ensure inbound TCP on port 5672 is allowed. For cloud providers, check security group inbound rules for the instance.
Verify firewall rules: on Linux, run `sudo ufw status` or `iptables -L -n | grep 5672`. Ensure inbound TCP on port 5672 is allowed. For cloud providers, check security group inbound rules for the instance.
-
70% success If RabbitMQ is listening on a different interface (e.g., localhost only), update the config file `/etc/rabbitmq/rabbitmq.conf` to bind to `0.0.0.0` or the correct IP: `listeners.tcp.default = 0.0.0.0:5672`. Restart RabbitMQ after changes.
If RabbitMQ is listening on a different interface (e.g., localhost only), update the config file `/etc/rabbitmq/rabbitmq.conf` to bind to `0.0.0.0` or the correct IP: `listeners.tcp.default = 0.0.0.0:5672`. Restart RabbitMQ after changes.
中文步骤
Check if RabbitMQ is running: `systemctl status rabbitmq-server` or `rabbitmqctl status`. If not running, start it: `systemctl start rabbitmq-server`.
Verify firewall rules: on Linux, run `sudo ufw status` or `iptables -L -n | grep 5672`. Ensure inbound TCP on port 5672 is allowed. For cloud providers, check security group inbound rules for the instance.
If RabbitMQ is listening on a different interface (e.g., localhost only), update the config file `/etc/rabbitmq/rabbitmq.conf` to bind to `0.0.0.0` or the correct IP: `listeners.tcp.default = 0.0.0.0:5672`. Restart RabbitMQ after changes.
Dead Ends
Common approaches that don't work:
-
Change the RabbitMQ username and password in the client
90% fail
Changing the RabbitMQ user credentials does not fix the connection refusal because the TCP handshake fails before any authentication occurs.
-
Increase the AMQP connection timeout to 60 seconds
95% fail
Increasing the connection timeout does not help because the error is immediate (connection refused), not a timeout.
-
Enable TLS/SSL on the AMQP client connection
85% fail
Enabling TLS on the client without configuring the server to accept TLS on the same port will still result in connection refusal or a different error.