# CentOS 7 firewalld 使用笔记

- 原文地址：https://www.kuddy.cn/archives/42
- 发布时间：2016-06-19 15:54:17
- 更新时间：2026-05-18 02:41:17
- 分类：Linux
- 标签：CentOS, 安全

> 整理 CentOS 7 firewalld 的基础概念、zone 信任级别、服务启停、端口放行、服务管理、地址伪装和端口转发命令。

---

CentOS 7 引入了 firewalld 服务，用 zone 的方式管理不同网络连接的信任级别。它支持 IPv4、IPv6 和网桥，可以通过 firewall-cmd 或图形界面动态管理 netfilter 规则。

## 安装

```
yum install firewalld
yum install firewall-config
```

## 服务管理

```
systemctl start firewalld
systemctl enable firewalld
systemctl stop firewalld
systemctl disable firewalld
```

## 查看状态与 zone

```
firewall-cmd --state
firewall-cmd --get-active-zones
firewall-cmd --get-zone-of-interface=eth0
firewall-cmd --zone=public --list-interfaces
firewall-cmd --zone=public --list-all
firewall-cmd --get-service
firewall-cmd --get-service --permanent
```

## 管理规则

```
firewall-cmd --panic-on
firewall-cmd --panic-off
firewall-cmd --query-panic
firewall-cmd --reload
firewall-cmd --complete-reload
```

## 设置默认 zone 与接口

```
firewall-cmd --zone=public --add-interface=eth0 --permanent
firewall-cmd --set-default-zone=public
```

## 管理端口

```
firewall-cmd --zone=dmz --list-ports
firewall-cmd --zone=dmz --add-port=8080/tcp
firewall-cmd --zone=public --add-port=5060-5059/udp --permanent
```

## 管理服务

```
firewall-cmd --zone=work --add-service=smtp
firewall-cmd --zone=work --remove-service=smtp
```

## 配置地址伪装

```
firewall-cmd --zone=external --query-masquerade
firewall-cmd --zone=external --add-masquerade
firewall-cmd --zone=external --remove-masquerade
```

## 端口转发

打开端口转发前，需要先开启 masquerade。

```
firewall-cmd --zone=external --add-masquerade
firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=3753
firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toaddr=192.168.1.100
firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.168.1.100
```