Linux中查看监听中的(占用)端口(netstat,ss,lsof)
· 阅读需 4 分钟
在对网络连接或特定应用做故障排查时,最先要做的一般是确认系统中正在使用的端口,还有查看哪些应用监听特定的端口。
本文介绍了如何用 netstat
, ss
, lsof
等命令找出哪些服务在侦听哪些端口。以下说明适用于所有基于Linux或Unix的操作系统。
netstat
命令
netstat
命令可提供网络连接相关的信息。想要查看所有监听中的TCP或UDP端口,包含使用端口和套接字状态的服务,可使用如下命令
sudo netstat -tunlp
命令中的选项参数有如下含义
-
-t
-显示TCP端口。 -
-u
-显示UDP端口。 -
-n
-显示数字地址而不是解析主机。 -
-l
-仅显示监听端口。 -
-p
-显示监听进程的PID和名称。仅当以root用户或 sudo 用户身份运行命令时,才会显示此信息。
将会输出如下信息:
对于我们,比较重要的几个列是:
Proto
- 套接字使用的协议Local Address
- 进程所监听的IP地址及端口号PID/Program name
- PID和进程名称
也可以使用grep命令对查询结果做一些筛选。例如,查看哪个进程使用TCP协议监听端口22,可执行如下命令
sudo netstat -tnlp | grep :22