当前位置:首页 > 主机动态 > 正文

服务器查看防火墙端口

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

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系发行版提供的简化防火墙工具,操作直观。

服务器查看防火墙端口 第1张

服务器查看防火墙端口 第2张

  • 查看规则状态: 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 防火墙 → 高级设置。
  • 操作步骤
    1. 在“入站规则”或“出站规则”中,点击右侧“新建规则”;
    2. 选择“端口”,根据需求添加TCP或UDP及端口号;
    3. 完成规则后,可在规则列表中查看端口状态(如“已启用”或“已禁用”)。
  • 查看已开放端口:在“入站规则”列表中,筛选“端口”类型的规则,即可查看所有已开放的端口及对应的应用程序。

使用命令行工具(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

    若需查看所有已开放的端口,可简化为:

    服务器查看防火墙端口 第3张

    Get-NetFirewallRule -Enabled True | Where-Object {$_.Direction -eq "Inbound"} | Select-Object LocalPort, Protocol

防火墙端口状态排查的实用技巧

  1. 区分“监听端口”与“防火墙开放端口”

    端口被进程监听(如netstat -tuln显示LISTEN状态)仅表示应用程序已启动,但若防火墙未开放该端口,外部流量仍无法访问,需结合防火墙规则确认双向状态。

  2. 日志分析定位问题

    • Linux:通过journalctl -u firewalld(firewalld)或/var/log/iptables.log(iptables)查看防火墙日志;
    • Windows:在“事件查看器”中定位“Windows Defender 防火墙”日志,分析被拦截的端口流量。
  3. 端口冲突检测

    若新服务无法启动,可能是端口被占用,使用lsof -i:端口号(Linux)或netstat -ano | findstr "端口号"(Windows)查看占用进程,并决定是否终止或更换端口。

  4. 安全配置建议

    • 遵循“最小权限原则”,仅开放业务必需的端口;
    • 定期审计防火墙规则,删除冗余或过期的端口开放策略;
    • 对高危端口(如3389、22)限制访问IP,使用SSH密钥认证替代密码登录。
    • 查看服务器防火墙端口状态是网络安全运维的基础工作,不同操作系统和防火墙工具提供了多样化的操作方式,无论是通过Linux的iptables、firewalld、ufw命令,还是Windows的图形界面或PowerShell工具,核心均在于理解“端口-协议-规则”的对应关系,掌握这些方法的同时,结合日志分析和安全配置,才能有效保障服务器的稳定运行与安全防护,在实际操作中,建议根据服务器环境选择合适的工具,并定期进行端口状态审计,避免因配置疏漏导致的安全风险。

0