一、CentOS 7 及以上版本(firewalld)
- 基础操作
- 查看状态:
systemctl status firewalld # 查看服务状态
firewall-cmd --state # 查看防火墙运行状态
- 启停管理:
systemctl start firewalld # 启动
systemctl stop firewalld # 关闭
systemctl restart firewalld # 重启
systemctl enable firewalld # 开机自启
systemctl disable firewalld # 禁用开机自启
- 端口与服务管理
- 开放/关闭端口:
firewall-cmd --zone=public --add-port=80/tcp --permanent # 开放80端口(永久生效)
firewall-cmd --zone=public --remove-port=80/tcp --permanent # 关闭80端口
firewall-cmd --reload # 重载配置
- 通过服务名管理:
firewall-cmd --zone=public --add-service=http --permanent # 开放HTTP服务
firewall-cmd --zone=public --remove-service=http --permanent
- 查看配置:
firewall-cmd --list-ports # 查看已开放端口
firewall-cmd --list-services # 查看已允许服务
firewall-cmd --list-all # 查看完整规则
二、CentOS 6 版本(iptables)
- 基础操作
- 查看状态:
service iptables status # 查看规则和状态
- 启停管理:
service iptables start # 启动(临时生效)
service iptables stop # 关闭(临时生效)
chkconfig iptables on # 开机自启
chkconfig iptables off # 永久关闭
- 端口配置
- 开放端口:
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT # 临时开放8080端口
service iptables save # 保存规则(永久生效)
- 查看规则:
iptables -L -n # 列出所有规则
三、其他配置
- SELinux 相关
- 若端口开放后仍无法访问,需检查 SELinux 状态:
sestatus # 查看状态
setenforce 0 # 临时禁用(仅调试用)
- 切换防火墙类型(CentOS 7)
- 若需使用 iptables 替代 firewalld:
systemctl stop firewalld # 停止firewalld
systemctl disable firewalld
yum install iptables-services # 安装iptables服务
systemctl enable iptables
systemctl start iptables
四、注意事项
- 永久生效规则:所有操作需添加 --permanent 参数(firewalld)或执行 service iptables save(iptables)才能持久化35。
- 规则优先级:firewalld 的 zone 配置需根据网络环境选择(如 public 为默认对外区域)8。
- 日志排查:若端口未生效,可检查 /var/log/messages 或 journalctl -u firewalld 查看防火墙日志