Linux服务器查看运行端口的实用方法主要包括:netstat命令(如netstat -tlnp查看TCP监听端口及进程)、ss命令(高效替代netstat,ss -tlnp显示更详细信息)、lsof命令(lsof -i:端口号查看指定端口占用进程)、nmap扫描工具(nmap -sT 本机IP检测本地开放端口),netstat适合传统环境,ss性能更优,lsof便于精准定位进程,nmap支持全面端口检测,根据需求选择工具,可快速排查端口状态及关联进程。
在Linux服务器管理中,查看当前运行的端口号是一项基础且重要的操作,无论是排查服务异常、监控网络连接,还是进行安全审计(如发现未授权端口开放),都需要快速掌握端口状态,本文将介绍几种常用的Linux命令,帮助你高效查看服务器运行的端口信息,涵盖传统工具与现代优化方案,适合不同场景需求。
为什么需要查看运行端口?
在开始具体操作前,先明确查看端口的常见场景:
- 服务状态确认:确认Web服务(如Nginx、Apache)、数据库(如MySQL、Redis)等是否正常监听指定端口;
- 网络问题排查:当无法访问服务时,检查端口是否被占用或防火墙拦截;
- 安全审计:发现服务器上是否有异常端口开放,防范恶意程序或未授权服务;
- 资源优化:查看大量端口占用情况,定位资源消耗异常的进程。
常用端口查看方法
方法1:使用netstat——传统经典工具
netstat是Linux系统中传统的网络状态查看工具,功能全面,兼容性好,在大多数发行版中默认安装。

基础命令及参数
netstat [选项]
常用选项说明:
-t:显示TCP端口;-u:显示UDP端口;-l:仅显示监听(Listening)状态的端口(即服务正在等待连接的端口);-n:以数字形式显示地址和端口(不解析域名和服务名,速度更快);-p:显示占用端口的进程ID(PID)和进程名(需root权限);-a:显示所有端口(包括监听和非监听状态)。
实用示例
-
查看所有监听的TCP和UDP端口(最常用)
netstat -tuln
输出示例:
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN udp 0 0 0.0.0.0:68 0.0.0.0:*Proto:协议(TCP/UDP);Local Address:本地IP和端口(0.0.0表示监听所有IP);State:状态(LISTEN表示监听中)。
-
查看所有端口(包括已连接的)及进程信息
sudo netstat -anp
输出示例(部分):
Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 192.168.1.100:22 10.0.0.5:12345 ESTABLISHED 1234/sshd tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 5678/javaESTABLISHED:表示已建立的连接;PID/Program name:占用端口的进程ID和名称(需root权限才显示)。
优缺点
- 优点:参数丰富,输出信息全面,兼容所有主流Linux发行版;
- 缺点:在端口数量较多时,查询速度较慢(需遍历内核协议栈)。
方法2:使用ss——现代高效替代工具
ss是iproute2工具包的一部分,从Linux 2.6.27版本起逐渐取代netstat,它的优势在于查询速度更快(直接从内核获取 socket 信息),输出更简洁,已成为现代Linux系统的首选工具。
基础命令及参数
ss [选项]
常用选项与netstat类似,部分参数略有差异:
-t:TCP端口;-u:UDP端口;-l:仅显示监听端口;-n:数字形式显示;-p:显示进程信息(需root权限);-a:所有端口;-4:仅显示IPv4端口;-6:仅显示IPv6端口。
实用示例
- 查看所有监听的TCP/UDP端口(推荐日常使用)
ss -tuln
输出示例(与
netstat -tuln类似,但格式更紧凑):
文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

