系统操作
加入开机启动
systemctl enable firewalld
启、停
systemctl start firewalld
systemctl stop firewalld
重启、重载
systemctl restart firewalld
firewall-cmd --reload
firewalld 动态管理规则集,所以它不会破坏现有的连接和会话。
查看运行状态
systemctl status firewall-cmd
配置文件位置
/etc/firewalld/{services,zones}/*.xml 优先级最高,permanent模式生效的策略会放到这里
/lib/firewalld/{services,zones}/*.xml 优先级要低些,是一些默认配置,可以当做模板使用
每个预定义的区域、服务等都有一个对应的文件:
/usr/lib/firewalld/{zones,services...}
查看
查看防火墙状态,是否是running
firewall-cmd
重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd
列出支持的zone
firewall-cmd
查看当前使用的区
firewall-cmd
查看网卡所在区域:
firewall-cmd
查看正在活动的区域:
firewall-cmd
查看所有规则明细:
firewall-cmd
firewall-cmd
查看端口添加的规则
firewall-cmd
查看ftp服务是否支持,返回yes或者no
firewall-cmd
查看指定区域(public)的以端口方式添加的规则
firewall-cmd
查看指定区域(public)的以服务名添加的规则
firewall-cmd
查看指定区域的所有规则
firewall-cmd
查看firewalldl默认支持的所有服务名列表
firewall-cmd
查看只通过服务名添加的规则[默认当前激活的公共区域]
firewall-cmd
修改
添加放行两种方式
1 runtime 临时配置 修改规则马上生效 但是重启则丢失
例如:
firewall-cmd --add-service=ftp
2 permanent 持久配置 修改后需要reload 重载才生效
例如:
firewall-cmd --zone=public --add-port=80/tcp --permanent
添加放行端口
firewall-cmd --add-port=8080/tcp
firewall-cmd --add-port={8081,8082}/tcp
firewall-cmd --add-port={8090..8095}/tcp
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=4990-4999/udp #添加4990-4999 udp端口
#添加常用端口,不指定--zone,默认会添加到默认的区域
添加放行的服务 (服务名称进行放行 --> 本质还是对应的端口)
firewall-cmd --add-service=http
firewall-cmd --add-service=ftp #开放 ftp 服务规则
firewall-cmd --add-service=mysql # 开放mysql端口规则
firewall-cmd --add-service=ssh # 开放ssh端口规则
删除端口
firewall-cmd --remove-port={8090..8095}/tcp
firewall-cmd --zone=public --remove-port=80/tcp --permanent
端口转发-本地
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8000 --permanent
将同一台服务器上80端口的流量转发至8080
firewall-cmd --list-forward-ports 查看转发
firewall-cmd --remove-forward-port=port=80:proto=tcp:toport=8000 --permanent
firewall-cmd --reload 重载生效
端口转发-ip
将端口转发到另外一台服务器上,在需要的区域中激活 masquerade
firewall-cmd --zone=public --add-masquerade
将本地的80端口的流量转发到IP地址为:10.0.10.15 的远程服务器上的8080端口
。。。。。。
伪装IP
firewall-cmd --query-masquerade # 检查是否允许伪装IP
firewall-cmd --add-masquerade # 允许防火墙伪装IP
firewall-cmd --remove-masquerade # 禁止防火墙伪装IP
自定义一个服务名称
cd /usr/lib/firewalld/services/
cp http.xml nginx.xml
firewall-cmd --reload
firewall-cmd --add-service=nginx
修改服务当前所使用区域:
firewall-cmd --get-default-zone=public
修改默认区
firewall-cmd --set-default-zone=internal
危险命令:[立即生效]
拒绝所有包:firewall-cmd --panic-on
取消拒绝状态: firewall-cmd --panic-off
查看是否拒绝: firewall-cmd --query-panic
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)