私はMacにインストールされた最新バージョンのRabbitMQをデフォルトの設定でインストールしており、localhostからアクセスしているときは何の問題もありません。しかし、今日、私はローカルネットワーク上にLinuxマシンを構築しており、そのマシンからRabbitMQサーバーにリモートで接続することはできません。 Macのすべてのファイアウォールと、接続をブロックする可能性のあるすべてのものをシャットダウンしました。別のポートで実行されているMongoDBや他のアプリケーションに完全に接続したり、macbookにsshで接続したりできますが、RabbitMQに接続できません(実行中のポートを変更しても)。 Linuxでnmap
を実行して、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からそれに接続します)、うまく動作します。
Mac OS Xにbrew経由でRabbitMQをインストールしたとき、同じ問題が発生しましたが、localhostでポート5672のみが開いています。
ファイル/usr/local/etc/rabbitmq/rabbitmq-env.conf
には、localhostにのみバインドするNODE_IP_ADDRESS
のエントリが含まれていることがわかりました。 NODE_IP_ADDRESS
エントリを構成から削除すると、ポートが all network inferfaces にバインドされます。
デーモンが0.0.0.0ではなく127.0.0.1をバインドしているようです。netstatツールを使用して確認できます
私にとってうまくいったのは、以前の両方の答えの組み合わせでした。
/usr/local/etc/rabbitmq/rabbitmq-env.confを次のようにします。
CONFIG_FILE =/usr/local/etc/rabbitmq/rabbitmq
NODE_IP_ADDRESS = 0.0.0.0
NODENAME = rabbit @ localhost
(NODE_IP_ADDRESSエントリを完全に削除すると、rabbitmqでエラーが発生します)
rabbitMQへの接続に使用しているアカウント。ゲストアカウントを使用している場合。これは役立つかもしれません