在 Debian 上跑 Kafka 出错,原因通常集中在环境、配置、权限、端口这几类。下面按最常见原因 → 排查方法给你一个清单,你可以对照看是哪一种。
Kafka 依赖 JVM,Debian 默认可能没装或版本不对。
java -version
如果提示 command not found:
sudo apt update
sudo apt install default-jdk
Kafka 3.x 需要 Java 8 / 11 / 17
查看:
java -version
如果是太老的 Java(如 7)会直接启动失败。
直接双击或:
./kafka-server-start.sh
cd kafka_2.13-3.x.x
bin/kafka-server-start.sh config/server.properties
⚠️ 必须先启动 Zookeeper(Kafka 3.3 以前):
bin/zookeeper-server-start.sh config/zookeeper.properties
(Kafka 3.3+ 可用 KRaft,不用 Zookeeper)
Debian 服务器如果是云主机:
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://你的IP:9092
❌ 写成 localhost,外部连不上
✅ 写服务器真实 IP 或域名
默认:
log.dirs=/tmp/kafka-logs
如果手动改了路径:
sudo mkdir -p /data/kafka
sudo chown -R youruser:youruser /data/kafka
sudo netstat -tunlp | grep 9092
如果被占用:
server.properties 里的端口Debian 小内存机器常见。
修改:
bin/kafka-server-start.sh
找到:
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
改为:
export KAFKA_HEAP_OPTS="-Xmx256M -Xms256M"
如果用 systemd:
[Service]
User=kafka
Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
常见错误:
# 看报错
tail -n 100 logs/server.log
# 看进程
ps aux | grep kafka
# 看端口
ss -ltnp | grep 9092
你可以把具体报错贴出来,比如:
logs/server.log 中的 ERROR我可以直接告诉你是哪一行配置或环境错了。