【问题标题】:Rabbitmq listens on all interfacesRabbitmq 监听所有接口
【发布时间】:2013-12-17 10:29:46
【问题描述】:

尽管如此,我的 rabbitmq 似乎在侦听所有接口:

在 /etc/rabbitmq/rabbitmq.config 中:

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

在 /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

当我运行 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

如何让 beam 不在 0.0.0.0:33551 上监听?

【问题讨论】:

  • 现在我决定使用防火墙,所以公共接口只接受我需要的。

标签: ubuntu rabbitmq erlang beam


【解决方案1】:

tcp 0 0 127.0.0.1:38737 127.0.0.1:4369 ESTABLISHED 1378/beam 表示Beam 进程启用Erlang distributed protocol 并连接到127.0.0.1:4369 上的epmd 守护进程。束进程也等待0.0.0.0:33551 上的传入连接。此接口使用 Erlang cookie 和rabbitmqctl 保护,使用它连接到 RabbitMQ 实例并对其进行管理。

要使其只能接受来自本地主机的连接,您可以:

  • 在 shell 中使用 -kernel inet_dist_use_interface '{127,0,0,1}' kernel configuration 标志或创建 my_rabbitmq.conf:

    [{kernel,[{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

【讨论】:

    猜你喜欢
    • 2012-08-12
    • 2017-03-21
    • 2012-08-20
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-21
    • 2017-05-29
    相关资源
    最近更新 更多