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系统中如何具体查看U盘格式并读取文件内容?

    在Linux系统中查看U盘的文件系统格式并访问其中的文件,是日常操作中常见的需求,由于Linux对多种文件系统(如FAT32、NTFS、exFAT、ext4等)的支持情况不同,且不同发行版的操作方式略有差异,掌握正确的方法能避免很多麻烦,下面将详细介绍从识别U盘到查看格式、访问文件的完整流程,以及常见问题的解决……

    2025年10月8日
    10700
  • Linux如何运行exe文件?两种方法揭秘

    在Linux系统中运行Windows的.exe文件主要有两种方法:使用Wine兼容层(轻量级,直接运行但兼容性有限)或通过虚拟机(如VirtualBox/VMware,完整Windows环境运行,资源消耗大但兼容性好)。

    2025年6月18日
    13400
  • 宝塔Linux如何安装宝塔面板?详细步骤操作指南

    宝塔Linux面板是一款广泛使用的服务器管理工具,通过图形化界面简化了服务器运维操作,适合新手开发者和小型团队快速部署和管理网站、数据库、应用等,本文将详细介绍宝塔Linux面板的安装步骤、环境准备、配置及常见问题解决,帮助用户顺利完成安装,安装前环境准备在安装宝塔Linux面板前,需确保服务器满足基本环境要求……

    2025年10月3日
    8200
  • Linux如何修改网卡设备名称?

    在Linux系统中,网卡的默认命名方式可能因发行版、内核版本或硬件信息而不同,例如传统的eth0、基于硬件信息的ens33、eno1等,统一的网卡命名规范有助于简化网络管理,尤其是在服务器集群或自动化运维场景中,本文将详细介绍Linux系统中修改网卡名的具体方法,涵盖临时修改、永久修改以及不同发行版的配置差异……

    2025年8月25日
    8100
  • Linux系统IP冲突怎么办?,快速解决Linux IP地址冲突,如何检测Linux的IP冲突?

    使用arp-scan工具(推荐)arp-scan通过主动发送ARP请求检测IP冲突,结果精准可靠,步骤:安装工具(Debian/Ubuntu为例):sudo apt update && sudo apt install arp-scan扫描本地网络(替换eth0为你的网卡名):sudo arp……

    2025年6月24日
    13000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信