linux 根据端口查看进程

在 Linux 系统中,根据端口查看对应进程的常用命令有 ssnetstatlsof 三种,以下是具体操作步骤和示例,优先推荐 ss(性能更优)和 lsof(信息更全)。

一、使用 ss 命令(推荐,替代 netstat

ss 是 Linux 下查看套接字信息的工具,速度快、占用资源少,默认系统一般自带。

1. 基本语法
bash 复制代码
ss -tulnp | grep 端口号
2. 参数说明
  • -t:显示 TCP 协议端口
  • -u:显示 UDP 协议端口
  • -l:仅显示监听状态的端口
  • -n:以数字形式显示端口号(不解析服务名)
  • -p:显示端口对应的进程 PID 和程序名(需要 root 权限,否则不显示进程信息)
3. 示例(查看 8080 端口进程)
bash 复制代码
# 普通用户执行(可能无进程信息)
ss -tulnp | grep 8080

# root 用户执行(完整信息)
sudo ss -tulnp | grep 8080
4. 输出示例
复制代码
LISTEN 0      128         0.0.0.0:8080      0.0.0.0:*    users:(("java",pid=1234,fd=42))

说明:8080 端口由 java 程序占用,进程 PID 为 1234

二、使用 lsof 命令(信息最全面)

lsofList Open Files 的缩写,可列出系统中打开的文件和端口关联的进程,部分系统需手动安装。

1. 安装 lsof(如未安装)
bash 复制代码
# CentOS/RHEL
sudo yum install lsof -y

# Ubuntu/Debian
sudo apt install lsof -y
2. 基本语法
bash 复制代码
lsof -i:端口号
3. 参数说明
  • -i:显示网络相关的文件 / 端口
  • :端口号:指定要查询的端口
4. 示例(查看 80 端口进程)
bash 复制代码
sudo lsof -i:80
5. 输出示例
bash 复制代码
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   5678  root    6u  IPv4  12345      0t0  TCP *:http (LISTEN)
nginx   5679  www     6u  IPv4  12345      0t0  TCP *:http (LISTEN)

说明:80 端口由 nginx 程序占用,有两个进程,PID 分别为 56785679

三、使用 netstat 命令(传统工具,部分系统已弃用)

netstat 是传统的网络状态查看工具,功能与 ss 类似,但性能稍弱,部分系统需安装 net-tools 包。

1. 安装 netstat(如未安装)
bash 复制代码
# CentOS/RHEL
sudo yum install net-tools -y

# Ubuntu/Debian
sudo apt install net-tools -y
2. 基本语法
bash 复制代码
netstat -tulnp | grep 端口号
3. 参数说明

ss 命令参数完全一致:

  • -t TCP 端口 -u UDP 端口 -l 监听状态 -n 数字端口 -p 进程信息
4. 示例
bash 复制代码
sudo netstat -tulnp | grep 3306

四、补充技巧

  1. 根据 PID 查看进程详情 查到 PID 后,可通过 ps 命令查看进程的详细信息:

    bash 复制代码
    ps -ef | grep 进程PID

    示例:ps -ef | grep 1234

  2. 查看所有监听端口及进程

    bash 复制代码
    sudo ss -tulnp  # 或 sudo netstat -tulnp

注意事项

  1. 查看进程信息(-p 参数)需要 root 权限,普通用户执行可能无法显示 PID 和程序名。
  2. 如果端口未被监听或无进程占用,命令执行后无输出。
相关推荐
白鸽梦游指南10 分钟前
docker镜像优化
linux·运维·docker
A.A呐16 分钟前
【Linux第十九章】网络基础
linux·网络
陳103026 分钟前
Linux:基础开发工具
linux·运维·服务器
sg_knight29 分钟前
CentOS 裸机实操:5分钟完成 MinIO 单机部署与公网访问
linux·python·centos·文件管理·minio·ftp·oss
dgvri32 分钟前
Linux(CentOS)安装 MySQL
linux·mysql·centos
Coder个人博客32 分钟前
06_apollo_third_party子模块整体软件架构深入分析文档
linux·人工智能·架构
我爱学习好爱好爱40 分钟前
Ansible 常用模块详解:cron、archive、unarchive实战
linux·服务器·ansible
十年编程老舅1 小时前
Linux 多线程高并发编程:读写锁的核心原理与底层实现
linux·c++·linux内核·高并发·线程池·多线程·多进程
IT界的老黄牛1 小时前
Prometheus + Grafana + AlertManager 监控体系搭建:Docker 一把梭
运维·grafana·prometheus
乌恩大侠1 小时前
【KrakenSDR】MATLAB接口
服务器·网络·matlab