Linux如何查看端口号对应的进程?

在Linux系统中,管理和排查网络端口占用问题是日常运维和开发中的常见需求,快速定位端口号对应的进程是解决问题的关键,本文将详细介绍几种常用的Linux命令及其参数,帮助用户高效显示端口号与进程的对应关系,并对比不同工具的适用场景。

linux 如何显示端口号对应的进程

使用netstat命令显示端口对应进程

netstat是Linux系统中传统的网络连接状态查看工具,虽然其功能逐渐被ss命令替代,但在许多旧系统或特定场景下仍被广泛使用,通过netstat结合不同参数,可以灵活筛选TCP、UDP协议,以及监听、连接等状态的端口信息。

基本语法与常用参数

netstat [选项] [协议]

常用参数说明:

  • -t:显示TCP端口连接
  • -u:显示UDP端口连接
  • -n:以数字形式显示地址和端口(不解析域名和服务名,提升速度)
  • -l:仅显示监听状态的端口
  • -p:显示占用端口的进程ID(PID)和进程名称
  • -a:显示所有端口(包括监听和未监听)

示例操作

  1. 查看所有监听端口的进程信息

    netstat -tulnp

    输出示例如下:

    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1234/sshd           
    tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      5678/mysqld         
    udp        0      0 0.0.0.0:68              0.0.0.0:*                           9103/dhclient      

    字段解释:Proto(协议)、Local Address(本地IP和端口)、State(连接状态)、PID/Program name(进程ID及名称)。

  2. 查看指定端口的进程
    若要查询8080端口对应的进程,可结合grep过滤:

    netstat -tulnp | grep :8080

使用ss命令显示端口对应进程

ssiproute2工具包中的一员,相比netstatss的查询效率更高,尤其是在处理大量网络连接时,直接从内核获取网络信息,速度更快,已成为现代Linux系统的推荐工具。

基本语法与常用参数

ss [选项] [过滤条件]

常用参数说明:

  • -t:TCP协议
  • -u:UDP协议
  • -n:数字形式显示
  • -l:仅显示监听端口
  • -p:显示进程ID和名称
  • -a:显示所有连接

示例操作

  1. 查看所有监听端口的进程信息

    linux 如何显示端口号对应的进程

    ss -tulnp

    输出示例与netstat类似,但字段略有不同:

    State      Recv-Q Send-Q Local Address:Port               Peer Address:Port             
    LISTEN     0      128          0.0.0.0:22                      0.0.0.0:*          users:(("sshd",pid=1234,fd=3))  
    LISTEN     0      80           127.0.0.1:3306                  0.0.0.0:*          users:(("mysqld",pid=5678,fd=31))  

    字段解释:State(连接状态)、Local Address:Port(本地IP和端口)、users(进程信息)。

  2. 按端口过滤
    查询80端口对应的进程:

    ss -tulnp | grep :80
  3. 显示所有连接(非仅监听)

    ss -tanp

使用lsof命令显示端口对应进程

lsof(list open files)用于列出系统中被打开的文件,由于Linux中一切皆文件,网络连接(端口)也被视为文件,因此可通过lsof查看端口对应的进程。

基本语法与常用参数

lsof -i:[端口号]

常用参数说明:

  • -i:指定网络地址,可接端口号、协议(如TCP、UDP)
  • -P:不解析端口号为服务名(提升速度)
  • -n:不解析IP为域名
  • -s:显示套接字信息

示例操作

  1. 查看指定端口的进程
    查询22端口(SSH服务)对应的进程:

    lsof -i:22

    输出示例:

    COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    sshd     1234   root    3u  IPv4   12345      0t0  TCP *:ssh (LISTEN)
    sshd     1234   root    4u  IPv6   12346      0t0  TCP *:ssh (LISTEN)

    字段解释:COMMAND(进程名)、PID(进程ID)、NAME(监听的IP和端口)。

    linux 如何显示端口号对应的进程

  2. 查看所有监听端口

    lsof -i -P -n | grep LISTEN

