由于身份验证错误,无法从网络上的其他客户端访问RabbitMQ服务器
我在Ubuntu 14.04上安装了RabbitMQ,并且无法从网络上的其他计算机连接到RabbitMQ服务器。由于身份验证错误,无法从网络上的其他客户端访问RabbitMQ服务器
从安装了RabbitMQ的机器连接到服务器时,没有任何问题,只能从网络上的其他计算机连接到服务器。
This page指出“默认情况下,RabbitMQ将在所有可用接口上监听端口5672”。
当试图从另一个serverusing鼠兔在python连接,我收到以下错误:
ERROR:pika.adapters.base_connection:Socket Error: 104
ERROR:pika.adapters.base_connection:Socket closed while authenticating indicating a probable authentication error
我添加了一个新用户的权限set_permissions newuser ".*" ".*" ".*"
并已试过在URI的身份验证方法,但是我仍然收到同样的错误。
我也无法从网络上的其他计算机连接到RabbitMQ管理,但可以在本地PC上访问它。
此外,通过检查开放的端口,我可以看到以下内容:
tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN 1122/beam.smp
tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN 1122/beam.smp
tcp6 0 0 :::5672 :::* LISTEN 1122/beam.smp
我使用从RabbitMQ的的教程Python代码:
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters(host='AAA.AAA.AAA.AAA'))
channel = connection.channel()
channel.queue_declare(queue='hello')
channel.basic_publish(exchange='',routing_key='hello',body='Hello World!')
print(" [x] Sent 'Hello World!'")
connection.close()
我缺少什么?
有问题的代码不提供用户名或密码。你可能需要更新您的连接参数,包括那些
credentials = pika.PlainCredentials('guest', 'guest')
parameters = pika.ConnectionParameters('rabbit-server1', 5672, '/', credentials)
connection = pika.BlockingConnection(params)
检查鼠的文档,以获得更多信息:http://pika.readthedocs.org/en/0.10.0/modules/parameters.html?highlight=connectionParameters
此外,检查,以确保你有一个有效的用户名和密码。您的服务器上可能未启用“访客”用户名/密码
默认情况下,RabbitMQ仅接受来自本地主机的guest
用户的连接。这在documentation about access control中有解释。
为了能够从远程主机的guest
用户连接,您需要更改loopback_users
配置参数(通常在/etc/rabbitmq/rabbitmq.config
在Unix):
[
{rabbit, [
{loopback_users, []}
]}
].
你可以阅读更多有关此参数的configuration documentation。
也就是说,要小心:此用户默认情况下创建,具有弱已知密码,具有管理员权限。所以像这样改变这个配置参数只能在可信网络上完成。
您是否可以更新问题以包含您用于连接的代码? –
更新了问题,代码来自RabbitMQ的教程页面 – Greg