Mac で RabbitMQ にアクセスするためにポート 5672/tcp を開きます

Mac で RabbitMQ にアクセスするためにポート 5672/tcp を開きます

最新バージョンの RabbitMQ を Mac にデフォルト設定でインストールしており、localhost からアクセスしているときは何の問題もありません。しかし、今日、ローカル ネットワーク上に Linux マシンを構築したところ、そのマシンからリモートで RabbitMQ サーバーに接続する方法が見つかりません。Mac 上のファイアウォールや、接続をブロックする可能性のあるものをすべてシャットダウンしました。別のポートで実行されている MongoDB や他のアプリケーション、MacBook への SSH などには問題なく接続できますが、RabbitMQ には接続できません (実行ポートを変更しても)。Linuxnmapを実行して、Mac で適切なポートが開いているかどうかを確認すると、次のメッセージが表示されます。

>> nmap -p 5672 192.168.1.101 
Nmap scan report for 192.168.1.101
Host is up (0.00019s latency).
PORT     STATE  SERVICE
5672/tcp closed amqp

しかし、同じことを Mac で実行すると次のようになります。

>> nmap -p 5672 localhost
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00049s latency).
PORT     STATE SERVICE
5672/tcp open  amqp

念のため、手動でルールを追加しipfw、アプリケーション リストrabbitmq-serverに追加してsystem preferences -> security -> firewall -> advancedすべての着信接続を許可しましたが、役に立ちませんでした。ローカル ネットワーク内の別のコンピューターからのネットワーク アクセスに対してポートを強制的に開く方法をご存知ですか? 逆に実行すると (Linux に RabbitMQ をインストールし、Mac から接続する)、正常に動作します。

答え1

brew 経由で Mac OS X に RabbitMQ をインストールしたとき、ポート 5672 が localhost でのみ開いているという同じ問題が発生しました。

ファイルにはlocalhostにのみバインドするため/usr/local/etc/rabbitmq/rabbitmq-env.confのエントリが含まれていたことが判明しました。設定からエントリを削除すると、ポートはNODE_IP_ADDRESSNODE_IP_ADDRESSすべてのネットワークインターフェース

答え2

デーモンは0.0.0.0ではなく127.0.0.1にバインドしているようです。netstatツールを使用して確認できます。

答え3

私にとってうまくいったのは、前述の 2 つの回答を組み合わせたものでした。

見た目は次のようになります/usr/local/etc/rabbitmq/rabbitmq-env.conf:

#rabbitmq-env.conf
CONFIG_FILE=/usr/local/etc/rabbitmq/rabbitmq
NODE_IP_ADDRESS=0.0.0.0
NODENAME=rabbit@localhost

エントリを完全に削除するとNODE_IP_ADDRESS、rabbitmq でエラーが発生します。

答え4

RabbitMQに接続するために使用しているアカウントは何ですか。ゲストアカウントを使用している場合は、これが役立つかもしれません

https://www.rabbitmq.com/access-control.html

関連情報