You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

两台VM部署Kafka单向访问正常反向提示Broker不可用如何解决

问题根因及解决步骤

一、优先解决网络层问题(telnet返回No route to host属于网络不通,是第一优先级排查项)

  • 2号虚拟机端口放行检查:默认系统防火墙会拦截外部端口访问,在2号机执行以下命令放通Kafka用到的端口:
# firewalld 体系执行
firewall-cmd --add-port=9092/tcp --add-port=9093/tcp --permanent
firewall-cmd --reload

# iptables 体系执行
iptables -I INPUT -p tcp --dport 9092 -j ACCEPT
iptables -I INPUT -p tcp --dport 9093 -j ACCEPT
service iptables save
  • 1号虚拟机域名解析配置:2号机的advertised.listeners使用hostname mybox-1.localdomain对外宣告,1号机无对应解析规则会导致访问失败,在1号机的/etc/hosts文件中新增以下规则:
10.35.121.127 mybox-1.localdomain
  • 虚拟机网络连通性检查:分别在两台机器上ping对方的IP地址,ping不通则需要排查虚拟机的网段配置、网关规则、上层网络ACL限制。

二、Kafka配置修正(网络通后需要调整的配置项)

  • 2号机监听地址修正:当前listeners绑定hostname mybox-1.localdomain,如果该hostname默认解析到127.0.0.1,会导致外部无法访问,修改为绑定所有网卡即可:
listeners=PLAINTEXT://0.0.0.0:9093,SSL://0.0.0.0:9092

advertised.listeners保持原有配置不变,用于对外宣告访问地址。

  • 跨机访问协议适配:1号机全局配置了security.protocol=SSL,如果访问2号机的9092 SSL端口,需要把2号机的truststore文件复制到1号机,在访问客户端配置中补充ssl.truststore.location、ssl.truststore.password等SSL参数;如果不需要加密访问,可以指定走2号机的9093明文端口,同时将访问的security.protocol修改为PLAINTEXT。
  • 集群配置注意:当前两台Kafka的broker.id均为0,后续如果要搭建集群必须修改为不同的ID,单节点独立运行不影响跨机访问。

内容的提问来源于stack exchange,提问作者Hardik Rana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 04:24:03