lsof和netstat

2022/1/17 7:08:27

本文主要是介绍lsof和netstat,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

  • lsof(list open files)
    • 通过某个进程号显示该进程打开的文件
    • 列出某个程序所打开的文件信息
    • 列出所有的网络连接
    • 列出被进程号为1234的进程所打开的所有IPV4 network files
    • 列出端口为:20,21,80相关的所有文件信息,且每隔3秒重复执行
  • netstat
    • 参数说明
  • 参考

lsof(list open files)

是一个查看当前系统文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,该文件描述符提供了大量关于这个应用程序本身的信息。

lsof打开的文件可以是:

  • 普通文件
  • 目录
  • 网络文件系统的文件
  • 字符或设备文件
  • (函数)共享库
  • 管道,命名管道
  • 符号链接
  • 网络文件(例如:NFS file、网络socket,unix域名socket)
  • 还有其它类型的文件,等等

通过某个进程号显示该进程打开的文件

lsof -p 11968

列出某个程序所打开的文件信息

lsof -c mysql

列出所有的网络连接

lsof -i 
可以指定传输协议
lsof -i tcp/udp

列出谁在使用某个端口
lsof -i :3306

列出被进程号为1234的进程所打开的所有IPV4 network files

lsof -i 4 -a -p 1234

列出端口为:20,21,80相关的所有文件信息,且每隔3秒重复执行

lsof -i :20,21,80 -r 3

netstat

参数说明

-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令

而在MacOS上,-f需要加上地址族,-p需要加上协议TCP或者UDP等

通常用法:

显示所有的TCP连接 Linux
netstat -atnp

显示网卡列表
netstat -i

Mac
如果需要查询inet:netstat -anvf inet
如果需要查询TCP:netstat -anvp tcp
如果需要查询UDP:netstat -anvp udp

windows
netstat -a | findstr "8080"

参考

lsof 一切皆文件
MacOS 端口占用情况,其中 netstat 命令与 CentOS 略有出入
Linux netstat命令



这篇关于lsof和netstat的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程