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.0 的 TLS 加密连接
- 15672/TCP:HTTP API 与 rabbitmq_management 管理控制台
- 4369/TCP:epmd(Erlang Port Mapper Daemon),节点发现
- 25672/TCP:Erlang 分布式通信端口(集群用)
- 可选插件端口: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.default 与 management.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 一致性与防火墙策略。