使用netstat可查看Linux端口占用情况,执行netstat -tuln列出监听端口,加-p参数显示进程信息,结合grep过滤特定端口,推荐用ss或lsof替代。

在Linux系统中,查看端口占用情况是排查服务冲突、调试网络应用的常见操作。其中,netstat 是一个经典且实用的命令行工具,可以显示网络连接、路由表、接口统计信息以及端口使用情况。
1. 使用 netstat 查看端口占用
执行以下命令可以列出当前所有正在监听的端口和已建立的连接:
netstat -tuln参数说明:
- -t:显示TCP连接
- -u:显示UDP连接
- -l:仅显示处于监听状态(LISTEN)的端口
- -n:以数字形式显示地址和端口号(不解析主机名和服务名)
输出示例:
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
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
从上面可以看出,SSH(22)、MySQL(3306)、HTTP(80)端口正在被监听。
2. 查看具体是哪个进程占用了端口
加上 -p 参数可以显示占用端口的进程PID和程序名:
netstat -tulnp注意:需要 root 或 sudo 权限才能看到其他用户的进程信息。
输出中会多出一列 “PID/Program name”,例如:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1234/nginx这表示 PID 为 1234 的 nginx 进程占用了 80 端口。
3. 查看特定端口是否被占用
如果只想检查某个端口(如 80)的占用情况,可以结合 grep 过滤:
netstat -tulnp | grep :80也可以使用:
netstat -an | grep :80这样能快速判断该端口是否处于监听或连接状态。
4. 其他替代命令(现代推荐)
虽然 netstat 很常用,但在较新的 Linux 发行版中,它已被标记为“过时”。推荐使用以下替代工具:
- ss 命令:更快速、功能更强的 socket 统计工具 ss -tulnp | grep :80
- lsof 命令:查看打开的文件和网络连接 lsof -i :80
这条命令会直接显示使用 80 端口的进程信息。
基本上就这些。netstat 虽然老但依然有效,掌握它的常用参数能快速定位端口问题。实际使用中可根据系统环境选择 ss 或 lsof 提高效率。










