centos rabbitmq网络配置要点
小樊
36
2025-12-23 09:39:57
CentOS 上 RabbitMQ 网络配置要点
一 核心监听与端口规划
- 建议仅开放业务需要的端口,并按需绑定到内网或公网网卡。常见端口与用途如下:
- 5672/TCP:AMQP 0-9-1 明文端口(生产建议启用 TLS 改为 5671)
- 5671/TCP:AMQP 0-9-1 over TLS
- 15672/TCP:HTTP 管理插件(rabbitmq_management)
- 4369/TCP:Erlang 分布式端口发现(epmd)
- 25672/TCP:Erlang 节点间通信(集群)
- 可选插件端口:1883/8883(MQTT/SSL)、61613/61614(STOMP/SSL)
- 配置示例(/etc/rabbitmq/rabbitmq.conf):仅监听内网 192.168.1.10,AMQP 改为 5673,启用管理端口 15672
- listeners.tcp.default = 192.168.1.10:5673
- management.tcp.port = 15672
- management.tcp.ip = 192.168.1.10
- 如需仅开放 TLS:listeners.tcp = none;listeners.ssl.default = 5671
- 防火墙放行(firewalld)
- 放行管理口与业务口:firewall-cmd --permanent --add-port={15672,5672}/tcp && firewall-cmd --reload
- 集群节点放行:firewall-cmd --permanent --add-port={4369,25672}/tcp && firewall-cmd --reload
- 按需放行插件端口:–add-port={1883,8883,61613,61614}/tcp
- 监听与连通性验证
- ss -tlnp | egrep ‘(:5672|:5673|:15672)’
- 管理界面访问:http://服务器IP:15672(启用 rabbitmq_management 后)
二 主机名解析与集群网络
- 使用稳定可解析的主机名,并在所有节点维护一致的 /etc/hosts 映射,避免节点间通信异常
- hostnamectl set-hostname rabbitmq1
- echo “192.168.1.10 rabbitmq1” >> /etc/hosts(其余节点同理)
- 集群节点需保证主机名可解析且互通(建议同网段、低时延),并使用一致的 Erlang Cookie 进行认证
- Cookie 位置:/var/lib/rabbitmq/.erlang.cookie(保持相同)
- 集群端口要点:除业务端口外,确保 4369(epmd)与 25672(节点通信)在节点间可达
三 TLS 加密与访问控制
- 启用 TLS(推荐生产环境)
- listeners.ssl.default = 5671
- 准备证书(server 证书与私钥,必要时包含 CA 证书链),在 rabbitmq.conf 中配置 ssl_options(certfile/keyfile/cafile 等),并可将明文端口关闭:listeners.tcp = none
- 管理口访问控制
- 管理插件默认监听 15672;建议仅在内网开放,或通过反向代理/网关做鉴权与限流
- 远程登录安全
- 默认 guest/guest 仅允许本机登录;创建管理员用户并赋权
- rabbitmqctl add_user admin StrongPass!
- rabbitmqctl set_user_tags admin administrator
- rabbitmqctl set_permissions -p / admin “." ".” “.*”
- 如需允许远程使用 guest(不推荐),可在配置中设置 loopback_users = [](旧版 advanced.config 语法)
四 防火墙与 SELinux 注意事项
- firewalld
- 持久化放行并重载:firewall-cmd --permanent --add-port=15672/tcp;firewall-cmd --permanent --add-port=5672/tcp;firewall-cmd --reload
- 集群务必放行 4369 与 25672
- SELinux
- 如启用 SELinux 且出现网络访问受限,可按需调整布尔值(示例):setsebool -P httpd_can_network_connect 1
- 生产环境优先使用最小权限策略,不建议全局放宽
五 配置生效与排错清单
- 配置文件与生效
- 主配置:/etc/rabbitmq/rabbitmq.conf(键值对,易维护)
- 高级项:/etc/rabbitmq/advanced.config(Erlang 项式,按需使用)
- 环境变量:RABBITMQ_CONFIG_FILE、RABBITMQ_ADVANCED_CONFIG_FILE、RABBITMQ_CONF_ENV_FILE
- 修改后重启:systemctl restart rabbitmq-server;运行时查看生效配置:rabbitmq-diagnostics environment
- 常用排错
- 查看监听:ss -tlnp | egrep ‘(:5672|:5673|:15672)’
- 服务状态与日志:systemctl status rabbitmq-server;/var/log/rabbitmq/ 下查看 rabbit@*.log
- 管理口连通性:curl -I http://服务器IP:15672;浏览器访问确认插件已启用(rabbitmq-plugins enable rabbitmq_management)