Linux 防火墙firewalld、iptables详解——端口放行、服务放行、规则删除、开机自启
2026/6/23 13:36:47 网站建设 项目流程

一、防火墙基础说明

CentOS7及以上默认使用firewalld动态防火墙,CentOS6为iptables,两者不能同时运行。防火墙默认拦截所有外部入站请求,服务启动后外网依旧无法访问,必须放行对应端口/服务。


二、firewalld 防火墙(CentOS7+默认,主推)

1. 防火墙基础启停命令

# 启动防火墙 systemctl start firewalld # 关闭防火墙 systemctl stop firewalld # 查看状态 systemctl status firewalld # 设置开机自启/关闭开机自启 systemctl enable firewalld systemctl disable firewalld

2. 核心放行命令(永久生效,无需重启防火墙)

# 格式:放行端口,永久生效 firewall-cmd --permanent --add-port=端口号/tcp # 放行服务(直接写服务名,无需记端口) firewall-cmd --permanent --add-service=服务名 # 重载防火墙,规则立即生效 firewall-cmd --reload

3. 生产实战常用放行案例

# 放行ssh 22端口 firewall-cmd --permanent --add-port=22/tcp # 放行http 80、https 443端口 firewall-cmd --permanent --add-port=80/tcp firewall-cmd --permanent --add-port=443/tcp # 放行mysql 3306端口 firewall-cmd --permanent --add-port=3306/tcp # 直接放行nginx服务 firewall-cmd --permanent --add-service=http # 放行一段连续端口 firewall-cmd --permanent --add-port=8080-8090/tcp # 重载生效 firewall-cmd --reload
# 查看所有放行规则 firewall-cmd --list-all # 删除指定端口规则 firewall-cmd --permanent --remove-port=3306/tcp # 删除服务规则 firewall-cmd --permanent --remove-service=http # 重载生效 firewall-cmd --reload

三、iptables 传统防火墙(兼容旧版本)

1. 切换iptables,关闭默认firewalld

# 关闭firewalld systemctl stop firewalld systemctl disable firewalld # 安装iptables服务 yum install iptables-services -y # 启动并开机自启 systemctl start iptables systemctl enable iptables

2. iptables放行端口实操

# 放行80端口 iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 放行22端口 iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 查看所有规则 iptables -L -n # 保存规则(防止重启失效) service iptables save

四、生产环境防火墙规范

  1. 生产环境禁止关闭防火墙,最小化放行业务端口

  2. 优先使用firewalld,命令简单、支持动态重载

  3. 放行端口必须加--permanent永久参数,否则重启失效

  4. 规则修改后必须执行reload重载

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询