Ubuntu 上 Kafka 网络配置指南
一 环境准备与网络基础
java -version 检查;如未安装,建议 sudo apt install openjdk-8-jdk。Kafka 依赖 Java 运行环境。ip a 或 ifconfig 确认网卡名(如 eth0、ens33、enp0s3),为后续静态 IP 与监听地址做准备。二 主机网络与防火墙配置
/etc/netplan/*.yaml,设置静态 IP、网关与 DNS,示例:sudo netplan apply。sudo ufw allow **9092/tcp**sudo ufw allow **2181/tcp**sudo firewall-cmd --add-port=9092/tcp --permanent && sudo firewall-cmd --reload。ping <目标IP>、nc -vz <目标IP> 9092、nc -vz <目标IP> 2181ss -lntp | grep :9092三 Kafka 核心网络参数配置
listeners=PLAINTEXT://**0.0.0.0:9092**(监听所有地址)advertised.listeners=PLAINTEXT://**<服务器公网或内网IP>:9092**(客户端实际连接的地址)zookeeper.connect=**localhost:2181**(如使用 ZK)broker.id(如 0、1、2)listeners 与 advertised.listeners 均使用各节点的 可达 IP(避免仅用主机名导致跨网段不可达)zookeeper.connect 包含所有 ZK 节点。listeners 而忽略 advertised.listeners,导致外部客户端拿到不可达地址。advertised.listeners 设为 localhost 或错误网段。--zookeeper <zk:2181>--bootstrap-server <broker:9092>(推荐)四 端口与连通性验证
zoo.cfg 设置 admin.serverPort=xxxx)bin/kafka-topics.sh --create --topic test --bootstrap-server **<任一BrokerIP>:9092**bin/kafka-topics.sh --list --bootstrap-server **<任一BrokerIP>:9092**bin/kafka-console-producer.sh --bootstrap-server **localhost:9092** --topic testbin/kafka-console-consumer.sh --bootstrap-server **localhost:9092** --topic test --from-beginning--bootstrap-server 指向 advertised.listeners 的 IP:9092advertised.listeners 是否为客户端可达 IP五 常见问题与优化建议
listeners 与 advertised.listeners 均设为内网 IP:9092,并仅放通内网网段。advertised.listeners 设为 公网IP:9092,并限制来源 IP;生产环境建议使用 SASL_SSL/SSL 加密传输。admin.serverPort)port 或目录)socket.send.buffer.bytes、socket.receive.buffer.bytes 等网络缓冲参数server.properties 缩进与格式正确,避免复制粘贴引入不可见字符