看来我的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
如何使光束不在0.0.0.0:33551上听?
tcp 0 0 127.0.0.1:38737 127.0.0.1:4369 ESTABLISHED 1378 / beam表示光束进程启用
Erlang distributed protocol并连接到127.0.0.1:4369上的
epmd守护进程.此过程还会在0.0.0.0:33551上等待传入连接.此接口使用Erlang cookie保护,rabbitmqctl使用它连接到RabbitMQ实例并对其进行管理.
要使其能够仅接受来自localhost的连接,您可以:
>使用shell中的-kernel inet_dist_use_interface'{127,1}’kernel configuration标志或创建my_rabbitmq.conf:
[{内核,[{inet_dist_use_interface,{127,1}}]}].
并使用RabbitMQ environment variable将其包含在内:导出RABBITMQ_CONFIG_FILE =“/ path / to / my_rabbitmq.conf”以使用配置文件
>输入你的/etc/rabbitmq/rabbitmq.conf导出ERL_EPMD_ADDRESS = 127.0.0.1 Erlang environment variable