在CentOS系统中管理防火墙是服务器安全的重要环节,虽然CentOS默认使用firewalld作为防火墙工具,但许多用户偏好UFW(Uncomplicated Firewall)的简洁性,UFW最初为Ubuntu设计,提供了一个易于使用的命令行界面,帮助管理员快速配置规则,本文将详细介绍如何在CentOS上安装和使用UFW,并重点说明查看端口状态的方法。

安装UFW在CentOS系统
在CentOS上安装UFW需要确保系统已更新,打开终端,输入以下命令更新软件包列表:
sudo yum update
安装EPEL(Extra Packages for Enterprise Linux)仓库,因为UFW不在默认CentOS仓库中:
sudo yum install epel-release
安装UFW软件包:
sudo yum install ufw
安装完成后,启动UFW服务并设置为开机自启:
sudo systemctl enable ufw sudo systemctl start ufw
UFW已准备就绪,需要注意的是,在启用UFW前,建议先允许SSH连接,以免被锁在服务器外,运行以下命令允许SSH端口:
sudo ufw allow ssh
或者直接指定端口号,
sudo ufw allow 22/tcp
基本UFW命令概览
UFW的核心优势在于其简单性,以下是一些常用命令,帮助您快速上手:
- 启用UFW:
sudo ufw enable - 禁用UFW:
sudo ufw disable - 重置规则:
sudo ufw reset - 查看帮助:
sudo ufw --help
启用UFW后,防火墙会开始拦截未允许的流量,请谨慎操作,避免影响关键服务。
查看端口状态的方法
查看端口状态是UFW的常见操作,它能让您了解当前开放的端口和规则详情,主要命令是ufw status。
运行以下命令查看基本状态:

sudo ufw status
输出通常会显示类似以下内容:
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere 这里,“Status: active”表示UFW已启用。“To”列显示端口和协议,“Action”列显示规则动作(如ALLOW或DENY),“From”列显示源地址,这个输出一目了然地展示了允许的流量规则。
如果您需要更详细的信息,可以使用详细模式:
sudo ufw status verbose
这会显示额外细节,如默认策略和日志设置。
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp ALLOW IN Anywhere
80/tcp ALLOW IN Anywhere
443/tcp ALLOW IN Anywhere 在详细输出中,您可以看到默认策略:拒绝所有传入连接、允许所有传出连接,以及路由设置,这有助于理解整体安全配置。
对于编号格式的规则列表,可以使用:
sudo ufw status numbered
输出会为每条规则添加编号,便于管理:
Status: active
To Action From
-- ------ ----
[1] 22/tcp ALLOW IN Anywhere
[2] 80/tcp ALLOW IN Anywhere
[3] 443/tcp ALLOW IN Anywhere 编号功能在删除或修改规则时非常有用,例如删除第一条规则可使用sudo ufw delete 1。
高级端口查看技巧
除了基本状态查看,UFW还支持过滤和特定端口查询,如果您只想查看TCP端口,可以结合grep命令:
sudo ufw status | grep tcp
这会筛选出所有TCP相关规则,帮助快速定位信息,同样,您也可以查看UDP端口:

sudo ufw status | grep udp
另一个实用命令是检查已添加的规则列表:
sudo ufw show added
这会显示所有自定义规则,而不包括默认设置,对于调试或审计,这个命令能节省时间。
如果您需要查看防火墙日志以监控端口活动,可以检查UFW日志文件,默认路径是/var/log/ufw.log,使用以下命令查看:
sudo tail -f /var/log/ufw.log
这会实时显示日志更新,帮助您跟踪连接尝试和规则触发情况。
常见用例与注意事项
在实际应用中,查看端口状态常用于以下场景:
- 部署新服务时,确认端口是否开放。
- 安全检查,确保没有多余端口暴露。
- 故障排除,诊断网络连接问题。
假设您在CentOS上运行一个Web服务器,需要确保端口80和443开放,运行sudo ufw status后,如果看到这些端口允许访问,说明配置正确,如果未显示,您可以添加规则:
sudo ufw allow 80/tcp sudo ufw allow 443/tcp
然后再次检查状态以确认。
需要注意的是,UFW规则是基于顺序处理的,先匹配的规则优先,在添加新规则时,务必考虑顺序影响,CentOS系统可能同时运行其他防火墙工具如firewalld,如果冲突,建议禁用其中一个以避免问题,您可以使用sudo systemctl stop firewalld和sudo systemctl disable firewalld来停止firewalld服务。
个人观点
从我的经验来看,UFW在CentOS上是一个高效的工具,尤其适合中小型项目,它的命令直观,减少了学习曲线,让管理员能专注于核心任务,虽然firewalld在CentOS生态中更原生,但UFW的简洁性值得尝试,我建议初学者从UFW入手,逐步过渡到更高级工具,无论选择哪种方式,定期检查端口状态都是维护服务器安全的关键习惯,通过实践,您会发现UFW不仅能提升效率,还能增强系统防护能力。

