CentOS系统下Kafka防火墙配置指南
CentOS 7及以上版本默认使用firewalld作为防火墙管理工具。可通过以下命令验证:
systemctl status firewalld
若未运行,启动并设置开机自启:
sudo systemctl start firewalld
sudo systemctl enable firewalld
Kafka默认使用9092/tcp端口提供客户端服务(如生产者/消费者通信)。需通过以下命令永久开放该端口:
sudo firewall-cmd --zone=public --add-port=9092/tcp --permanent
说明:--permanent表示永久生效,重启防火墙后仍保留配置。
Kafka依赖Zookeeper进行集群协调,默认使用2181/tcp端口。同样需永久开放:
sudo firewall-cmd --zone=public --add-port=2181/tcp --permanent
开放端口后,需重新加载防火墙规则使更改立即生效:
sudo firewall-cmd --reload
通过以下命令确认端口是否已正确开放:
sudo firewall-cmd --zone=public --query-port=9092/tcp # 应返回"yes"
sudo firewall-cmd --zone=public --query-port=2181/tcp # 应返回"yes"
若需仅允许特定IP访问Kafka服务(如内网IP段192.168.1.0/24),可使用--add-rich-rule命令:
sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="9092" accept' --permanent
sudo firewall-cmd --reload
注意:此配置需根据实际网络环境调整,避免误拦截合法流量。
advertised.listeners正确:Kafka的server.properties中,advertised.listeners需指向服务器公网IP或域名(如PLAINTEXT://your_server_ip:9092),否则客户端无法通过防火墙访问。通过以上步骤,可完成CentOS系统下Kafka的防火墙配置,确保客户端能安全访问Kafka服务。