在 CentOS 上设置防火墙规则,主要取决于系统版本。常见两种情况:
systemctl status firewalld
启动 / 停止 / 重启:
systemctl start firewalld
systemctl stop firewalld
systemctl restart firewalld
设置开机自启:
systemctl enable firewalld
firewall-cmd --list-all
例如开放 80 端口(HTTP):
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload
开放多个端口:
firewall-cmd --permanent --add-port=8080-8090/tcp
firewall-cmd --reload
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
查看支持的服务:
firewall-cmd --get-services
移除端口:
firewall-cmd --permanent --remove-port=80/tcp
firewall-cmd --reload
移除服务:
firewall-cmd --permanent --remove-service=http
firewall-cmd --reload
firewall-cmd --permanent --add-source=192.168.1.100
firewall-cmd --reload
firewall-cmd --permanent --add-rich-rule='
rule family="ipv4"
source address="192.168.1.100"
port protocol="tcp" port="3306" accept'
firewall-cmd --reload
iptables -L -n
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
service iptables save
service iptables restart
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
--permanent,否则重启失效如果你愿意,可以告诉我:
我可以给你可直接执行的一整套命令。