firewall-cmd 命令生成器
生成用于配置firewalld区域、服务及端口的firewall-cmd命令(适用于RHEL/CentOS/Fedora)。
开始使用 firewall-cmd
## 什么是 firewall-cmd?
`firewall-cmd` 是 `firewalld` 的命令行客户端,后者是 RHEL、CentOS、Fedora 以及其他 Red Hat 系列发行版中使用的动态防火墙管理工具。它将规则分组到**区域**中(如 `public`、`home`、`dmz`),并可以通过`--permanent`立即应用更改或使其永久生效。
## 使用方法
1. **选择操作**:`add-service`、`add-port`、`remove-service`、`remove-port`、`list-all`、`reload` 或 `permanent-query`。 2. **设置值**:对于针对服务/端口的操作,需填写 `service`(例如 `http`)或 `port`(例如 `80/tcp`)字段。 3. **选择区域**(可选):默认为默认区域(通常是 `public`)。 4. **使其永久生效**:勾选 `--permanent`以确保设置在重启后仍然存在,然后运行 `reload`。 5. **复制并运行**:在命令前加上 `sudo`。
常用操作与选项
### `--add-service=NAME` / `--remove-service=NAME` 打开或关闭在`/usr/lib/firewalld/services`中定义的命名服务(例如`http`、`https`、`ssh`)。这些服务知晓自身的协议与端口信息。
### `--add-port=PORT/PROTO` / `--remove-port=PORT/PROTO` 打开或关闭任意端口,例如`8080/tcp`。当不存在服务定义时可使用此功能。
### `--list-all` 列出某个区域中所有处于活动状态的内容:服务、端口、源地址、接口以及默认目标。
### `--reload` 将永久配置重新加载到运行时环境中——在`--permanent`进行更改后执行此操作,以便更改立即生效。
### `--zone=NAME` 指定特定区域(`public`、`home`、`internal`、`dmz`、`block`、`trusted`)。若未指定,则firewalld会使用默认区域。
### `--permanent` 将更改写入磁盘,使其在重启后依然存在。未通过`--permanent`处理的更改仅存在于运行时环境中,会在重新加载或重启时丢失。最佳实践是:先使用`--permanent`应用规则,再不使用该参数应用一次,或者先使用`--permanent`再使用`--reload`。
▶firewalld 与 iptables、nftables 之间有什么关系?
▶为什么我的 --permanent 规则没有立即生效?
▶如何在公共区域永久启用 HTTP 和 HTTPS?
如果这个工具对你有帮助的话,请考虑请我喝杯咖啡。
请给我买杯咖啡吧。