`

linux下根据端口号查询对应进程

 
阅读更多

我们经常使用netstat -lnp可以查询对应端口跟进程,但是有些端口是在netstat -lnp里却没显示对应的进程pid,如果我们使用某个端口已经被占用,需要找到对应占用端口的进程关闭之类的,此时可以通过lsof来查询对应端口的对应进程pid号,

 

 

[wei@vm-cbu-qa-168-13 web-deploy]$ netstat -lnp 
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:7008                0.0.0.0:*                   LISTEN      27709/java          
tcp        0      0 0.0.0.0:6208                0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:800                 0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:7009                0.0.0.0:*                   LISTEN      27709/java          
tcp        0      0 127.0.0.1:15777             0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:2049                0.0.0.0:*                   LISTEN      -                   
tcp        0      0 127.0.0.1:15778             0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:35559               0.0.0.0:*                   LISTEN      27709/java          
tcp        0      0 0.0.0.0:55336               0.0.0.0:*                   LISTEN      27709/java          
tcp        0      0 0.0.0.0:4200                0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:58666               0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:845                 0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:4110                0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:4207                0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:20880               0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:4208                0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:18000               0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:18001               0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:18002               0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:42483               0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:48116               0.0.0.0:*                   LISTEN      -                   
tcp        0      0 10.20.168.13:8022           0.0.0.0:*                   LISTEN      -         

 

 

比如我们要查询20880端口被那个进程占用,netstat查询不出来

 

 [wei@vm-cbu-qa-168-13 web-deploy]$ netstat -lnp | grep 20880      

(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:20880               0.0.0.0:*                   LISTEN      -       

 

我们用lsof来查询下

 


[wei@vm-cbu-qa-168-13 web-deploy]$ lsof -Pnl +M -i4 | grep 20880
java      15239      710  260u  IPv4 87019792       TCP 10.20.168.13:35822->10.20.172.31:20880 (ESTABLISHED)
java      15239      710  285u  IPv4 87038933       TCP 10.20.168.13:43058->10.20.172.93:20880 (ESTABLISHED)
java      25755      712  544u  IPv4 87265535       TCP *:20880 (LISTEN)
java      25755      712  562u  IPv4 87265755       TCP 10.20.168.13:40151->10.20.168.16:20880 (ESTABLISHED)
java      25755      712  563u  IPv4 87265695       TCP 10.20.168.13:59947->10.20.151.21:20880 (ESTABLISHED)
java      25755      712  564u  IPv4 87265696       TCP 10.20.168.13:47042->10.20.142.80:20880 (ESTABLISHED)
java      25755      712  565u  IPv4 87265703       TCP 10.20.168.13:40939->10.20.141.52:20880 (ESTABLISHED)
java      25755      712  570u  IPv4 87265751       TCP 10.20.168.13:43361->10.20.141.141:20880 (ESTABLISHED)
java      25755      712  571u  IPv4 87265753       TCP 10.20.168.13:40960->10.20.143.111:20880 (ESTABLISHED)
java      25755      712  572u  IPv4 87265752       TCP 10.20.168.13:45368->10.20.141.63:20880 (ESTABLISHED)
java      25755      712  573u  IPv4 87265754       TCP 10.20.168.13:34315->10.20.168.17:20880 (ESTABLISHED)
java      27709      713  339u  IPv4 87271862       TCP 10.20.168.13:50212->10.20.172.11:20880 (ESTABLISHED)
java      27709      713  341u  IPv4 87271859       TCP 10.20.168.13:41128->10.20.172.88:20880 (ESTABLISHED)
java      27709      713  347u  IPv4 87271865       TCP 10.20.168.13:46782->10.20.172.1:20880 (ESTABLISHED)

 

可以看到监听20880端口的是进程pid是25755,user是   712

i4是查询ipv4端口

 

[wei@vm-cbu-qa-168-13 web-deploy]$ lsof -Pnl +M -i4             
COMMAND     PID     USER   FD   TYPE   DEVICE SIZE NODE NAME
portmap    1616       32    3u  IPv4     3488       UDP *:111[portmapper] 
portmap    1616       32    4u  IPv4     3489       TCP *:111[portmapper] (LISTEN)
DragoonAg  4153        0    6u  IPv4 28872832       TCP 10.20.168.13:54978->10.20.149.114:13888 (ESTABLISHED)
DragoonAg  4153        0    8u  IPv4 28872826       TCP 127.0.0.1:15777 (LISTEN)
DragoonAg  4153        0   10u  IPv4 28872828       TCP 127.0.0.1:15778 (LISTEN)
DragoonAg  4153        0   12u  IPv4 28872836       UDP 10.20.168.13:13777->10.20.149.114:60569 
DragoonAg  4153        0   13u  IPv4 86898035       TCP 10.20.168.13:38027->10.20.159.108:15888 (ESTABLISHED)
DragoonAg  4153        0   15u  IPv4 86648332       TCP 127.0.0.1:15777->127.0.0.1:41653 (ESTABLISHED)
python    10488        0    4u  IPv4   292127       TCP 10.20.168.13:8022 (LISTEN)
java      15239      710    5u  IPv4 86647757       TCP *:4208 (LISTEN)
java      15239      710   15u  IPv4 86647829       TCP *:35485 (LISTEN)
java      15239      710   18u  IPv4 86647831       TCP *:4207 (LISTEN)
java      15239      710   20u  IPv4 86647833       TCP *:42483 (LISTEN)
java      15239      710   22u  IPv4 87286934       TCP 10.20.168.13:44190->110.75.194.17:80 (CLOSE_WAIT)
java      15239      710  246u  IPv4 86648330       TCP 127.0.0.1:41653->127.0.0.1:15777 (ESTABLISHED)
java      15239      710  253u  IPv4 86648976       TCP *:4110 (LISTEN)
java      15239      710  255u  IPv4 87010313       TCP 10.20.168.13:4110->10.20.172.31:38036 

 

i6是查询ipv6端口

[wei@vm-cbu-qa-168-13 web-deploy]$ lsof -Pnl +M -i6 
COMMAND   PID     USER   FD   TYPE   DEVICE SIZE NODE NAME
cfservd  5513        0    4u  IPv6    17813       TCP *:5308 (LISTEN)
java    13334        0   64u  IPv6 85851503       TCP 10.20.168.13:46591->10.20.145.12:57126 (ESTABLISHED)
java    13334        0   65u  IPv6 86276005       TCP 10.20.168.13:34506->10.20.172.85:80 (CLOSE_WAIT)
java    13334        0   66u  IPv6 86313523       TCP 10.20.168.13:36320->10.20.172.85:80 (CLOSE_WAIT)
java    13334        0   67u  IPv6 86382763       TCP 10.20.168.13:52680->10.20.172.85:80 (CLOSE_WAIT)
java    13334        0   71u  IPv6 85851508       TCP *:58126 (LISTEN)
    lsof命令参数解释 

  1) -P :这个选项约束着网络文件的端口号到端口名称的转换。约束转换可以使lsof运行得更快一些。在端口名称的查找不能奏效时,这是很有用的。 

  2) -n : 这个选项约束着网络文件的端口号到主机名称的转换。约束转换可以使lsof的运行更快一些。在主机名称的查找不能奏效时,它非常有用。 

  3) -l :这个选项约束着用户ID号到登录名的转换。在登录名的查找不正确或很慢时,这个选项就很有用。 

  4) +M :此选项支持本地TCP和UDP端口映射程序的注册报告。 

  5) -i4 :仅列示IPv4协议下的端口。 

  6) -i6 : 仅列示IPv6协议下的端口。 

 

0
3
分享到:
评论

相关推荐

    根据端口号得到打开该端口号的进程ID

    在IT领域,尤其是在系统管理和网络调试中,了解如何根据端口号获取对应的进程ID是一项非常实用的技能。端口号是计算机网络通信中标识服务的重要组成部分,它允许不同的服务在同一台主机上并行运行。当我们需要诊断...

    查询端口号对应的PID号

    下面将详细介绍如何在Windows和Linux环境下查询被系统占用端口对应的进程ID(PID)。 ### Windows环境下查询端口对应的PID #### 方法一:使用`netstat`命令 在Windows系统中,可以通过`netstat`命令结合`-a`和`-o`...

    Shell脚本实现根据端口号kill相应进程功能

    在Linux操作系统中,...总之,通过Shell脚本根据端口号kill进程是一种常见的运维任务,熟练掌握相关命令及脚本编写技巧对于Linux系统管理员来说非常重要。在编写和执行这类脚本时,务必谨慎,以免造成不必要的损失。

    Linux获取指定端口服务信息,获取指定服务器端口号

    首先,我们要知道在Linux中,网络服务与特定的端口号关联,这些信息存储在`/etc/services`文件中。通过这个文件,我们可以找到常用服务对应的默认端口号。例如,HTTP服务通常监听在80端口,HTTPS服务在443端口。 要...

    Linux中怎么通过PID号找到对应的进程名及所在目录方法

    另外,如果你还需要找到与特定端口号相关的进程,可以使用`netstat`或`ss`命令。例如,如果想知道哪个进程正在监听8080端口,可以执行: ```bash netstat -tulnp | grep :8080 ``` 或者 ```bash ss -tulnp | grep...

    查询占用端口进程

    - **Windows**:使用`netstat -ano`命令可以查看所有活动的TCP和UDP连接,包括端口号和对应的PID(进程ID)。然后通过`tasklist /fi "PID eq [PID]"`查询具体的进程信息。 - **Linux/Unix**:`netstat -tuln`命令...

    Linux和Windows常见的端口号

    ### Linux和Windows常见的端口号详解 #### 一、概述 在网络通信中,端口号起着至关重要的作用。它标识了计算机上的特定进程或服务。不同的操作系统和服务通常绑定到不同的端口号上。对于网络安全专业人士而言,...

    Linux/window下怎样查看某个端口被哪个程序/进程占用

    本篇将详细讲解在Linux和Windows操作系统下如何查看并管理占用端口的程序。 在Windows系统中,我们可以使用`netstat`命令来查看端口占用情况。`netstat -aon`命令会列出所有活动的连接和监听状态,其中 `-a` 参数...

    端口号 查看端口号 电脑端口查看

    打开命令提示符,输入`netstat -ano`,这将显示所有活动的TCP和UDP连接,包括它们对应的端口号以及进程ID。在Linux或MacOS中,可以使用`netstat -tuln`获得类似信息。 2. **系统工具**:某些操作系统提供了内置的...

    详解Linux 查看服务器开放的端口号

    在Linux系统中,了解...总结起来,掌握Linux下查看服务器开放端口号的方法对于系统管理和安全审计至关重要。通过了解和运用上述命令和工具,你可以有效地监控网络服务状态,排查潜在的安全问题,以及优化服务器配置。

    Linux下Tomcat的启动、关闭、杀死进程

    这时可以尝试通过端口号找到对应的PID: ```bash netstat -anp | grep ``` 假设我们知道Tomcat占用的端口是9217,则可以使用: ```bash netstat -anp | grep 9217 ``` 命令输出的结果会显示该端口对应的...

    Python根据服务获取端口号的方法

    本文将详细讲解如何使用Python根据服务名称获取端口号,并简要介绍Linux系统中查看和管理端口的相关知识。 首先,获取端口号的关键在于找到对应服务的进程ID(PID)。Python提供了`psutil`库,它允许我们获取系统中...

    Linux编写内核模块新增系统调用遍历进程树--基于Ubuntu20.04.03LTS实现

    实验目标:在Linux内核中增加一个系统调用,并编写对应的linux应用程序。利用该系统调用能够遍历系统当前所有进程的任务描述符,并按进程父子关系将这些描述符所对应的进程id(PID)组织成树形结构显示。 实验环境:...

    查看某端口被什么进程占用的方法

    例如,输入`netstat -ano | findstr :端口号`(将“端口号”替换为你想要查询的实际端口号),此命令将显示所有连接和监听状态的端口,以及对应进程的PID(进程ID)。然后,你可以通过任务管理器找到对应的PID,查看...

    基于Linux的串行端口编程

    1. **传统硬件串行端口**:这类端口被命名为`ttyS*`,其中`*`代表端口号,例如`ttyS0`、`ttyS1`等。这些端口类似于Windows系统中的`COM1`、`COM2`等。 2. **基于USB转串口的端口**:随着技术的发展,许多现代设备...

    linux根据进程号PID查找启动程序的全路径

    工作环境中遇到网络不正常,检测是某服务器异常往外发送数据包,使用netstat命令查看,发现有程序.IptabLex的这个进程状态为异常连接.无法有效清除,因此想知道是哪个目录的此程序处于僵死状态. [root@edu-web1 /]# ...

    windows-如何查询端口号被哪个程序占用

    标题中的“Windows-如何查询端口号被哪个程序占用”是一个关于系统管理的问题,涉及到Windows操作系统、网络通信和进程管理的知识点。在Windows操作系统中,端口号是网络应用程序用来标识和服务的逻辑标识符,每个...

    linux 常用 端口

    28. **SMB (Server Message Block)**:端口号137, 138, 139,由Samba服务使用,实现Windows和Linux之间的文件共享。 29. **NNTP (Network News Transfer Protocol)**:端口号119,用于USENET新闻组的传输。 30. **...

    linux查看现有占用端口命令netstat –ntlp.docx

    - `-n` 或 `--numeric`:以数字格式显示IP地址和端口号,而不是尝试解析它们为主机名或服务名称。 - `-t` 或 `--tcp`:仅显示TCP(传输控制协议)连接。 - `-u` 或 `--udp`:仅显示UDP(用户数据报协议)连接。 - `-...

Global site tag (gtag.js) - Google Analytics