使用netstat -a查看所有端口状态;2. 用netstat -tulnp显示进程和PID;3. 结合grep过滤特定端口;4. 分别用-t或-u查看TCP或udp端口,推荐用ss替代提升效率。

在linux系统中,netstat 是一个常用的网络状态查看工具,可以用来检查端口占用情况、连接状态、路由表等信息。要查看端口占用,结合合适的参数能快速定位问题。
1. 查看所有监听和非监听的端口
使用以下命令可以列出系统中所有正在监听(LISTEN)以及已建立连接的端口:
netstat -a
该命令会显示所有TCP和UDP端口的状态,但输出内容较多,适合配合筛选使用。
2. 显示程序名和PID(推荐使用)
要查看是哪个进程占用了某个端口,加上 -p 参数可以显示进程ID和程序名:
netstat -tulnp
各参数含义如下:
- -t:显示TCP连接
- -u:显示UDP连接
- -l:仅显示监听状态的端口(LISTEN)
- -n:以数字形式显示地址和端口号(不解析主机名和服务名)
- -p:显示占用端口的进程PID和程序名
这个组合是最常用的,能清晰看到哪些服务在监听哪些端口。
3. 查找特定端口是否被占用
如果只想检查某个特定端口(如80或3306),可以结合 grep 进行过滤:
netstat -tulnp | grep :80
注意冒号前加反斜杠转义或直接写冒号,在grep中匹配具体端口。这能快速判断apache、nginx等是否在运行。
4. 查看特定协议的端口占用
若只关心TCP端口:
netstat -tnlp
只查看UDP端口:
netstat -unlp
这样可以减少干扰信息,提高排查效率。
基本上就这些常用方法。注意:现代Linux发行版中,ss 命令性能更好,可作为 netstat 的替代(例如 ss -tulnp)。但在大多数场景下,netstat 依然足够实用。


