ubuntu - Rabbitmq 监听所有接口(interface)

标签 ubuntu rabbitmq erlang beam

似乎我的 rabbitmq 监听了所有接口(interface),尽管:

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

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

最佳答案

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

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

  • 使用 -kernel inet_dist_use_interface '{127,0,0,1}' kernel configuration从 shell 中标记或创建 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.conf export ERL_EPMD_ADDRESS=127.0.0.1 Erlang environment variable

关于ubuntu - Rabbitmq 监听所有接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20316035/

相关文章:

c++ - 找不到库,即使它在搜索路径上

c++ - 无法从 nautilus 运行可执行文件

java - spring rabbit 监听输出队列或接收

java - rabbitmq basic.ack ,在不同的 channel 对象上

rabbitmq - 由于 erlang 依赖项的版本不正确,无法安装 rabbitmq

concurrency - F# 在生成和终止进程方面真的比 Erlang 更快吗?

functional-programming - 单一任务的目的是什么?

erlang - 如何从 Elixir shell 获取 Erlang 函数的帮助

python - 我可以使用 uWSGI Emperor 来管理后台进程吗?

amazon-web-services - 使用本地 IP 而不是弹性 IP 访问 EC2 机器