温馨提示×

linux hdfs如何设防火墙

小樊
46
2026-09-25 19:45:28
栏目: 智能运维

在 Linux 上给 HDFS(Hadoop 分布式文件系统)配置防火墙,核心思路是:
只开放 HDFS 需要的端口,限制来源 IP(尤其是 NameNode / DataNode 端口)。

下面按常见场景说明。


一、HDFS 常用端口(默认)

组件 端口 说明
NameNode 8020 / 9000 HDFS RPC
NameNode Web UI 9870 HDFS UI(Hadoop 3)
DataNode 9864 数据传输
DataNode Web UI 9865 DataNode UI
SecondaryNameNode 9868 辅助 NameNode
YARN(如启用) 8088 ResourceManager UI

Hadoop 2 用 50070 / 50075 / 50470 等端口


二、使用 firewalld(CentOS / RHEL 7+)

1. 启动防火墙

systemctl enable firewalld
systemctl start firewalld

2. 开放 HDFS 端口

# NameNode
firewall-cmd --permanent --add-port=8020/tcp
firewall-cmd --permanent --add-port=9870/tcp

# DataNode
firewall-cmd --permanent --add-port=9864/tcp
firewall-cmd --permanent --add-port=9865/tcp

# SecondaryNameNode
firewall-cmd --permanent --add-port=9868/tcp

3. 限制访问来源(推荐)

# 只允许集群内网访问
firewall-cmd --permanent --add-rich-rule='
rule family="ipv4"
source address="192.168.10.0/24"
port protocol="tcp" port="9870" accept'

4. 重载防火墙

firewall-cmd --reload

三、使用 iptables(Ubuntu / 老版本)

iptables -A INPUT -p tcp --dport 9870 -s 192.168.10.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 8020 -s 192.168.10.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 9864 -j ACCEPT
iptables -A INPUT -p tcp --dport 9864 -s 0.0.0.0/0 -j DROP

保存规则(CentOS):

service iptables save

四、Hadoop 自身安全配置(非常重要)

防火墙不能代替 Hadoop 安全机制

1. 绑定内网 IP

hdfs-site.xml

<property>
  <name>dfs.namenode.rpc-bind-host</name>
  <value>192.168.10.10</value>
</property>

2. 启用 Kerberos(生产环境必做)

<property>
  <name>hadoop.security.authentication</name>
  <value>kerberos</value>
</property>

3. 关闭不必要的 Web UI 或加认证

<property>
  <name>dfs.web.authentication.kerberos.principal</name>
</property>

五、最小开放原则(推荐)

✅ 集群内部:全端口互通
❌ 外部:只开放 必要端口(如 9870 给运维)
❌ 禁止公网暴露 NameNode RPC


六、快速检查

# 查看端口监听
netstat -tunlp | grep java

# 测试端口
telnet namenode 9870

如果你告诉我:

  • Hadoop 版本(2 还是 3)
  • Linux 发行版
  • 是否公网 / 内网

我可以给你一套 可直接复制的防火墙脚本。

0 踩