温馨提示×

CentOS RabbitMQ网络配置指南

小樊
35
2025-12-17 12:17:00
栏目: 智能运维

CentOS RabbitMQ 网络配置指南

一 基础监听与端口规划

  • 常用端口与用途
    • 5672/TCP:AMQP 0-9-1 与 1.0 客户端连接
    • 5671/TCP:AMQP 0-9-1 与 1.0TLS 加密连接
    • 15672/TCP:HTTP API 与 rabbitmq_management 管理控制台
    • 4369/TCPepmd(Erlang Port Mapper Daemon),节点发现
    • 25672/TCPErlang 分布式通信端口(集群用)
    • 可选插件端口:61613-61614/TCP(STOMP)、1883/TCP(MQTT)、8883/TCP(MQTT/TLS)
  • 防火墙放行(firewalld)
    • 放行命令示例:
      • firewall-cmd --zone=public --permanent --add-port=4369/tcp
      • firewall-cmd --zone=public --permanent --add-port=25672/tcp
      • firewall-cmd --zone=public --permanent --add-port=5671-5672/tcp
      • firewall-cmd --zone=public --permanent --add-port=15672/tcp
      • firewall-cmd --zone=public --permanent --add-port=61613-61614/tcp
      • firewall-cmd --zone=public --permanent --add-port=1883/tcp
      • firewall-cmd --zone=public --permanent --add-port=8883/tcp
      • firewall-cmd --reload
    • 如启用 SELinux,按需放行网络:setsebool -P nis_enabled 1
  • 云服务器注意:除系统防火墙外,还需在云平台安全组放行上述端口。

二 配置文件与关键参数

  • 配置文件路径与格式
    • 推荐主配置:/etc/rabbitmq/rabbitmq.conf(ini 风格,键值对)
    • 高级配置:/etc/rabbitmq/advanced.config(Erlang 项式,用于补充新格式不易表达的选项)
    • 环境变量:/usr/lib/rabbitmq/bin/rabbitmq-env.conf(可选,覆盖主机、端口等)
  • 常用网络参数示例
    • 监听指定端口与地址
      • listeners.tcp.default = 5672
      • listeners.tcp.local = 127.0.0.1:5672
      • listeners.tcp.local_v6 = ::1:5672
      • 仅监听内网示例:listeners.tcp.default = 192.168.10.20:5672
    • 仅启用 TLS(禁用明文)
      • listeners.tcp = none
      • listeners.ssl.default = 5671
    • 管理控制台绑定地址
      • management.tcp.ip = 0.0.0.0
      • management.tcp.port = 15672
    • 环境变量方式(与 rabbitmq.conf 二选一或互补)
      • RABBITMQ_NODE_IP_ADDRESS=192.168.10.20
      • RABBITMQ_NODE_PORT=5672
  • 生效与验证
    • 修改后重启:systemctl restart rabbitmq-server
    • 查看监听:ss -lntp | egrep ‘5672|15672|4369|25672’
    • 查看生效配置:rabbitmq-diagnostics environment
    • 查看节点状态:rabbitmqctl status(关注 listeners、ports 等字段)

三 远程访问与管理用户

  • 启用管理插件
    • rabbitmq-plugins enable rabbitmq_management
  • 创建管理员并赋权
    • rabbitmqctl add_user admin StrongPass!
    • rabbitmqctl set_user_tags admin administrator
    • rabbitmqctl set_permissions -p / admin “." ".” “.*”
  • 关于默认账户
    • 内置 guest/guest 默认仅允许 localhost 访问;如需远程访问,请创建新用户并禁用或删除 guest 的远程登录(生产推荐)。

四 集群与节点互联

  • 主机名与解析
    • 建议为各节点设置唯一且稳定的 hostname,并在 /etc/hosts 中互指,例如:
      • 192.168.8.171 rabbitmq1
      • 192.168.8.172 rabbitmq2
      • 192.168.8.173 rabbitmq3
    • 设置方式:hostnamectl set-hostname rabbitmq1 --static
  • 端口与连通性
    • 集群节点间需开放 4369/TCP(epmd)25672/TCP(Erlang 分布式),并确保各节点间可相互解析与访问
    • 如启用管理界面,跨节点访问 15672/TCP 也需放行
  • 验证
    • 在任一节点执行:rabbitmqctl cluster_status,确认节点列表与分区状态正常。

五 常见问题排查

  • 端口未监听或访问被拒
    • 核对 rabbitmq.conf 中 listeners.tcp.defaultmanagement.tcp.ip/port
    • 核对 firewalld/云安全组是否放行 5672/15672/4369/25672
    • 使用 ss -lntp | egrep ‘5672|15672|4369|25672’ 检查实际监听
  • 管理界面打不开
    • 确认插件已启用:rabbitmq-plugins list | grep management
    • 确认管理端口绑定到 0.0.0.0 而非仅 127.0.0.1
  • 远程登录被拒
    • 不要依赖 guest/guest 远程登录,创建新用户并赋权
    • 如曾使用旧版 rabbitmq.config,确保未限制 loopback_users 导致外部无法登录
  • 节点无法加入集群
    • 核对 hostname/hosts 解析、节点间 4369/25672 连通性、Erlang Cookie 一致性与防火墙策略。

0