在 Debian 上部署 Kafka 时,“监听怎么设”通常指 Kafka 的 listeners / advertised.listeners 配置,以及系统层面的监听地址。下面按常见场景说明。
Kafka 配置文件一般在:
/etc/kafka/server.properties
# 或
/opt/kafka/config/server.properties
listeners=PLAINTEXT://0.0.0.0:9092
含义:
PLAINTEXT:明文协议(无 SSL)0.0.0.0:监听所有网卡9092:端口✅ 如果你只想本机访问:
listeners=PLAINTEXT://127.0.0.1:9092
这个非常关键,否则远程连不上。
advertised.listeners=PLAINTEXT://<服务器IP或域名>:9092
例如:
advertised.listeners=PLAINTEXT://192.168.1.10:9092
或公网:
advertised.listeners=PLAINTEXT://kafka.example.com:9092
⚠️ 注意:
listeners 是“听哪里”advertised.listeners 是“告诉别人来哪里”listeners=PLAINTEXT://127.0.0.1:9092
advertised.listeners=PLAINTEXT://127.0.0.1:9092
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://192.168.1.10:9092
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://公网IP:9092
如果是 Docker:
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://宿主机IP:9092
如果连不上,八成是端口没开。
sudo ufw allow 9092/tcp
ss -lntp | grep 9092
或
netstat -lntp | grep 9092
Kafka 2.8 之前需要 Zookeeper:
zookeeper.connect=127.0.0.1:2181
sudo systemctl restart kafka
# 或
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
kafka-console-producer.sh \
--bootstrap-server 127.0.0.1:9092 \
--topic test
kafka-console-consumer.sh \
--bootstrap-server 127.0.0.1:9092 \
--topic test --from-beginning
如果你愿意,可以告诉我:
我可以给你一份直接能用的配置。