三种工具对比与选择

工具 优点 缺点 适用场景
netstat 兼容性强(旧系统可用) 效率较低,查询速度慢 传统Linux系统或兼容性要求高的场景
ss 查询速度快,功能丰富 部分旧系统可能未预装 现代Linux系统(CentOS 7+、Ubuntu 16.04+等)
lsof 可查看文件级别的详细信息 语法相对复杂,默认不显示所有端口 需要结合文件描述符或更详细进程信息的场景

实际应用:端口冲突排查示例

假设启动Web服务时提示“Address already in use”,可通过以下步骤定位占用端口的进程:

  1. 使用ss查询80端口占用情况:
    ss -tulnp | grep :80
  2. 若输出显示进程ID为9999(如nginx),可进一步查看进程详情:
    ps -ef | grep 9999
  3. 若确认无需该进程,可终止进程释放端口:
    kill -9 9999

相关问答FAQs

Q1:为什么ss命令比netstat查询速度快?
A1:ss命令直接从Linux内核的netlink套接字获取网络连接信息,而netstat需要遍历/proc文件系统中的网络相关文件,数据读取效率较低,当系统存在大量网络连接时,ss的性能优势更明显,因此在现代Linux系统中推荐优先使用ss

Q2:如何只显示监听状态的TCP端口对应进程?
A2:可使用ss命令结合-t(TCP)、-l(监听)、-n(数字形式)、-p(进程)参数,具体命令为:

ss -tlnp

或使用netstat命令:

netstat -tlnp

若需过滤特定端口(如8080),可添加| grep :8080进一步筛选。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/32177.html

(0)
酷番叔酷番叔
上一篇 2025年9月29日 03:49
下一篇 2025年9月29日 04:04

相关推荐

  • 如何关闭Linux系统的图形界面?

    在Linux系统中,图形界面(Graphical User Interface,GUI)虽然提供了直观的操作体验,但在服务器环境、资源受限场景或需要专注命令行操作时,关闭图形界面可以节省系统资源、提升启动速度并减少安全风险,本文将详细介绍关闭Linux图形界面的多种方法,涵盖主流发行版(如Ubuntu、Cent……

    2025年10月7日
    10300
  • Linux Makefile如何执行?

    在Linux系统中,Makefile是自动化构建的核心工具,它通过定义目标文件、依赖关系和生成规则,简化了编译、链接等重复性操作,Makefile的执行过程本质上是make工具读取并解析Makefile文件,根据依赖关系判断哪些文件需要重新生成,并执行对应的命令,下面详细说明Makefile的执行流程、关键要素……

    2025年9月24日
    11900
  • Linux运行JAR文件的最佳实践?

    核心准备工作:安装 Java 环境JAR 文件需 Java 运行时环境(JRE)或开发工具包(JDK)才能运行:检查现有 Java 版本:java -version若显示 “command not found” 或版本低于要求,需安装 Java,安装 JDK/JRE(以 OpenJDK 为例):Ubuntu/D……

    2025年7月27日
    15000
  • Linux系统如何安装到U盘?操作步骤详解

    将Linux系统安装在U盘上是一种便携化的使用方式,既能随身携带操作系统,又能避免影响电脑原有系统,以下是详细的安装步骤和注意事项,帮助你顺利完成U盘Linux系统的部署,准备工作在开始安装前,需确保以下物品和条件就绪:U盘:建议容量至少8GB(推荐16GB以上),优先选择USB 3.0及以上接口的U盘,确保读……

    2025年9月20日
    11400
  • Linux ISO如何安装?系统操作详细步骤与方法指南

    安装Linux ISO文件是许多用户接触开源系统的第一步,虽然不同发行版(如Ubuntu、CentOS、Fedora等)的安装界面略有差异,但核心流程基本一致,本文将从准备工作、启动介质制作、安装步骤到后续配置,详细讲解如何通过ISO文件完成Linux系统的安装,安装前的准备工作在开始安装前,需确保以下几点准备……

    2025年9月24日
    12100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信