在CentOS系统中查看网络端口是系统管理和网络故障排查中的基本操作,掌握多种查看端口的方法能够帮助管理员更高效地监控网络状态、识别服务运行情况以及发现潜在的安全问题,本文将详细介绍在CentOS系统中查看网络端口的多种命令及其使用场景,包括ss、netstat、lsof等工具,并针对不同需求提供具体操作示例和注意事项。

使用ss命令查看网络端口
ss是Linux系统中替代netstat的现代化工具,具有更快的查询速度和更丰富的功能,它是iproute2包的一部分,在大多数CentOS系统中默认安装。
基本语法
ss命令的基本语法为ss [选项] [过滤条件],常用选项包括:
-t:显示TCP端口-u:显示UDP端口-l:只显示监听端口-n:以数字形式显示地址和端口,避免DNS解析-p:显示进程ID和进程名-a:显示所有端口(包括监听和非监听)
常用示例
-
查看所有监听端口:
ss -tulnp
此命令会显示所有TCP和UDP的监听端口,并关联到对应的进程信息。
-
查看指定端口的监听状态:
ss -tulnp | grep ':80'
通过管道结合
grep命令,可以快速筛选特定端口(如HTTP服务的80端口)的监听情况。 -
显示所有连接(包括监听和非监听):
ss -tanp
适用于需要全面了解系统网络连接的场景,如排查异常连接。
优势与适用场景
ss命令的优势在于其高效性和对大规模网络连接的支持,适合在服务器负载较高或需要频繁查询网络状态时使用,相比netstat,ss在处理大量连接时性能更优。
使用netstat命令查看网络端口
netstat是传统的网络工具,虽然在新版CentOS中逐渐被ss替代,但部分系统管理员仍习惯使用它,尤其是在兼容旧版脚本时。
基本语法
netstat命令的基本语法为netstat [选项],常用选项与ss类似:
-t:TCP端口-u:UDP端口-l:监听端口-n:数字形式-p:显示进程ID-a:所有端口
常用示例
-
查看监听端口:

netstat -tulnp
功能与
ss -tulnp等效,但查询速度较慢。 -
查看网络统计信息:
netstat -s
显示TCP、UDP等协议的详细统计信息,适用于网络性能分析。
-
显示内核路由表:
netstat -r
可用于排查路由配置问题。
注意事项
netstat在CentOS 7及以后版本中不再是默认安装的工具,需手动通过yum install net-tools安装,由于性能限制,建议仅在需要兼容旧版工具或特定功能时使用。
使用lsof命令查看端口关联进程
lsof(list open files)是一个强大的工具,不仅可以查看文件打开情况,还能通过端口关联到具体的进程。
基本语法
lsof查看端口的语法为lsof -i [协议]:[端口],常用选项:
-i:指定网络地址-P:不显示端口号-n:不解析主机名
常用示例
-
查看指定端口的进程:
lsof -i :80
显示占用80端口的进程信息,包括PID、用户等。
-
查看所有监听TCP端口:
lsof -iTCP -sTCP:LISTEN
通过组合参数筛选出所有TCP监听端口。

适用场景
lsof适合在已知端口但需要快速定位关联进程时使用,尤其在排查端口占用冲突问题中非常有效。
结合firewalld和semanage管理端口
在CentOS中,端口管理不仅涉及监听状态,还需考虑防火墙和安全策略。
检查防火墙规则
使用firewall-cmd命令查看防火墙允许的端口:
firewall-cmd --list-ports
若端口未开放,需执行以下命令开放端口:
firewall-cmd --add-port=80/tcp --permanent firewall-cmd --reload
检查SELinux端口标签
SELinux可能限制端口的访问,使用semanage命令查看或添加端口标签:
semanage port -l | grep http
若端口未定义,可通过以下命令添加:
semanage port -a -t http_port_t -p tcp 80
综合排查步骤
当遇到端口无法访问的问题时,可按以下步骤排查:
- 使用
ss或netstat确认端口是否处于监听状态。 - 通过
lsof检查端口是否被正确进程占用。 - 验证防火墙和SELinux配置是否允许端口访问。
- 检查目标服务的日志(如
/var/log/nginx/error_log)定位具体错误。
相关问答FAQs
Q1: 为什么ss命令比netstat更快?
A1: ss命令直接从内核获取网络连接信息,而netstat需要通过/proc文件系统解析数据,因此在处理大量连接时ss的效率更高。ss支持更精细的过滤条件,适合复杂网络环境下的查询需求。
Q2: 如何区分TCP和UDP端口的使用情况?
A2: 使用ss -t或netstat -t可查看TCP端口,ss -u或netstat -u查看UDP端口。ss -tulnp会同时显示两种协议的端口,并通过State列(如LISTEN)标识监听状态,对于UDP,由于是无连接协议,通常只显示监听状态而非连接状态。