Linux - lsof显示 tcp,udp 的端口和进程

简介: lsof显示 tcp,udp 的端口和进程

@[toc]
在这里插入图片描述

功能

lsof(list open files)是一个列出当前系统打开文件的工具。 lsof 需要访问核心内存和各种文件,需要以 root 用户的身份运行。

语法

语法格式:lsof -i:端口号

示例

lsof -i 显示 tcp,udp 的端口和进程等相关

[root@VM-24-3-centos ~]# lsof -i |more
COMMAND     PID USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
java        398 root   15u  IPv6 151193676      0t0  TCP *:webcache (LISTEN)
java        398 root   27u  IPv6 160128834      0t0  TCP VM-24-3-centos:44226->43.250.33.235:https (CLOSE_WAIT)
java        398 root   28u  IPv6 160128874      0t0  TCP VM-24-3-centos:44234->43.250.33.235:https (CLOSE_WAIT)
java        398 root   29u  IPv6 160128943      0t0  TCP VM-24-3-centos:44248->43.250.33.235:https (CLOSE_WAIT)
java        398 root   30u  IPv6 160128959      0t0  TCP VM-24-3-centos:44254->43.250.33.235:https (ESTABLISHED)
java        398 root   31u  IPv6 160130075      0t0  TCP VM-24-3-centos:44280->43.250.33.235:https (ESTABLISHED)
java        398 root   32u  IPv6 160130186      0t0  TCP VM-24-3-centos:44296->43.250.33.235:https (ESTABLISHED)
java        398 root   33u  IPv6 160130475      0t0  TCP VM-24-3-centos:44318->43.250.33.235:https (ESTABLISHED)
java        398 root   34u  IPv6 160131452      0t0  TCP VM-24-3-centos:44356->43.250.33.235:https (ESTABLISHED)
java        398 root   45u  IPv6 160128687      0t0  TCP VM-24-3-centos:44204->43.250.33.235:https (CLOSE_WAIT)
java        555 root   19u  IPv6 159554061      0t0  TCP VM-24-3-centos:55346->43.250.33.235:https (CLOSE_WAIT)
java        555 root   21u  IPv6 159675287      0t0  TCP VM-24-3-centos:38397->43.250.33.235:https (CLOSE_WAIT)
java        555 root   22u  IPv6 160130806      0t0  TCP VM-24-3-centos:44334->43.250.33.235:https (ESTABLISHED)

查看服务器 80 端口的占用情况


[root@VM-24-3-centos ~]# lsof -i:80
COMMAND   PID USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
nginx   18454 root    7u  IPv4 111507996      0t0  TCP *:http (LISTEN)
nginx   25798  www    7u  IPv4 111507996      0t0  TCP *:http (LISTEN)
nginx   25799  www    7u  IPv4 111507996      0t0  TCP *:http (LISTEN)
[root@VM-24-3-centos ~]#
  • COMMAND:进程的名称
  • PID进程标识符
  • USER:进程所有者
  • FD:文件描述符,应用程序通过文件描述符识别该文件,如cwd、txt等
  • TYPE:文件类型,如DIR、REG等
  • DEVICE:指定磁盘的名称
  • SIZE:文件的大小
  • NODE:索引节点(文件在磁盘上的标识)
  • NAME:打开文件的确切名称

使用 -p 查看指定进程打开的文件


[root@VM-24-3-centos ~]# lsof -p 398
COMMAND PID USER   FD      TYPE             DEVICE  SIZE/OFF      NODE NAME
java    398 root  cwd       DIR              253,1      4096    793920 /root/xxx
java    398 root  rtd       DIR              253,1      4096         2 /
java    398 root  txt       REG              253,1      8984    794871 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.352.b08-2.el7_9.x86_64/jre/bin/java
java    398 root  mem       REG              253,1    109976     21146 /usr/lib64/libresolv-2.17.so
java    398 root  mem       REG              253,1     31344      3924 /usr/lib64/libnss_dns-2.17.so
java    398 root  mem       REG              253,1   4004256    794934 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.352.b08-2.el7_9.x86_64/jre/lib/ext/cldrdata.jar

