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命令显示端口对应进程

ss是iproute2工具包中的一员,相比netstat,ss的查询效率更高,尤其是在处理大量网络连接时,直接从内核获取网络信息,速度更快,已成为现代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 中,可通过修改终端配置文件或使用相关命令设置颜色方案来更改为黑字

    2025年8月17日
    22900
  • 为什么开发者偏爱Debian/Ubuntu?

    使用 tree 命令(推荐工具)安装方法(部分系统默认未安装):# CentOS/RHELsudo yum install tree# Arch/Manjarosudo pacman -S tree基础用法:tree [目录路径] # 不指定路径时显示当前目录示例输出:.├── dir1│ ├── file1……

    2025年8月7日
    19300
  • Linux系统如何开启DNS服务?

    在Linux系统中,DNS(域名系统)配置是网络通信的基础,它负责将人类可读的域名(如www.example.com)转换为机器可识别的IP地址,正确配置DNS不仅能确保网络连接正常,还能优化访问速度、提升安全性,本文将详细介绍Linux系统中查看、修改及排查DNS配置的多种方法,涵盖命令行工具、配置文件操作及……

    2025年8月27日
    26700
  • 如何往Linux虚拟机传文件?有哪些常用方法和步骤?

    在Linux虚拟机的日常使用中,向虚拟机内传输文件是常见需求,无论是配置文件、数据集还是开发工具,都需要高效、安全的方式完成传输,根据虚拟机与宿主机的连接方式、文件大小、安全需求等不同场景,可选择多种传输方法,本文将详细介绍几种主流的文件传输方式,包括原理、操作步骤及注意事项,帮助用户根据实际情况选择最适合的方……

    2025年8月24日
    42200
  • Linux系统日志清理实用指南,如何高效清理及注意事项详解?

    在Linux系统中,日志文件是系统运行状态的重要记录,包含系统启动、应用程序运行、用户行为、错误信息等关键数据,日志文件会随着时间推移不断增长,占用大量磁盘空间,甚至可能导致系统性能下降或服务异常,定期清理Linux日志是系统维护的重要任务,本文将详细介绍Linux日志清理的方法、工具及注意事项,帮助用户高效管……

    2025年9月16日
    34900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信