我的rabbitmq似乎在所有接口上侦听,尽管:
在/etc/rabbitmq/rabitmq.config:中
[{rabbit, [{tcp_listeners, [{"10.0.0.1", 5672}]}]},
{rabbitmq_mochiweb, [{listeners, [{mgmt, [{ip, "10.0.0.1"},
{port, 55672}]}]}]}].
在/etc/rabbitmq/rabitmq-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
表示beam进程启用Erlang分布式协议,并连接到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}'
内核配置标志或创建my_rabbitmq.conf:〔{kernel,〔{inet_dist_use_interface,{127,0,0,1}}〕}〕。
并使用RabbitMQ环境变量将其包括在内:
export RABBITMQ_CONFIG_FILE="/path/to/my_rabbitmq.conf"
使用配置文件 -
放入您的
/etc/rabbitmq/rabbitmq.conf
export ERL_EPMD_ADDRESS=127.0.0.1
Erlang环境变量