Linux防火墙关闭和开启命令详解(2025最新版)

在Linux系统运维和服务器管理中,防火墙是保障系统安全的重要组件。然而,在开发调试、部署服务或排查网络问题时,我们常常需要临时或永久地开启或关闭防火墙。本文将全面解析Linux系统中常用的防火墙管理命令,涵盖firewalldiptables等主流工具,帮助你快速掌握防火墙操作,提升系统管理效率。

Linux防火墙关闭和开启命令详解(2025最新版)


Linux防火墙简介

Linux系统常用的防火墙工具有两种:

  1. firewalld:现代主流Linux发行版(如CentOS 7+、RHEL 7+、Fedora等)默认使用的动态防火墙管理工具,支持区域(zone)和运行时配置。

  2. iptables:传统防火墙工具,功能强大但配置相对复杂,仍被部分旧系统或特定场景使用。

⚠️ 注意:操作防火墙需要root权限或使用sudo命令。


使用 firewalld 管理防火墙(推荐方式)

firewalld 是当前大多数Linux发行版的默认防火墙服务,使用 systemctl 命令进行管理。

1. 启动防火墙

sudo systemctl start firewalld

2. 停止防火墙(临时关闭)

sudo systemctl stop firewalld

🔹 此命令立即生效,但系统重启后会恢复原状态。

3. 查看防火墙状态

sudo systemctl status firewalld

或使用firewalld专用命令:

sudo firewall-cmd --state

4. 设置开机自启/禁用

  • 开机自动启动防火墙

    sudo systemctl enable firewalld
  • 禁止开机启动(永久关闭):

    sudo systemctl disable firewalld

5. 重启防火墙服务

sudo systemctl restart firewalld

使用 firewall-cmd 配置端口规则

在防火墙开启状态下,我们通常通过开放特定端口来允许服务访问。

1. 查看已开放端口

sudo firewall-cmd --zone=public --list-ports

2. 开放指定端口(永久生效)

# 开放80端口(HTTP)
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent

# 开放443端口(HTTPS)
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent

# 批量开放端口(如40000-45000)
sudo firewall-cmd --zone=public --add-port=40000-45000/tcp --permanent

3. 关闭已开放端口

# 关闭80端口
sudo firewall-cmd --zone=public --remove-port=80/tcp --permanent

# 批量关闭端口
sudo firewall-cmd --zone=public --remove-port=40000-45000/tcp --permanent

4. 重新加载配置

重要:每次修改端口规则后,必须执行以下命令使配置生效。

sudo firewall-cmd --reload

传统方式:使用 iptables(适用于旧系统)

部分旧版Linux系统仍使用iptables作为防火墙工具。

1. 启动/停止 iptables 服务

# 启动
sudo systemctl start iptables

# 停止
sudo systemctl stop iptables

# 开机自启
sudo systemctl enable iptables

# 禁用开机启动
sudo systemctl disable iptables

💡 在某些系统中,也可使用:

sudo service iptables start
sudo service iptables stop

2. 临时关闭防火墙(不推荐长期使用)

sudo /etc/init.d/iptables stop

⚠️ 注意:该路径在现代系统中可能已废弃。


常见问题与注意事项

❓ 为什么关闭防火墙后仍无法访问服务?

  1. 检查服务是否真正启动(如systemctl status httpd)。

  2. 确认端口监听状态:netstat -tuln | grep :端口号 或 ss -tuln

  3. 检查SELinux是否限制访问:getenforce,必要时临时关闭:setenforce 0

❗ 安全提醒

  • 生产环境不建议完全关闭防火墙,应通过开放必要端口来管理访问。

  • 修改防火墙规则前,建议备份当前配置。

  • 使用--permanent参数确保规则重启后依然有效。


操作命令(firewalld)
启动防火墙systemctl start firewalld
停止防火墙systemctl stop firewalld
开机启用systemctl enable firewalld
开机禁用systemctl disable firewalld
开放端口firewall-cmd --add-port=80/tcp --permanent
重载配置firewall-cmd --reload

掌握Linux防火墙的开启、关闭与端口管理命令,是每个系统管理员和开发者的必备技能。根据你的系统版本选择合适的工具(推荐使用firewalld),既能保障安全,又能灵活应对各种网络需求。


📌 关注我,获取更多Linux运维、服务器安全与DevOps实战技巧!

发表评论

评论列表

还没有评论,快来说点什么吧~