linux(centos7)常用命令 开启关闭防火墙

目录

什么是防火墙

在 CentOS 7 中,默认的防火墙服务是 firewalld,它取代了之前版本中的 iptablesfirewalld 使用了名为"firewall-cmd"的命令行工具来管理防火墙规则。

firewalld 的关键概念包括:

  • 区域 (Zones): 用于定义不同信任级别的网络连接。你可以为不同的网络接口或来源 IP 分配不同的区域,每个区域都有自己的规则集。
  • 服务 (Services): 预定义的规则集,用于允许流量对应于常见的服务和应用程序,如 HTTP、HTTPS、SSH 等。
  • 端口 (Ports): 可以开放或关闭特定的 TCP 或 UDP 端口来允许或阻止流量。
  • 临时和永久配置 (Runtime and Permanent Configuration) : firewalld 允许你进行临时(运行时)或永久更改。临时更改在服务或系统重启后不生效,而永久更改需要重新加载防火墙配置或重启服务。

开启/关闭防火墙

bash 复制代码
# 开启防火墙
sudo systemctl start firewalld

# 关闭防火墙
sudo systemctl stop firewalld

# 设置防火墙开机启动
sudo systemctl enable firewalld

# 设置防火墙开机不启动
sudo systemctl disable firewalld

# 重启防火墙服务
sudo systemctl restart firewalld

查看防火墙状态

bash 复制代码
sudo systemctl status firewalld

端口管理

bash 复制代码
# 添加一个永久的开放端口规则
sudo firewall-cmd --permanent --add-port=XXXX/tcp

# 移除一个永久的开放端口规则
sudo firewall-cmd --permanent --remove-port=XXXX/tcp

# 立即开放一个端口(直到下一次重新加载)
sudo firewall-cmd --add-port=XXXX/tcp

# 立即关闭一个端口(直到下一次重新加载)
sudo firewall-cmd --remove-port=XXXX/tcp

XXXX 替换为您希望开放或关闭的端口号。对于 UDP 端口,将 tcp 替换为 udp

重新加载防火墙规则

在更改了防火墙规则之后,您需要重新加载 firewalld 来应用这些更改:

bash 复制代码
sudo firewall-cmd --reload

这将应用所有永久规则,并保持当前活动的会话。

服务管理

与端口不同,服务是预先定义的端口和协议组合。您可以管理服务而不是单独的端口:

bash 复制代码
# 开放一个服务
sudo firewall-cmd --permanent --add-service=http

# 关闭一个服务
sudo firewall-cmd --permanent --remove-service=http

# 重新加载防火墙来应用更改
sudo firewall-cmd --reload

查看开放的端口和服务

要查看当前开放的端口和服务,可以使用以下命令:

bash 复制代码
# 查看当前活动区域的开放端口
sudo firewall-cmd --list-ports

# 查看当前活动区域的开放服务
sudo firewall-cmd --list-services

# 查看所有永久规则(需要重新加载后生效)
sudo firewall-cmd --list-all --permanent
相关推荐
一直会游泳的小猫2 小时前
homebrew
linux·mac·工具·包管理
Agent产品评测局2 小时前
制造业生产调度自动化落地,完整步骤与避坑指南:2026企业级智能体选型与实战全景
运维·人工智能·ai·chatgpt·自动化
寒秋花开曾相惜2 小时前
(学习笔记)4.2 逻辑设计和硬件控制语言HCL(4.2.1 逻辑门&4.2.2 组合电路和HCL布尔表达式)
linux·网络·数据结构·笔记·学习·fpga开发
狂奔的sherry2 小时前
一次由 mount 引发的 Linux 文件系统“错觉”
linux·运维·服务器
志栋智能2 小时前
超自动化巡检:让合规与审计变得轻松简单
运维·网络·人工智能·自动化
小黑要努力2 小时前
智能音箱遇到的问题(一)
linux·运维·git
好度3 小时前
自动化教程-封装浏览器驱动
运维·自动化
ch3nyuyu3 小时前
静态库和动态库的制作
linux·运维·开发语言
程序员老邢3 小时前
【产品底稿 07】商助慧 Admin 运维模块落地:从 “能跑” 到 “能运维”,3 个页面搞定日常排障
java·运维·经验分享·spring boot·后端
一口Linux3 小时前
Linux C编程 | 从0实现telnet获取程序终端控制权
linux·运维·c语言