2016-03-15 42 views
1

我在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() 

我缺少什麼?

+0

您是否可以更新問題以包含您用於連接的代碼? –

+0

更新了問題,代碼來自RabbitMQ的教程頁面 – Greg

回答

2

有問題的代碼不提供用戶名或密碼。你可能需要更新您的連接參數,包括那些


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

此外,檢查,以確保你有一個有效的用戶名和密碼。您的服務器上可能未啓用「訪客」用戶名/密碼

2

默認情況下,RabbitMQ僅接受來自本地主機的guest用戶的連接。這在documentation about access control中有解釋。

爲了能夠從遠程主機的guest用戶連接,您需要更改loopback_users配置參數(通常在/etc/rabbitmq/rabbitmq.config在Unix):

[ 
    {rabbit, [ 
    {loopback_users, []} 
    ]} 
]. 

你可以閱讀更多有關此參數的configuration documentation

也就是說,要小心:此用戶默認情況下創建,具有弱已知密碼,具有管理員權限。所以像這樣改變這個配置參數只能在可信網絡上完成。

相關問題