似乎我的 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/