温馨提示×

linux防火墙怎么设置

小樊
45
2026-10-01 09:36:14
栏目: 智能运维

在 Linux 下设置防火墙,常见有三种方式:iptables(传统)、firewalld(CentOS/RHEL 默认)、ufw(Ubuntu 推荐)。下面分别说明,你可以按自己系统选。


一、先确认你用哪种防火墙

# 查看 firewalld 是否运行
systemctl status firewalld

# 查看 ufw 是否运行
ufw status

# 查看 iptables 规则
iptables -L -n

二、Ubuntu / Debian(推荐 ufw)

1. 开启防火墙

sudo ufw enable

2. 允许 / 拒绝端口

sudo ufw allow 22        # 允许 SSH
sudo ufw allow 80        # 允许 HTTP
sudo ufw allow 3306/tcp  # 允许 MySQL
sudo ufw deny 23

3. 允许特定 IP

sudo ufw allow from 192.168.1.100

4. 查看状态

sudo ufw status verbose

5. 关闭防火墙

sudo ufw disable

三、CentOS / RHEL(firewalld)

1. 启动防火墙

systemctl start firewalld
systemctl enable firewalld

2. 开放端口

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

3. 开放服务

firewall-cmd --add-service=ssh --permanent
firewall-cmd --reload

4. 查看规则

firewall-cmd --list-all

5. 关闭防火墙(不推荐)

systemctl stop firewalld

四、传统方式(iptables,所有 Linux 通用)

1. 允许 SSH

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

2. 允许 80 端口

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

3. 拒绝其他入站

iptables -P INPUT DROP

4. 保存规则

# CentOS
service iptables save

# Ubuntu
iptables-save > /etc/iptables.rules

五、常见安全建议

  • ✅ 永远先允许 SSH(22),再关防火墙
  • ✅ 生产环境只开放必要端口
  • ✅ 云服务器还要配合安全组
  • ❌ 不要直接 iptables -F 后断 SSH

如果你告诉我:

  • 系统版本(Ubuntu / CentOS / 其他)
  • 想实现什么(开端口 / 限制 IP / 防攻击)

我可以给你精确命令。

0 踩