温馨提示×

Centos防火墙规则如何设

小樊
42
2026-08-29 18:11:42
栏目: 智能运维

CentOS 上设置防火墙规则,主要取决于系统版本。常见两种情况:


一、CentOS 7 / 8(推荐)使用 firewalld

1️⃣ 查看防火墙状态

systemctl status firewalld

启动 / 停止 / 重启:

systemctl start firewalld
systemctl stop firewalld
systemctl restart firewalld

设置开机自启:

systemctl enable firewalld

2️⃣ 查看当前活动区域和规则

firewall-cmd --list-all

3️⃣ 开放端口(最常用)

例如开放 80 端口(HTTP):

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload

开放多个端口:

firewall-cmd --permanent --add-port=8080-8090/tcp
firewall-cmd --reload

4️⃣ 开放服务(预定义)

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

查看支持的服务:

firewall-cmd --get-services

5️⃣ 拒绝 / 移除规则

移除端口:

firewall-cmd --permanent --remove-port=80/tcp
firewall-cmd --reload

移除服务:

firewall-cmd --permanent --remove-service=http
firewall-cmd --reload

6️⃣ 指定 IP 白名单(允许某个 IP)

firewall-cmd --permanent --add-source=192.168.1.100
firewall-cmd --reload

7️⃣ 仅允许某 IP 访问某端口(高级)

firewall-cmd --permanent --add-rich-rule='
rule family="ipv4"
source address="192.168.1.100"
port protocol="tcp" port="3306" accept'
firewall-cmd --reload

二、CentOS 6 或手动使用 iptables

1️⃣ 查看规则

iptables -L -n

2️⃣ 开放端口示例

iptables -I INPUT -p tcp --dport 80 -j ACCEPT
service iptables save
service iptables restart

3️⃣ 禁止某 IP

iptables -I INPUT -s 192.168.1.100 -j DROP

三、如何选择?

系统版本 推荐方式
CentOS 7 / 8 ✅ firewalld
CentOS 6 ✅ iptables

四、常见建议

  • 修改前先备份:
cp /etc/firewalld/zones/public.xml /etc/firewalld/zones/public.xml.bak
  • 生产环境不要直接 stop 防火墙
  • 建议用 --permanent,否则重启失效

如果你愿意,可以告诉我:

  • ✅ CentOS 具体版本
  • ✅ 想开放/限制哪些端口或 IP
  • ✅ 是服务器还是本地虚拟机

我可以给你可直接执行的一整套命令

0