在CentOS系统中,管理开放端口是确保服务正常运行和系统安全的重要任务,无论是部署Web服务器、数据库服务还是其他应用程序,正确查看和配置端口都是必不可少的操作,本文将详细介绍在CentOS系统中查看开放端口的多种方法,包括使用命令行工具、防火墙配置以及端口监听状态检查,帮助用户全面掌握端口管理技能。

使用ss和netstat命令查看端口状态
ss和netstat是Linux系统中常用的网络工具,用于查看网络连接、路由表和接口统计信息,在CentOS 7及以上版本中,ss命令已逐渐取代netstat,成为首选的网络诊断工具。
使用ss命令查看开放端口
ss命令语法简洁,功能强大,可以通过不同的选项筛选端口信息,使用ss -tulnp命令可以列出所有TCP(-t)和UDP(-u)类型的监听端口,并显示对应的进程ID和程序名称:
ss -tulnp
参数说明如下:
- -t:显示TCP端口
- -u:显示UDP端口
- -l:仅显示监听端口
- -n:以数字形式显示地址和端口
- -p:显示进程ID和程序名称
使用netstat命令查看开放端口
虽然ss更推荐使用,但netstat在旧版CentOS系统中仍被广泛使用,执行netstat -tulnp命令可达到与ss类似的效果:
netstat -tulnp
通过这两个命令,用户可以快速定位系统中哪些端口正在被监听,以及哪些程序占用了这些端口。
使用firewalld管理防火墙规则
CentOS 7及以上版本默认使用firewalld作为防火墙管理工具,要查看firewalld允许的端口,需要结合firewall-cmd命令和ss/netstat命令。
查看firewalld已开放的端口
使用以下命令可以查看firewalld当前允许的端口列表:
firewall-cmd --list-ports
该命令会显示所有通过firewalld开放的端口号,格式为端口号/协议类型(如80/tcp)。
检查端口是否在firewalld规则中
如果需要确认特定端口是否已开放,可以使用以下命令:

firewall-cmd --query-port=端口号/协议类型
检查8080端口是否开放:
firewall-cmd --query-port=8080/tcp
返回值为yes表示端口已开放,no表示未开放。
使用lsof命令查看端口占用情况
lsof(list open files)是一个强大的工具,可以列出系统中被打开的文件、目录和网络连接,通过lsof,用户可以更详细地查看端口占用情况。
查看特定端口的占用进程
使用以下命令可以查看指定端口被哪个进程占用:
lsof -i:端口号
查看80端口的占用情况:
lsof -i:80
该命令会显示进程ID、用户、网络类型和状态等信息。
列出所有监听端口
使用lsof -i -P -n | grep LISTEN命令可以列出所有处于监听状态的端口及其对应的进程:
lsof -i -P -n | grep LISTEN
-P选项表示不解析端口号,-n选项表示不解析主机名。
使用/proc文件系统查看端口信息
Linux系统的/proc文件系统提供了一个访问内核数据的接口,通过读取/proc/net/tcp和/proc/net/udp文件,可以查看TCP和UDP端口的详细信息。

查看TCP端口
执行以下命令可以查看所有TCP端口的状态:
cat /proc/net/tcp
输出结果中的每一行代表一个TCP连接,包含本地地址、远程地址、状态和端口等信息,需要注意的是,端口号以十六进制显示,需要转换为十进制才能识别。
查看UDP端口
类似地,查看UDP端口可以使用:
cat /proc/net/udp
这种方法适合需要直接查看内核网络状态的高级用户。
端口状态分类与常见问题
在查看端口时,了解端口的不同状态有助于判断服务是否正常运行,以下是常见的端口状态及其含义:
| 状态 | 说明 | 
|---|---|
| LISTEN | 端口正在监听连接请求 | 
| ESTABLISHED | 端口已建立连接 | 
| TIME_WAIT | 连接正在等待关闭 | 
| CLOSE_WAIT | 远程端关闭连接,本地端未关闭 | 
如果发现端口未开放,可能是由于服务未启动、防火墙阻止或端口被占用,需依次检查服务状态、防火墙规则和端口占用情况。
相关问答FAQs
Q1: 如何区分CentOS系统中的监听端口和已连接端口?
A1: 使用ss -tulnp或netstat -tulnp命令可以查看所有监听端口(状态为LISTEN),对于已连接端口,可以使用ss -t或netstat -t命令,筛选状态为ESTABLISHED的连接。lsof -i | grep ESTABLISHED命令也能直接显示已建立的连接。
Q2: 为什么端口已开放但外部无法访问?
A2: 可能的原因包括:1)防火墙规则未正确配置,需检查firewalld或iptables设置;2)服务绑定地址为127.0.0.1(本地回环地址),导致外部无法访问,需修改服务配置为0.0.0.0;3) 云服务器安全组未开放对应端口,需在云平台控制台添加入站规则,建议依次排查这些因素以解决问题。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
 
 
 
  
  
  
  
 
发表回复