当前位置:首页 > 文章列表 > 文章 > linux > Linux 怎么查询指定端口由哪个进程监听

Linux 怎么查询指定端口由哪个进程监听

来源:17golang原创 2026-09-06 08:08:50 0浏览 收藏

Linux 上想知道“8080 到底被谁占了”,首选不是盯着一长串进程列表,而是先查询监听 socket,再把端口对应到进程。最小可用命令是 sudo ss -ltnp 'sport = :8080':-l 只看监听,-t 限定 TCP,-n 保留数字地址和端口,-p 显示使用该 socket 的进程。若没有结果,再分别检查 UDP、IPv6 和权限,不要直接把“查不到”理解成“端口空闲”。

要点速览
  • 查 TCP 监听:sudo ss -ltnp 'sport = :端口'。
  • 查 UDP 监听:sudo ss -lunp 'sport = :端口';需要时同时看 TCP 和 UDP。
  • Local Address:Port 说明绑定范围,users 字段用于确认进程名、PID 和文件描述符。
日常操作Linux系统排查服务端口占用问题的时候,想要找到指定端口是被哪个进程监听,完全可以用系统自带的常用命令直接查询,不用额外安装复杂工具就能拿到进程ID、进程名这类核心信息。
没有特殊依赖需求的场景下,推荐优先用ss命令查询,绝大多数主流Linux发行版都默认预装了这个工具,查询速度快返回信息全;部分旧系统没有ss的话,用netstat、lsof也可以快速得到想要的结果。

先用 ss 看清监听 socket 与进程

ss 是 iproute2 提供的 socket 统计工具。它默认不会只列出监听 socket,所以定位服务时要显式加 -l;端口映射又需要进程信息,因此还要加 -p。直接查看本机 TCP 监听可以这样写:

# 只看 TCP 监听,并显示进程归属
sudo ss -ltnp

输出中的 Local Address:Port 是监听地址和端口,users 部分通常会给出进程名、pid 和 fd。例如绑定到 127.0.0.1:8080 的服务只能从本机回环地址访问;绑定到 0.0.0.0:8080 则表示监听所有 IPv4 地址。这里先看绑定地址,再判断“端口被占用”是否真的影响了外部访问。

如果只知道协议而不知道端口,先用这条命令建立范围;如果已经知道端口,直接加过滤器会更快。-n 很有用,它避免把端口转换成服务名称,让你看到明确的数字,便于复制到后续排查命令。

Linux ss 查询中监听 socket、TCP UDP、IPv4 IPv6、端口过滤与 PID 进程名的静态关系图
图1:监听 socket 是端口定位的入口,协议和地址条件决定查询范围,进程名与 PID 用来确认归属。

按端口过滤,再回到服务管理层

例如排查 8080 端口时,推荐把过滤表达式交给 ss,比先输出全部结果再用文本匹配更清楚:

# 只查本机 TCP 源端口为 8080 的监听 socket
sudo ss -ltnp 'sport = :8080'

这里的 sport 表示源端口;对监听 socket 来说,它就是服务绑定的本地端口。端口前的冒号表示不限定本地地址。若要同时限定地址,可以写成 src 127.0.0.1:8080,但 IPv4 和 IPv6 条件混用时要谨慎,先分别查询通常更容易解释结果。

UDP 服务没有 TCP 的连接状态,查询时换成 -u:

# 只查 UDP 监听,并显示进程信息
sudo ss -lunp 'sport = :8080'

也可以用 sudo ss -lntup 'sport = :8080' 同时覆盖 TCP 和 UDP。若看到了 PID,下一步不要凭进程名猜服务,先确认完整命令行,再判断它由哪个服务管理单元启动:

# 用 PID 查看完整命令行;把 1234 换成 ss 输出里的真实 PID
tr '\0' ' ' 

ss 负责回答“哪个进程持有监听 socket”,/proc 和 systemctl 负责补充“这个进程从哪里启动、属于哪个服务”。这两个层次不要混为一谈。

Linux 指定端口查询中目标端口、sport 过滤器、sudo 权限、PID 与服务管理单元的边界关系图
图2:端口过滤只负责缩小 socket 集合,权限决定能否看到进程信息,最终仍要结合 PID 和服务管理层判断服务归属。

查不到结果时,按协议、地址和权限排查

现象优先检查处理方式
TCP 查询为空协议或端口是否判断错误改用 -lunp 查 UDP,并确认端口数字
只看到 IPv6服务是否绑定 ::分别用 -4、-6 缩小地址族
有监听但没有进程名当前用户权限用 sudo 重试,避免把权限问题当成空闲端口
本机能访问,外部不能访问绑定地址和防火墙先看 Local Address,再检查防火墙和云安全策略

如果只关心 IPv4 或 IPv6,可以把条件写得更明确:

# 只查 IPv4 TCP 监听
sudo ss -4ltnp 'sport = :8080'

# 只查 IPv6 TCP 监听
sudo ss -6ltnp 'sport = :8080'

最后记住,ss 看到的是当前网络命名空间里的 socket。容器、网络命名空间或宿主机之间互相隔离时,宿主机上的一次查询未必能代表容器内部;这时要进入对应的命名空间或容器再查。

常见问题

为什么 ss -ltn 能看到端口,却看不到进程?

因为 -p 才请求显示使用 socket 的进程信息,而且查看其他用户的进程通常需要更高权限。先用 sudo ss -ltnp 重试。

ss 和 lsof -i 应该选哪个?

按端口和协议筛选时,ss 更直接;需要从打开的文件反查进程、用户和文件描述符时,可以再用 lsof -nP -i :8080 交叉确认。

为什么 8080 没有 TCP 监听,但服务仍然可用?

它可能监听的是 UDP、IPv6、Unix socket,或者服务实际运行在另一个容器和网络命名空间。先用 TCP/UDP、-4/-6 和容器内查询逐项缩小范围。

本文依据 ss(8) Linux 手册中的选项与过滤语法组织示例;生产环境执行关闭或重启前,先确认 PID、命令行和服务单元,避免误操作。

版本声明
本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
人类基准反应测试测的是什么?反应时间计算、设备延迟与结果解读人类基准反应测试测的是什么?反应时间计算、设备延迟与结果解读
上一篇
人类基准反应测试测的是什么?反应时间计算、设备延迟与结果解读
Go slices.Compact 为什么没有删除全部重复元素
下一篇
Go slices.Compact 为什么没有删除全部重复元素
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • PubMedQA数据集详解:生物医学问答基准、功能与应用指南
    PubMedQA
    深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
    575次使用
  • H2O EvalGPT:开源LLM大模型评估与排行榜工具
    H2O EvalGPT
    H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
    618次使用
  • LMArena是什么?伯克利AI模型评估平台使用指南与功能解析
    LMArena
    LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
    649次使用
  • 斯坦福HELM:大语言模型Holistic Evaluation整体评估框架详解
    HELM
    深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
    609次使用
  • MMBench详解:多模态大模型基准测试、功能特点与使用指南
    MMBench
    MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
    426次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议 和 隐私政策
返回登录
  • 重置密码