温馨提示×

CentOS Kafka防火墙如何设置

小樊
57
2025-09-22 06:24:43
栏目: 智能运维

CentOS系统下Kafka防火墙配置指南

1. 确认防火墙管理工具

CentOS 7及以上版本默认使用firewalld作为防火墙管理工具。可通过以下命令验证:

systemctl status firewalld

若未运行,启动并设置开机自启:

sudo systemctl start firewalld
sudo systemctl enable firewalld

2. 开放Kafka核心端口

Kafka默认使用9092/tcp端口提供客户端服务(如生产者/消费者通信)。需通过以下命令永久开放该端口:

sudo firewall-cmd --zone=public --add-port=9092/tcp --permanent

说明--permanent表示永久生效,重启防火墙后仍保留配置。

3. 开放Zookeeper关联端口

Kafka依赖Zookeeper进行集群协调,默认使用2181/tcp端口。同样需永久开放:

sudo firewall-cmd --zone=public --add-port=2181/tcp --permanent

4. 重新加载防火墙配置

开放端口后,需重新加载防火墙规则使更改立即生效:

sudo firewall-cmd --reload

5. 验证端口开放状态

通过以下命令确认端口是否已正确开放:

sudo firewall-cmd --zone=public --query-port=9092/tcp  # 应返回"yes"
sudo firewall-cmd --zone=public --query-port=2181/tcp  # 应返回"yes"

6. 高级场景:限制访问源IP(可选)

若需仅允许特定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

注意:此配置需根据实际网络环境调整,避免误拦截合法流量。

7. 防火墙配置与Kafka联动

  • 确保advertised.listeners正确:Kafka的server.properties中,advertised.listeners需指向服务器公网IP或域名(如PLAINTEXT://your_server_ip:9092),否则客户端无法通过防火墙访问。
  • 多节点集群配置:若为Kafka集群,需开放所有broker节点的9092端口,并确保Zookeeper集群的2181端口互通。

通过以上步骤,可完成CentOS系统下Kafka的防火墙配置,确保客户端能安全访问Kafka服务。

0