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
剑鸣秋朔