在 Ubuntu 上配置 Kafka 端口,主要涉及 Kafka Broker 端口 和 Zookeeper 端口(如果还在使用 Zookeeper)。下面分情况说明。
Kafka 默认使用 9092 端口,配置文件在:
$KAFKA_HOME/config/server.properties
编辑配置文件:
sudo nano $KAFKA_HOME/config/server.properties
关键配置项:
# 监听地址和端口(常用)
listeners=PLAINTEXT://0.0.0.0:9092
# 对外暴露给客户端的地址(非常重要)
advertised.listeners=PLAINTEXT://你的服务器IP:9092
# 协议映射
listener.security.protocol.map=PLAINTEXT:PLAINTEXT
listeners=PLAINTEXT://localhost:9092
advertised.listeners=PLAINTEXT://localhost:9092
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://192.168.1.100:9092
⚠️
advertised.listeners必须能被客户端访问到,否则会连接失败。
listeners=PLAINTEXT://0.0.0.0:9093
advertised.listeners=PLAINTEXT://192.168.1.100:9093
修改后重启 Kafka:
$KAFKA_HOME/bin/kafka-server-stop.sh
$KAFKA_HOME/bin/kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties
如果 Kafka 还依赖 Zookeeper(Kafka ≤ 2.x):
$KAFKA_HOME/config/zookeeper.properties
默认端口:
clientPort=2181
可修改为:
clientPort=2182
sudo ufw status
sudo ufw allow 9092
如果是 Zookeeper:
sudo ufw allow 2181
ss -lntp | grep 9092
或:
netstat -lntp | grep 9092
telnet 127.0.0.1 9092
如果你用的是 Kafka 3.x + KRaft:
# controller 端口
process.roles=broker,controller
node.id=1
controller.quorum.voters=1@localhost:9093
# broker 端口
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://localhost:9092
❌ Connection refused
→ 端口没开 / 防火墙没放行
❌ advertised.listeners 配置错误
→ 客户端连不上 broker
❌ 只改 listeners 不改 advertised.listeners
→ 外部访问失败
如果你愿意,可以告诉我:
我可以给你一份 完全适配你环境的配置示例 ✅