最新バージョンの 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_ADDRESS
NODE_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に接続するために使用しているアカウントは何ですか。ゲストアカウントを使用している場合は、これが役立つかもしれません