LSOF(List Open Files)是一个命令行监控工具,用于类似Linux/Unix的操作系统。LSOF命令提供有关活动文件和当前正在访问它们的进程的信息。
LSOF命令行工具允许系统管理员和开发人员:
- 确定当前正在使用特定文件或端口的进程,在端口冲突的情况下尤其重要
- 检测已删除但仍被进程打开的文件,这可能导致不必要的空间消耗;LSOF命令用于识别和解决此类情况
- 帮助有效地排除错误,如“端口已在使用中”
- 跟踪网络活动和开放的网络连接以进行监控
- 调查文件访问模式,有助于识别潜在的安全漏洞
在本教程中,您将学习如何使用LSOF命令监视实时端口。
LSOF命令的基本语法
LSOF命令的语法如下:
$lsof [选项][名称]
选项是与LSOF命令一起使用的标志。名称表示文件名、ID(进程ID)、用户名或网络文件(IPv4、IPv6)。根据提供的选项,LSOF命令会显示与这些名称对应的打开文件的列表。
使用LSOF命令实时监控端口
LSOF默认包含在许多Linux系统中。您必须手动下载并安装其中一个可用的包,如果它没有安装。要检查系统上的LSOF安装,请使用以下命令显示已安装的版本:
$lsof-v
需要注意的是,要使用具有适当权限的LSOF命令,有关进程和网络连接的某些信息可能需要提升的超级用户权限,并且您可能需要使用"sudo"以管理权限运行该命令。
列出网络文件
当您运行带有“-i”选项的LSOF命令时,它将显示有关具有网络连接的进程的信息,例如侦听套接字或已建立的连接。
$lsof-i
上一个命令显示有关进程名称(COMMAND)、进程ID(PID)、用户(USER)、文件描述符(FD)、连接类型(TYPE)、本地和远程地址以及连接状态的信息。您应该看到以下输出:
列出TCP连接
您可以根据特定条件(例如特定类型的连接或端口)过滤输出。例如,您可以使用"lsof—itcp"仅列出与TCP连接关联的进程。
$lsof—i tcp:1—1024
上一个命令过滤有关在指定端口范围1到1024内打开的TCP连接的进程的信息。这对于识别哪些进程正在使用与公共服务相关联的众所周知的端口非常有用。
实时监控特定端口
使用LSOF,您可以实时监控特定端口。例如,您希望监视端口80上与“HTTP”相关的进程,该端口每3秒更新一次。为此,请使用以下命令实时监控端口80:
$lsof—i:80—r3
实时监控SSHD端口22
要监视在端口22上运行的所有SSHD连接,请运行以下命令:
$sudo lsof-i:22-r3
此命令每隔3秒持续监控和显示有关端口22上的网络连接的实时信息。这对于跟踪实时发生的更改(如新的SSH连接或断开)特别有用。
实时监控端口范围
若要实时监视在指定端口范围1到1024内具有打开TCP连接的进程的信息,可以使用以下命令:
$lsof-i tcp:1-1024-r3
实时监控所有端口
您可以使用LSOF命令实时监控所有网络连接。例如,您希望连续运行监控并每隔5秒显示网络连接的实时信息。
$lsof—i—r5
以下输出包括进程及其关联网络套接字的实时详细信息,每隔5秒:
同样,您也可以使用LSOF命令仅监视“已建立的”连接:
$lsof—i—E—r10
结论
在本教程中,我们学习了如何使用LSOF命令实时监控端口。此命令还可以帮助系统管理员和其他Linux用户监视网络连接,包括所有活动或打开的端口。我们希望本指南将帮助您了解如何使用LSOF命令与不同选项,并实时监控不同的端口和进程。