在服务器管理中,了解系统当前开放的端口及运行状态是日常运维的基础操作,对于使用CentOS系统的用户而言,掌握多种端口查看方法不仅能提升效率,还能帮助排查网络问题或验证服务配置,以下介绍几种常用工具及使用场景,帮助用户快速定位端口信息。
一、通过netstat命令查看端口

netstat
(Network Statistics)是Linux系统中经典的网络状态分析工具,能够显示网络连接、路由表、接口统计等信息,虽然部分新版本系统已逐渐用ss
命令替代,但其功能仍被广泛使用。
基础用法:
- netstat -tunlp
-t
:显示TCP端口
-u
:显示UDP端口
-n
:以数字形式显示地址和端口
-l
:仅显示监听状态的端口

-p
:显示进程ID及名称
输出示例:
- Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
- tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1234/sshd
此结果表示SSH服务(进程ID 1234)正在监听22端口,若需过滤具体端口,可结合grep
命令:
- netstat -tunlp | grep 80
二、使用ss命令替代netstat
ss
(Socket Statistics)是netstat
的升级版,解析速度更快且功能更强大,推荐在较新的CentOS版本中使用。
常用参数组合:

- ss -tulnp
参数含义与netstat
一致,查看所有TCP监听端口:
- ss -tln
若需查看已建立的连接:
- ss -t state established
**三、通过lsof命令定位端口进程
lsof
(List Open Files)可列出系统打开的文件信息,由于Linux中端口本质是文件句柄,因此可通过该命令关联端口与进程。
查看所有监听端口:
- lsof -i -P -n | grep LISTEN
-i
:显示网络连接
-P
:禁止将端口号解析为服务名称
-n
:禁用主机名解析
示例输出:
- sshd 1234 root 3u IPv4 0xffff 0t0 TCP *:22 (LISTEN)
此结果表示SSH进程(PID 1234)占用了22端口,若需查询特定端口(如80):
- lsof -i :80
**四、nmap扫描本地或远程端口
nmap
是专业的网络探测工具,常用于检查端口开放情况,尤其适合验证防火墙规则是否生效。
安装nmap:
- yum install nmap -y
扫描本机所有TCP端口:
- nmap -sT localhost
扫描远程主机特定端口范围:
- nmap -p 1-1000 192.168.1.100
需注意,频繁扫描远程主机可能触发安全机制,建议仅在授权后使用。
**五、查看防火墙放行端口
端口开放不仅依赖服务配置,还需防火墙允许流量通过,CentOS 7及以上版本默认使用firewalld
管理防火墙规则。
查看已放行的端口:
- firewall-cmd --list-ports
临时开放端口(重启后失效):
- firewall-cmd --add-port=8080/tcp
永久生效需添加--permanent
参数:
- firewall-cmd --permanent --add-port=8080/tcp
- firewall-cmd --reload
**六、常见问题与排查思路
1、端口显示监听但无法访问
检查防火墙是否放行,或服务是否绑定到0.0.0.0
而非127.0.0.1
。
2、端口冲突导致服务启动失败
使用ss
或lsof
查找占用端口的进程,终止无关进程或修改服务配置。
3、TIME_WAIT状态过多
通常由频繁短连接引起,可通过调整内核参数优化,例如修改/etc/sysctl.conf
中的net.ipv4.tcp_tw_reuse
。
**个人观点
实际运维中,端口管理需兼顾效率与安全性,建议养成定期检查端口开放情况的习惯,避免残留无用服务增加攻击面,对于生产环境,优先使用ss
和lsof
组合查询,其响应速度更快且输出信息直观,若需批量操作,可编写脚本自动化处理,例如定期生成端口使用报告并发送至管理员邮箱,合理规划防火墙策略,遵循最小权限原则,仅开放必要的业务端口,可显著降低安全风险。