更多命令

  • lsof -i: 查看IPv4/6文件
  • lsof -i:8080:查看8080端口占用
  • lsof -i4: 查看IPv4文件
  • lsof -i6: 查看IPv6文件
  • lsof -i TCP:80 查看TCP协议80端口占用情况
  • lsof -c lsof 查看lsof命令使用的所有文件
  • lsof -p 1234:列出进程号为1234的进程所打开的文件
  • lsof -g gid:显示归属gid的进程情况
  • lsof +d /usr/local/:显示目录下被进程开启的文件
  • lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长
  • lsof -d 4:显示使用fd为4的进程
  • lsof -i -U:显示所有打开的端口和UNIX domain文件

在这里插入图片描述

相关文章
|
5天前
|
缓存 监控 Linux
linux进程管理万字详解!!!
本文档介绍了Linux系统中进程管理、系统负载监控、内存监控和磁盘监控的基本概念和常用命令。主要内容包括: 1. **进程管理**: - **进程介绍**:程序与进程的关系、进程的生命周期、查看进程号和父进程号的方法。 - **进程监控命令**:`ps`、`pstree`、`pidof`、`top`、`htop`、`lsof`等命令的使用方法和案例。 - **进程管理命令**:控制信号、`kill`、`pkill`、`killall`、前台和后台运行、`screen`、`nohup`等命令的使用方法和案例。
28 4
linux进程管理万字详解!!!
|
12天前
|
网络协议 算法 网络性能优化
|
6天前
|
缓存 负载均衡 网络协议
面试:TCP、UDP如何解决丢包问题
TCP、UDP如何解决丢包问题。TCP:基于数据块传输/数据分片、对失序数据包重新排序以及去重、流量控制(滑动窗口)、拥塞控制、自主重传ARQ;UDP:程序执行后马上开始监听、控制报文大小、每个分割块的长度小于MTU
|
5天前
|
算法 Linux 定位技术
Linux内核中的进程调度算法解析####
【10月更文挑战第29天】 本文深入剖析了Linux操作系统的心脏——内核中至关重要的组成部分之一,即进程调度机制。不同于传统的摘要概述,我们将通过一段引人入胜的故事线来揭开进程调度算法的神秘面纱,展现其背后的精妙设计与复杂逻辑,让读者仿佛跟随一位虚拟的“进程侦探”,一步步探索Linux如何高效、公平地管理众多进程,确保系统资源的最优分配与利用。 ####
27 4
|
6天前
|
缓存 负载均衡 算法
Linux内核中的进程调度算法解析####
本文深入探讨了Linux操作系统核心组件之一——进程调度器,着重分析了其采用的CFS(完全公平调度器)算法。不同于传统摘要对研究背景、方法、结果和结论的概述,本文摘要将直接揭示CFS算法的核心优势及其在现代多核处理器环境下如何实现高效、公平的资源分配,同时简要提及该算法如何优化系统响应时间和吞吐量,为读者快速构建对Linux进程调度机制的认知框架。 ####
|
7天前
|
消息中间件 存储 Linux
|
5月前
|
监控 Linux 应用服务中间件
探索Linux中的`ps`命令:进程监控与分析的利器
探索Linux中的`ps`命令:进程监控与分析的利器
119 13
|
4月前
|
运维 关系型数据库 MySQL
掌握taskset:优化你的Linux进程,提升系统性能
在多核处理器成为现代计算标准的今天,运维人员和性能调优人员面临着如何有效利用这些处理能力的挑战。优化进程运行的位置不仅可以提高性能,还能更好地管理和分配系统资源。 其中,taskset命令是一个强大的工具,它允许管理员将进程绑定到特定的CPU核心,减少上下文切换的开销,从而提升整体效率。
掌握taskset:优化你的Linux进程,提升系统性能
|
4月前
|
弹性计算 Linux 区块链
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
148 4
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
|
3月前
|
算法 Linux 调度
探索进程调度:Linux内核中的完全公平调度器
【8月更文挑战第2天】在操作系统的心脏——内核中,进程调度算法扮演着至关重要的角色。本文将深入探讨Linux内核中的完全公平调度器(Completely Fair Scheduler, CFS),一个旨在提供公平时间分配给所有进程的调度器。我们将通过代码示例,理解CFS如何管理运行队列、选择下一个运行进程以及如何对实时负载进行响应。文章将揭示CFS的设计哲学,并展示其如何在现代多任务计算环境中实现高效的资源分配。