2013-12-01 4 views
5

Оказывается, что мой RabbitMQ слушает на всех интерфейсах, несмотря на:RabbitMQ слушает на всех интерфейсах

В /etc/rabbitmq/rabbitmq.config:

[{rabbit, [{tcp_listeners, [{"10.0.0.1", 5672}]}]}, 
    {rabbitmq_mochiweb, [{listeners, [{mgmt, [{ip, "10.0.0.1"}, 
              {port, 55672}]}]}]}]. 

В/и т.д./RabbitMQ/RabbitMQ-окр. конф:

export RABBITMQ_NODENAME=rabbit 
export RABBITMQ_NODE_IP_ADDRESS=10.0.0.1 
export ERL_EPMD_ADDRESS=10.0.0.1 

Когда я бегу NETSTAT -uptan | Grep луч я получаю:

tcp  0  0 10.0.0.1:5672   0.0.0.0:*    LISTEN  1378/beam 
tcp  0  0 0.0.0.0:33551   0.0.0.0:*    LISTEN  1378/beam 
tcp  0  0 127.0.0.1:38737   127.0.0.1:4369   ESTABLISHED 1378/beam 

Как я сделать луч не прослушивает 0.0.0.0:33551?

+0

На данном момент я решил использовать брандмауэр так общедоступный интерфейс принимает только то, что мне нужно. – pablox

ответ

6

tcp 0 0 127.0.0.1:38737 127.0.0.1:4369 ESTABLISHED 1378/beam говорит, что процесс луча позволяет Erlang distributed protocol и подключен к epmd демонам на 127.0.0.1:4369. Также процесс луча ждет входящих соединений на 0.0.0.0:33551. Этот интерфейс, защищенный файлами Erlang, и rabbitmqctl использует его для подключения к экземпляру RabbitMQ и управления им.

Для того, чтобы он смог принимать соединения только с локального хоста вы можете:

  • использование -kernel inet_dist_use_interface '{127,0,0,1}'kernel configuration флаг из оболочки или создать my_rabbitmq.conf:

    [{ядро, [{inet_dist_use_interface, {127 , 0,0,1}}]}].

    и использовать RabbitMQ environment variable включить его: export RABBITMQ_CONFIG_FILE="/path/to/my_rabbitmq.conf" использовать конфигурационный файл

  • положить в своем /etc/rabbitmq/rabbitmq.confexport ERL_EPMD_ADDRESS=127.0.0.1Erlang environment variable

+0

Благодарим вас за разъяснение. – pablox

 Смежные вопросы

  • Нет связанных вопросов^_^