Linux防火墙配置主要使用firewalld或iptables,CentOS 7+默认用firewalld,Debian系多用iptables。1. firewalld通过区域管理策略,启用服务并设置开机启动,使用firewall-cmd命令查看状态、添加端口或服务(如80/tcp、http)、指定网卡区域,并重载生效;2. iptables直接操作内核规则,常用命令包括查看规则、清空链、允许回环与已建立连接、开放指定端口(如22、80)、拒绝其他入站流量,并保存规则至配置文件;3. 配置时需避免误关SSH端口导致失连,修改后测试连通性,生产环境先验证,脚本配置应含回滚机制,定期清理无效规则。选择工具时,firewalld适合快速管理,iptables提供更细粒度控制。

Linux防火墙主要通过iptables或更现代的firewalld进行配置。不同发行版默认工具可能不同,比如CentOS 7及以上使用firewalld,而一些旧版本或Debian系列仍常用iptables。下面分别介绍两种主流方式的配置方法与规则设置。
使用firewalld配置防火墙
firewalld是动态管理防火墙的服务,支持区域(zone)概念,便于按网络环境切换策略。
1. 启动并启用firewalld服务:sudo systemctl start firewalld2. 查看当前状态和默认区域:
sudo systemctl enable firewalld
sudo firewall-cmd --state3. 添加端口放行规则(如开放80端口):
sudo firewall-cmd --get-default-zone
sudo firewall-cmd --permanent --add-port=80/tcp4. 开放特定服务(如http、https):
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --add-service=http5. 更改默认区域或为网卡指定区域:
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo firewall-cmd --set-default-zone=public6. 查看已添加规则:
sudo firewall-cmd --zone=internal --change-interface=eth0
sudo firewall-cmd --list-all
使用iptables配置防火墙
iptables是传统包过滤工具,规则直接操作内核Netfilter模块。
1. 查看当前规则:sudo iptables -L -n -v2. 清空规则(慎用):
sudo iptables -F3. 允许本地回环通信:
sudo iptables -A INPUT -i lo -j ACCEPT4. 放行已建立的连接:
sudo iptables -A OUTPUT -o lo -j ACCEPT
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT5. 开放指定端口(如22、80):
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT6. 拒绝其他所有入站连接:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -j DROP7. 保存规则(CentOS/RHEL):
sudo service iptables saveDebian/Ubuntu需安装iptables-persistent:
sudo apt install iptables-persistent
sudo netfilter-persistent save
常见注意事项
配置防火墙时需注意以下几点,避免锁死服务器。
- 远程操作时不要关闭SSH端口(默认22),否则可能导致无法连接。
- 每次修改后建议测试连通性,再确认保存。
- 生产环境建议先在测试机验证规则。
- 使用脚本批量配置时,加入错误处理和回滚机制。
- 定期审查规则列表,清理无用条目。









