一、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是一款非常强大和实用的工具,能够帮助我们快速了解当前系统中的网络连接状态,便于我们进行系统优化和网络调试等操作。