编写一条firewalld
时间: 2025-08-27 13:17:09 AIGC 浏览: 9
### 如何编写和配置 firewalld 规则
#### 使用命令行工具 `firewall-cmd` 配置规则
可以通过 `firewall-cmd` 工具动态地添加、删除或修改防火墙规则。以下是几个常见的操作:
1. **查看当前活动的区域和服务**
可以通过以下命令查看当前活动的区域以及允许的服务列表:
```bash
firewall-cmd --get-active-zones
firewall-cmd --list-all
```
2. **开放指定端口**
如果需要开放某个特定端口,可以使用如下命令:
```bash
firewall-cmd --add-port=80/tcp --permanent
```
这里的 `--permanent` 参数表示永久生效,需重启服务才能使更改生效[^1]。
3. **移除已开放的端口**
若要关闭某端口,则可执行以下命令:
```bash
firewall-cmd --remove-port=80/tcp --permanent
```
4. **启用或禁用服务**
对于一些常用服务(如 SSH),可以直接通过服务名称进行管理:
启用服务:
```bash
firewall-cmd --add-service=http --permanent
```
禁用服务:
```bash
firewall-cmd --remove-service=http --permanent
```
5. **重新加载配置**
修改完成后记得重新加载防火墙配置以应用更改:
```bash
firewall-cmd --reload
```
#### 编辑 XML 文件手动配置 Direct 规则
如果希望通过直接编辑 XML 文件的方式自定义规则,可以修改 `/etc/firewalld/direct.xml` 文件。例如,在该文件中添加一条新的 iptables 规则后保存并重新加载防火墙即可激活新规则[^1]。
#### NAT 和端口转发配置
Firewalld 支持简单的 NAT 功能,包括伪装和端口转发。下面是一个端口转发的例子:
```bash
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.100 --permanent
```
这条命令会将发往本机 80 端口的所有 TCP 流量重定向到 IP 地址为 192.168.1.100 的设备上的 8080 端口[^4]。
---
#### 富规则 (Rich Rules)
当需要更加复杂的条件匹配时,可以利用 rich rules 来构建精细控制策略。比如只允许来自某一网段访问 HTTP 服务:
```bash
firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="http" accept'
```
---
### 总结
以上介绍了几种方法用于编写和配置 firewalld 规则,既可通过图形化界面也可以借助命令行工具完成大部分日常需求;而对于特殊场景下的定制化需求,则推荐采用 direct 或 rich rule 方式实现更灵活的功能扩展[^3]。
相关问题
阅读全文
相关推荐



















