Skip to content
章节导航

Linux 防火墙相关操作

防火墙状态

安装防火墙

shell
yum install firewalld firewalld-config

查看防火墙状态

systemctl status firewalld 或者 firewall-cmd --state

开启防火墙

  • 临时性开启(重启后失效): systemctl start firewalld
  • 永久性开启(即开机启动): systemctl enable firewalld

关闭防火墙

  • 临时性关闭(重启后恢复): systemctl stop firewalld
  • 永久性关闭(即禁止开机启动): systemctl disable firewalld

重启防火墙

重新加载防火墙的所有配置并应用新的规则: systemctl restart firewalld

重新加载防火墙配置

  • 不中断现有连接: firewall-cmd --reload
  • 中断所有连接(类似重启服务): firewall-cmd --complete-reload

区域(Zone)管理

查看所有可用的区域

shell
firewall-cmd --get-zones

查看当前激活的区域

shell
firewall-cmd --get-active-zones

查看指定区域的详细信息

shell
# public是示例区域名,需替换为实际区域名
firewall-cmd --zone=public --list-all

设置默认区域

shell
# public是示例区域名
firewall-cmd --set-default-zone=public

添加区域

shell
# myzone是自定义区域名
firewall-cmd --permanent --new-zone=myzone

删除区域

shell
# myzone是自定义区域名
firewall-cmd --permanent --delete-zone=myzone

端口(Port)管理

查看已开放的端口

shell
# 显示当前防火墙会话中开放的端口,包含永久或临时开放的端口,未指定区域则默认为public区域
firewall-cmd --list-ports

# 列出在 firewalld 防火墙配置中永久设置的端口
firewall-cmd --permanent --list-ports

添加指定开放端口

shell
### 永久开放:80是端口号,tcp是协议类型
firewall-cmd --permanent --zone=public --add-port=80/tcp 
### 开放端口范围
firewall-cmd --permanent --zone=public --add-port=9000-9008/tcp

移除指定开放端口

shell
#### 永久移除
firewall-cmd --permanent --zone=public --remove-port=80/tcp
#### 移除端口范围
firewall-cmd --permanent --zone=public --remove-port=9000-9008/tcp

查询指定开放端口状态

shell
firewall-cmd --zone=public --query-port=80/tcp

服务(Service)管理

查看已启用的服务

shell
# 未指定区域则默认为public区域
firewall-cmd --list-services

查看所有可用的服务

shell
firewall-cmd --get-services

添加指定服务(永久添加)

shell
# http是服务名
firewall-cmd --permanent --zone=public --add-service=http

移除指定服务(永久移除)

shell
firewall-cmd --permanent --zone=public --remove-service=http

其他更多

https://www.cnblogs.com/xyh9039/p/18361890