Rabbitmq监听所有接口

pab*_*lox 6 ubuntu beam 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}]}]}]}].
Run Code Online (Sandbox Code Playgroud)

在/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
Run Code Online (Sandbox Code Playgroud)

当我运行netstat -uptan | grep beam我得到:

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
Run Code Online (Sandbox Code Playgroud)

如何使光束不在0.0.0.0:33551上听?

小智 7

tcp 0 0 127.0.0.1:38737 127.0.0.1:4369 ESTABLISHED 1378/beam说梁工艺启用Erlang分布式协议并连接到epmd守护进程127.0.0.1:4369.此外,波束处理还会等待传入的连接0.0.0.0:33551.此接口使用Erlang cookie进行保护,并rabbitmqctl使用它连接到RabbitMQ实例并对其进行管理.

要使其能够仅接受来自localhost的连接,您可以:

  • 使用shell的-kernel inet_dist_use_interface '{127,0,0,1}' 内核配置标志或创建my_rabbitmq.conf:

    [{内核,[{inet_dist_use_interface,{127,0,0,1}}]}].

    并使用RabbitMQ环境变量来包含它:export RABBITMQ_CONFIG_FILE="/path/to/my_rabbitmq.conf"使用配置文件

  • 放入你的/etc/rabbitmq/rabbitmq.conf export ERL_EPMD_ADDRESS=127.0.0.1 Erlang环境变量