CentOS如何查询已开放端口及对应服务?

在CentOS系统中,开放端口的查询是一项常见且重要的操作,无论是配置Web服务、数据库服务,还是进行安全审计,准确了解当前系统的端口开放情况都是必不可少的,本文将详细介绍在CentOS系统中查询开放端口的多种方法,包括使用firewalldiptables等工具,并解释相关的概念和注意事项。

CentOS如何查询已开放端口及对应服务?

理解端口与防火墙的基本概念

在深入探讨查询方法之前,首先需要明确几个基本概念,端口是计算机与外部通信的出入口,每个端口对应一种服务或应用程序,在CentOS系统中,防火墙负责控制网络流量的进出,决定哪些端口可以开放,哪些端口需要关闭,CentOS 7及更高版本默认使用firewalld作为防火墙管理工具,而CentOS 6及更早版本则使用iptables,了解这些工具的基本原理,有助于更好地查询和管理端口。

使用firewalld查询开放端口

firewalld是CentOS 7及更高版本的默认防火墙管理工具,支持动态管理规则而无需重启服务,要查询firewalld的开放端口,可以通过以下几种方式实现。

查看所有开放的端口和服务

使用firewall-cmd命令可以方便地查询当前防火墙的配置,执行以下命令可以查看所有永久开放的端口和服务:

sudo firewall-cmd --list-ports
sudo firewall-cmd --list-services

第一条命令会显示所有开放的端口号,例如80/tcp443/tcp;第二条命令则显示开放的服务名称,例如httphttps,如果需要查看当前运行的规则(包括临时规则),可以添加--running参数。

查看特定区域(Zone)的开放端口

firewalld将网络划分为不同的区域(如public、home、work等),每个区域可以有不同的规则,要查看特定区域的开放端口,可以使用以下命令:

sudo firewall-cmd --zone=public --list-ports

如果需要查看所有区域的配置,可以使用--get-active-zones命令先确定当前活动的区域,然后针对具体区域进行查询。

查询端口是否属于某个服务

端口是以服务的形式添加到防火墙中的,要查询某个端口对应的服务名称,可以使用以下命令:

sudo firewall-cmd --info-service=http

这将显示http服务的详细信息,包括包含的端口和协议。

CentOS如何查询已开放端口及对应服务?

使用iptables查询开放端口

对于CentOS 6或某些特殊配置的CentOS 7系统,可能仍使用iptables作为防火墙工具。iptables是基于规则的防火墙,查询其开放端口需要直接查看规则链。

查看所有iptables规则

执行以下命令可以查看iptables的所有规则:

sudo iptables -L -n -v
  • -L表示列出规则;
  • -n表示以数字形式显示地址和端口,避免DNS解析;
  • -v表示显示详细信息,如数据包数量和字节数。

在输出中,ACCEPT表示允许通过的流量,DROPREJECT表示拒绝,重点关注ACCEPT规则对应的端口和协议。

查看特定链(Chain)的规则

iptables的规则分为不同的链(如INPUT、OUTPUT、FORWARD),如果只想查看进入本机的流量规则(INPUT链),可以使用以下命令:

sudo iptables -L INPUT -n -v

查询端口是否被iptables规则允许

如果只想快速检查某个端口是否开放,可以使用以下命令:

sudo iptables -L INPUT | grep <端口号>

检查80端口是否开放:

sudo iptables -L INPUT | grep 80

如果输出中包含ACCEPT且目标端口为80,则表示该端口已开放。

使用ss或netstat查询监听端口

除了防火墙工具,还可以使用ssnetstat命令查询系统中正在监听的端口,这些命令显示的是应用程序层面的监听状态,可能与防火墙规则不完全一致。

CentOS如何查询已开放端口及对应服务?

使用ss命令查询监听端口

ssnetstat的替代工具,功能更强大且速度更快,执行以下命令可以查看所有监听的TCP和UDP端口:

sudo ss -tulnp
  • -t表示TCP端口;
  • -u表示UDP端口;
  • -l表示只显示监听的端口;
  • -n表示以数字形式显示;
  • -p显示占用端口的进程ID和名称。

使用netstat命令查询监听端口

如果习惯使用netstat,可以执行以下命令:

sudo netstat -tulnp

输出结果中,LISTEN状态表示端口正在监听等待连接。

综合查询与注意事项

在实际操作中,可能需要结合多种方法来全面了解端口开放情况,先使用ssnetstat查看哪些端口正在监听,然后使用firewalldiptables确认这些端口是否被防火墙允许,需要注意以下几点:

  1. 防火墙与监听状态的区别:防火墙开放端口仅允许流量通过,但应用程序是否在该端口监听需要另外确认。
  2. SELinux的影响:如果启用SELinux,可能会阻止某些端口的服务,即使防火墙允许,可以使用semanage port命令查询SELinux管理的端口。
  3. 临时与永久规则firewalld的规则分为运行时规则和永久规则,修改时需要明确使用--permanent参数。

相关问答FAQs


解答:这种不一致可能由多种原因导致。firewall-cmd --list-ports显示的是防火墙允许的端口,而ss -tulnp显示的是应用程序实际监听的端口,如果防火墙允许某个端口,但应用程序未在该端口监听,则后者不会显示,SELinux可能会阻止应用程序绑定到某些端口,即使防火墙允许。firewalld的服务(如http)可能包含多个端口,而ss命令会显示所有监听的端口,包括防火墙未明确允许的。

问题2:如何确认某个端口是否被防火墙和应用程序同时允许?
解答:要全面确认端口的开放状态,可以分两步进行,使用firewall-cmd --list-portsiptables -L INPUT -n -v检查防火墙是否允许该端口,使用ss -tulnp | grep <端口号>检查是否有应用程序在该端口监听,如果两者都显示端口开放,则说明端口已正确配置,如果防火墙允许但应用程序未监听,需要检查应用程序的配置;如果应用程序监听但防火墙未允许,则需要添加防火墙规则。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-12-13 13:52
下一篇 2025-12-13 13:54

相关推荐

  • CentOS系统如何安装并启用BBR加速?

    在CentOS系统中安装并启用BBR(Bottleneck Bandwidth and RTT)拥塞控制算法,可以有效提升网络传输效率,降低延迟,尤其在高带宽、高延迟的网络环境中表现突出,BBR通过精确测量带宽和RTT(往返时间),动态调整发送速率,避免网络拥塞,从而优化数据传输性能,以下是详细的安装步骤和配置……

    2025-11-07
    007
  • centos6下如何配置odbc连接mysql驱动?

    CentOS 6作为一款广泛使用的Linux发行版,其与MySQL数据库的ODBC连接配置在企业级应用中具有重要意义,通过ODBC(Open Database Connectivity),应用程序可以实现对MySQL数据库的标准化访问,提高跨平台兼容性和开发效率,本文将详细介绍在CentOS 6系统下配置MyS……

    2025-11-22
    004
  • 服务器怎样购买_购买ECS服务器

    购买ECS服务器,可登录云服务商网站,选择ECS产品,根据需求配置硬件和网络,然后完成支付流程。

    2024-07-18
    0021
  • CentOS hosts.allow文件如何配置才能限制特定IP访问?

    配置文件的作用与重要性在CentOS系统中,hosts.allow是一个关键的网络访问控制配置文件,位于/etc/目录下,它与hosts.deny文件协同工作,基于TCP Wrappers机制实现主机访问控制,通过合理配置hosts.allow,管理员可以精确允许或拒绝特定IP地址、主机名或网络段的访问请求,从……

    2025-12-14
    0010

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信