看来我的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 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 上听?
答案 0 :(得分:7)
tcp 0 0 127.0.0.1:38737 127.0.0.1:4369 ESTABLISHED 1378/beam
表示,梁流程会在127.0.0.1:4369
上启用Erlang distributed protocol并连接到epmd守护程序。此外,beam进程还会等待0.0.0.0:33551
上的传入连接。此接口使用Erlang cookie保护,rabbitmqctl
使用它连接到RabbitMQ实例并进行管理。
要使其能够仅接受来自localhost的连接,您可以:
使用shell中的-kernel inet_dist_use_interface '{127,0,0,1}'
kernel configuration标记或创建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