温馨提示×

centos防火墙规则怎么设

小樊
44
2026-09-05 23:42:25
栏目: 智能运维

在 CentOS 中设置防火墙规则,主要取决于你使用的 CentOS 版本:

  • CentOS 7 / 8 / Stream:默认使用 firewalld
  • CentOS 6 及更早:使用 iptables

下面分别说明。


一、CentOS 7/8/Stream(firewalld)

1. 查看防火墙状态

systemctl status firewalld
# 或
firewall-cmd --state

2. 启动 / 停止 / 开机自启

systemctl start firewalld
systemctl stop firewalld
systemctl enable firewalld
systemctl disable firewalld

3. 查看当前规则

firewall-cmd --list-all
firewall-cmd --list-ports
firewall-cmd --list-services

4. 开放端口(如 80、3306)

# 临时生效
firewall-cmd --add-port=80/tcp

# 永久生效
firewall-cmd --add-port=80/tcp --permanent

# 重新加载
firewall-cmd --reload

5. 关闭端口

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

6. 开放服务(自带规则)

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

7. 限制来源 IP(富规则)

# 只允许 192.168.1.100 访问 22 端口
firewall-cmd --permanent --add-rich-rule='
rule family="ipv4"
source address="192.168.1.100"
port protocol="tcp" port="22" accept'

firewall-cmd --reload

8. 拒绝 IP

firewall-cmd --permanent --add-rich-rule='
rule family="ipv4"
source address="10.0.0.0/8"
reject'

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 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

三、常见场景示例

✅ 只开 22 / 80 / 443

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

✅ 禁止 ping(ICMP)

firewall-cmd --permanent --add-rich-rule='rule protocol value="icmp" reject'
firewall-cmd --reload

四、注意事项

  • --permanent 才重启有效
  • 改完一定要 --reload
  • 云服务器还要看 安全组
  • 别把自己关在门外(SSH)

如果你有 具体端口 / IP / 业务场景,我可以直接帮你写规则。

0 踩