Rabbitmq listens on all interfaces

6.1k views Asked by At

It appears that my rabbitmq listens on all interfaces despite:

In /etc/rabbitmq/rabbitmq.config:

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

In /etc/rabbitmq/rabbitmq-env.conf:

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

When i run netstat -uptan | grep beam i get:

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

How do i make beam not listening on 0.0.0.0:33551 ?

1

There are 1 answers

0
sysoff On BEST ANSWER

tcp 0 0 127.0.0.1:38737 127.0.0.1:4369 ESTABLISHED 1378/beam says that beam process enables Erlang distributed protocol and connected to epmd daemon on 127.0.0.1:4369. Also beam process waits for incoming connections on 0.0.0.0:33551. This interface secured with Erlang cookies and rabbitmqctl uses it to connect to RabbitMQ instance and manage it.

To make it able to accept connections only from localhost you can:

  • use -kernel inet_dist_use_interface '{127,0,0,1}' kernel configuration flag from shell or create my_rabbitmq.conf:

    [{kernel,[{inet_dist_use_interface,{127,0,0,1}}]}].

    and use RabbitMQ environment variable to include it: export RABBITMQ_CONFIG_FILE="/path/to/my_rabbitmq.conf" to use configuration file

  • put in your /etc/rabbitmq/rabbitmq.conf export ERL_EPMD_ADDRESS=127.0.0.1 Erlang environment variable