8302 与 Consul 跨数据中心联邦
8302 是 Consul 的 Serf WAN 端口,用于多数据中心联邦:不同数据中心的 Consul server 之间通过它做 gossip 通信,传播成员状态与故障信息,跨 DC 的查询也依赖这条通道。它与同机内的 Serf LAN 端口(8301)分工明确——8301 管单个数据中心内部,8302 管数据中心之间。只有单个数据中心的环境完全不需要开放 8302;跨 DC 查询失败或成员状态抖动时,首先应验证它是否可达。
基本信息
| 服务名 | Consul Serf WAN(跨数据中心 gossip) |
|---|---|
| 传输层 | TCP + UDP(8302) |
| 相关端口 | 8300 server RPC、8301 Serf LAN、8500 HTTP API、8600 DNS |
| 用途 | 多数据中心成员管理与故障传播 |
| 安全等级 | 仅 DC 互联网段 |
典型使用场景
- 多 DC 联邦排障:成员列表缺节点或状态抖动时确认 gossip 通道
- 网络策略核对:确认 TCP 与 UDP 都已放行
- 集群扩缩容:新增数据中心或 server 时的互联配置
- 安全评估:gossip 加密密钥与 ACL 是否齐备
- 变更核实:跨 DC 链路调整后确认成员关系恢复正常
联邦状态核查
联邦状态核查
consul members -wan # 跨数据中心的成员列表
consul members # 对比本 DC 的成员列表
ss -lntup | grep 8302 # 确认 TCP 与 UDP 都在监听
# 跨 DC 防火墙需同时放行 TCP 与 UDP:只放 TCP 会导致成员状态抖动Consul 端口对照
| 端口 | 用途 | 说明 |
|---|---|---|
| 8300 | server RPC | 服务器之间的 Raft 与内部通信 |
| 8301 | Serf LAN | 单个数据中心内的 gossip |
| 8302 | Serf WAN | 跨数据中心 gossip(本条目) |
| 8500 | HTTP API | 运维与程序调用入口 |
| 8600 | DNS 接口 | 服务发现解析 |
跨 DC 防火墙只放 TCP 是最常见的疏漏:Serf 的 gossip 同时使用 TCP 与 UDP,UDP 不通会导致成员状态反复抖动,而报错信息往往并不明确指向网络。
gossip 加密密钥与 TLS、ACL 需要配套配置。只加固 API 而放任 gossip 层开放,任何能到达 8302 的主机都可能加入集群通信,进而影响服务发现结果。
多数据中心部署建议把加密与 ACL 放在网络放行之前完成:先加密再逐步放开策略,顺序反了会有一段集群通信裸奔的窗口期。跨 DC 的节点地址也要真实可达,经过地址转换的环境需要额外配置,否则成员会反复加入又消失。