您的位置:

深入了解 Linux lsof-i 工具

一、lsof-i是什么

Linux下的lsof是一个非常强大和有用的工具,能够列出当前系统中打开的所有文件。其中,lsof-i是lsof的一个选项,它可以列出每个打开文件的进程ID和用户ID。

命令格式:lsof -i [protocol:port]

例如:lsof -i :80 将列出所有使用端口号80的程序和进程。

二、lsof-i常用参数与说明

1. -i 参数

lsof -i tcp:80
lsof -i udp:53,67-68

-i 后面可以跟着TCP/UDP/IPv4/IPv6等网络协议,还可以接端口号和端口区间。

2. -n 参数

lsof -i :80 -n

-n 参数用于不使用DNS解析,加速lsof命令速度。

3. -P 参数

lsof -i :80 -nP

-P 参数可以用来打印出端口号。

4. -c 参数

lsof -i -c nginx

-c 参数可用于指定进程名或者进程ID号。

三、lsof-i案例分析

1. 统计某个端口连接数及连接的IP地址

lsof -i :80 | grep ESTABLISHED | awk '{print $1,$3}' | sort | uniq -c

上述命令表示,列出端口号80的全部进程,过滤出状态为ESTABLISHED的连接,并统计出连接数及连接的IP地址。

2. 查看网络文件状态

lsof /etc/passwd

此命令将输出/etc/passwd这个文件的所有状况,例如是否正在使用,如果正在使用,是哪个用户正在使用。

3. 列出端口被哪些进程占用

lsof -i :22

此命令将输出使用22端口的所有进程信息。

4. 找出特定用户开启的网络连接

lsof -u username -i

-u 参数可用于限定特定用户开启的网络连接,语法:lsof -u <username> -i

5. 查看指定IP地址的网络连接情况

lsof -i @192.168.1.1

-i 参数后面也可以跟主机名或者IP地址,用来查看该主机的网络连接情况。

四、总结

本文主要对Linux下的lsof-i进行了详细介绍,包括其基本命令格式、常用参数以及几个实用案例。lsof-i是一款非常强大和实用的工具,能够帮助我们快速了解当前系统中的网络连接状态,便于我们进行系统优化和网络调试等操作。