温馨提示×

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
    • 集群务必放行 436925672
  • 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)

0