centos中防火墙命令使用
时间: 2025-01-01 13:29:24 浏览: 5
### CentOS 防火墙命令使用教程
#### 查看防火墙状态
为了确认防火墙当前的状态,可以执行以下命令:
```bash
sudo firewall-cmd --state
```
这条指令会返回`running`表示正在运行,如果未激活则不会有任何输出[^4]。
#### 启动防火墙服务
当需要启动防火墙时,应使用如下命令:
```bash
sudo systemctl start firewalld.service
```
这将立即启用防火墙保护机制[^3]。
#### 关闭防火墙服务
要临时关闭防火墙而不影响下次开机自动加载的情况,可输入下列命令:
```bash
sudo systemctl stop firewalld.service
```
此操作仅对本次会话有效,在系统重启之后防火墙仍会被重新启动[^1]。
#### 设置防火墙随系统启动/不随系统启动
对于希望永久改变防火墙是否跟随系统一起启动的需求,有两条对应的命令分别用于开启和禁用该功能:
- 开启:`sudo systemctl enable firewalld.service`
- 禁用:`sudo systemctl disable firewalld.service`
这些设置会在每次计算机重置后生效。
#### 添加新端口到防火墙规则中
假设想要允许外部访问服务器上的HTTP (80/tcp) 和 HTTPS (443/tcp),那么可以通过下面的方式添加相应的端口号至公共区域内的入站流量策略里:
```bash
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
```
这里的关键在于`--permanent`参数意味着所做的更改将会保存下来并持久化应用;如果不加这个选项,则修改只适用于当前session期间。
#### 移除已存在的端口规则
若不再需要某些特定的服务对外开放接口,比如之前加入过的SSH连接(22/tcp),现在决定移除它的话,应该这样写:
```bash
sudo firewall-cmd --zone=public --remove-port=22/tcp --permanent
```
同样地,记得加上`--permanent`以确保变动能够长期保留下去。
#### 刷新防火墙配置使之即时生效
每当进行了任何关于端口或其他资源的增删动作以后,都需要告诉firewalld去更新其内部缓存的数据结构从而让最新的安全政策得以实施。为此目的而设计的一条简单却重要的语句就是:
```bash
sudo firewall-cmd --reload
```
通过这种方式可以让所有的变更立刻得到体现,无需担心延迟问题。
#### 查询现有开放端口列表
最后但并非最不重要的是,了解目前有哪些端口处于可用状态是非常有用的。利用下述方法可以获得一份清晰明了的结果报告:
```bash
sudo firewall-cmd --list-ports
```
上述命令将以简洁的形式展示所有被授权接收外来请求的目标地址范围。
阅读全文