在服务器管理中,防火墙端口状态是保障网络安全与业务正常运行的关键环节,无论是排查服务异常、配置安全策略,还是进行系统审计,掌握查看防火墙端口的方法都是运维人员的必备技能,本文将系统介绍不同操作系统环境下查看防火墙端口的操作步骤、常用命令及注意事项,帮助读者高效掌握端口状态管理技巧。

Linux系统下查看防火墙端口状态
Linux系统作为服务器主流操作系统,其防火墙工具因发行版不同而有所差异,主要包括iptables、firewalld和ufw等,以下是针对不同工具的具体操作方法。
基于iptables的防火墙(CentOS 6/7、RHEL等)
iptables是传统Linux系统中广泛使用的防火墙工具,通过iptables -L -n -v命令可以查看详细的规则列表,其中包含端口信息。
- 基本命令:
iptables -L -n -v
参数说明:
-L列出规则链,-n以数字形式显示地址和端口(避免DNS解析延迟),-v显示详细信息(如数据包数量、字节大小)。 - 过滤特定端口:若需查看特定端口(如80端口)的规则,可结合
grep过滤:iptables -L -n -v | grep 80
- 查看监听端口:若需确认端口是否被进程监听,可搭配
netstat或ss命令:netstat -tuln | grep 80 # 或 ss -tuln | grep 80
-t表示TCP端口,-u表示UDP端口,-l仅显示监听端口,-n以数字形式显示。
基于firewalld的防火墙(CentOS 7+、RHEL 8+、Fedora等)
firewalld是CentOS 7及以上版本默认的动态防火墙管理工具,支持区域(Zone)和服务的动态配置。
- 查看已开放端口:
firewall-cmd --list-ports
该命令会列出当前区域所有已开放的端口,格式为
端口号/协议(如80/tcp)。
- 查看服务规则:若通过服务名(如http、https)管理端口,可使用:
firewall-cmd --list-services
- 查看详细信息:结合
--zone参数可指定区域查看规则(默认为public区域):firewall-cmd --zone=public --list-ports
- 实时监控规则变化:若需观察防火墙规则的动态变化,可添加
--permanent参数查看永久生效的规则,或使用watch命令实时刷新:watch -n 1 firewall-cmd --list-ports
基于ufw的防火墙(Ubuntu/Debian等)
ufw(Uncomplicated Firewall)是Ubuntu等Debian系发行版提供的简化防火墙工具,操作直观。
- 查看规则状态:
sudo ufw status
默认显示启用的规则及对应的端口/服务,如
80/tcp (ALLOW IN)。 - 查看详细编号:若需删除或修改规则,可添加
verbose参数查看规则编号:sudo ufw status verbose
- 检查端口是否开放:通过
ufw命令直接检测端口状态:sudo ufw status numbered | grep 80
Windows系统下查看防火墙端口状态
Windows服务器通常使用“Windows Defender 防火墙”或第三方安全软件,以下介绍系统自带防火墙的查看方法。
使用图形界面(GUI)操作
- 路径:控制面板 → 系统和安全 → Windows Defender 防火墙 → 高级设置。
- 操作步骤:
- 在“入站规则”或“出站规则”中,点击右侧“新建规则”;
- 选择“端口”,根据需求添加TCP或UDP及端口号;
- 完成规则后,可在规则列表中查看端口状态(如“已启用”或“已禁用”)。
- 查看已开放端口:在“入站规则”列表中,筛选“端口”类型的规则,即可查看所有已开放的端口及对应的应用程序。
使用命令行工具(netsh和PowerShell)
- netsh命令:
netsh advfirewall firewall show rule name=all | findstr "80"
该命令会显示所有与80端口相关的防火墙规则,包括协议、本地端口、操作等信息。
- PowerShell命令(推荐,功能更强大):
Get-NetFirewallRule -DisplayName "*80*" | Select-Object Name, DisplayName, Enabled, Direction, LocalPort
若需查看所有已开放的端口,可简化为:
Get-NetFirewallRule -Enabled True | Where-Object {$_.Direction -eq "Inbound"} | Select-Object LocalPort, Protocol
防火墙端口状态排查的实用技巧
区分“监听端口”与“防火墙开放端口”:
端口被进程监听(如netstat -tuln显示LISTEN状态)仅表示应用程序已启动,但若防火墙未开放该端口,外部流量仍无法访问,需结合防火墙规则确认双向状态。
日志分析定位问题:
- Linux:通过
journalctl -u firewalld(firewalld)或/var/log/iptables.log(iptables)查看防火墙日志; - Windows:在“事件查看器”中定位“Windows Defender 防火墙”日志,分析被拦截的端口流量。
- Linux:通过
端口冲突检测:
若新服务无法启动,可能是端口被占用,使用lsof -i:端口号(Linux)或netstat -ano | findstr "端口号"(Windows)查看占用进程,并决定是否终止或更换端口。安全配置建议:
- 遵循“最小权限原则”,仅开放业务必需的端口;
- 定期审计防火墙规则,删除冗余或过期的端口开放策略;
- 对高危端口(如3389、22)限制访问IP,使用SSH密钥认证替代密码登录。
查看服务器防火墙端口状态是网络安全运维的基础工作,不同操作系统和防火墙工具提供了多样化的操作方式,无论是通过Linux的iptables、firewalld、ufw命令,还是Windows的图形界面或PowerShell工具,核心均在于理解“端口-协议-规则”的对应关系,掌握这些方法的同时,结合日志分析和安全配置,才能有效保障服务器的稳定运行与安全防护,在实际操作中,建议根据服务器环境选择合适的工具,并定期进行端口状态审计,避免因配置疏漏导致的安全风险。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/188457.html
