linux查端口被哪个服务器,如何查看端口占用进程命令

在Linux系统中,查询端口被哪个进程或服务占用,最直接的答案是使用 lsof -i:端口号ss -ltnp 命令,二者都能清晰显示PID和进程名称。 这个问题在运维排障、开发联调时几乎每天都会遇到,尤其是当你启动服务提示“端口已被占用”时,快速定位元凶就成了第一步。

linux查看端口被哪个进程占用:首选lsof命令

lsof 是Linux下专门列出打开文件的工具,而网络连接在Linux里也被视为文件,因此用它查端口非常直观。

基础用法

lsof -i:8080

输出结果会包含 COMMAND(进程名)、PID(进程号)、USER(运行用户)、FDTYPEDEVICESIZE/OFFNODENAME(监听地址和端口)。

  • 看到 java 1234 root 46u IPv6 12345 TCP :8080 (LISTEN),就说明PID为1234的java进程占用了8080端口。
  • 如果只想看监听状态,追加 -sTCP:LISTENlsof -i:8080 -sTCP:LISTEN

配合杀进程:拿到PID后,执行 kill -9 1234 即可强制结束进程,如果权限不够,加上 sudo

使用ss命令查看端口占用情况

较新版本的Linux发行版普遍使用 ss 替代 netstat,查看监听端口的命令为:

linux查端口被哪个服务器,如何查看端口占用进程命令

ss -ltnp | grep :8080

参数含义:

  • -l 仅显示监听socket
  • -t 仅显示TCP连接
  • -n 以数字方式显示端口和IP,避免反向解析
  • -p 显示进程信息(需要root权限)

输出中常见 users:(("nginx",pid=2345,fd=6)),直接告诉你进程名和PID,如果没显示PID,请加 sudo,这是排查“linux查端口被哪个服务占用”时最高效的现代方案。

老牌netstat命令依旧可用

虽然部分发行版已不再默认安装 netstat,但很多老系统上它仍是主力,用法类似:

netstat -tlnp | grep :3306

-t TCP协议、-l 监听、-n 数字显示、-p 程序名,同样需要root权限才能看到进程名,如果提示 command not found,在CentOS上可用 yum install net-tools,在Ubuntu上可用 apt install net-tools 安装。

linux netstat和lsof查看端口占用对比

很多新手会纠结该用哪个命令,实际上二者侧重不同,行业共识是:优先用ss,其次lsof,netstat留作兼容老系统,下表可以直观对比:

linux查端口被哪个服务器,如何查看端口占用进程命令

对比项 netstat lsof ss
安装情况 需要net-tools包 需要lsof包 系统自带(iproute2)
查看端口占用 netstat -tlnp lsof -i:端口 ss -ltnp
显示进程名 需root 需root或属主 需root
输出速度 较慢 中等 极快
适用场景 老系统兼容 精确查单个端口 现代Linux默认推荐

在脚本排查中,ss 因速度快而更适合批量检查端口;lsof 的优势在于能同时查看socket文件、设备文件等,当你需要确认某个端口是否被UDP或Unix socket占用时,lsof 更灵活,多数情况下,先用 ss -ltnp 扫一眼全貌,再用 lsof -i:端口 精确锁定,是效率最高的组合。

8080端口被占用怎么解决Linux:实战排查步骤

这里用一个常见场景演示完整排查过程,假设你启动Spring Boot应用时得到错误提示:Port 8080 was already in use.

第一步:确认占用者

sudo lsof -i:8080

如果输出为空,改用UDP检查:sudo lsof -iUDP:8080,或者用 ss -ulnp | grep 8080

第二步:根据PID定位进程详情

ps -ef | grep 8080

但这里的8080是端口号,不是进程号,正确做法是使用第一步得到的PID,执行:

ps -p 1234 -f

linux查端口被哪个服务器,如何查看端口占用进程命令

或者直接看进程启动路径:

readlink -f /proc/1234/cwd

这样能区分是哪个项目目录下的进程,避免误杀。

第三步:按需处理

  • 如果是残留进程,直接结束:kill -9 1234
  • 如果是合法服务占用了端口,要么换端口启动新服务,要么调整旧服务配置,例如Nginx默认占用80端口,你不想停掉它,就把新应用改到8081端口。

第四步:验证结果

ss -ltnp | grep 8080

无输出即表示端口已释放,此时再启动你的服务即可。

常见问题Q&A

为什么普通用户执行lsof -i:8080看不到进程名?

因为非root用户只能看到自己拥有的进程信息,如果端口被其他用户的进程占用,必须使用 sudo 才能显示完整的PID和COMMAND,这是Linux权限隔离的正常表现,并非命令异常。

无法安装lsof时如何查看端口占用?

使用系统自带的 ss 命令几乎能完全替代。ss -ltnp 就是标准答案。ss 也不存在(内核极老),则尝试 /proc/net/tcp 配合十六进制端口转换,但这种方式过于繁琐,实际运维中更推荐先安装 lsofnet-tools,部分容器镜像为精简体积未包含这些工具,执行 apt update && apt install lsofyum install -y lsof 即可。

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/757085.html

(0)
上一篇 2026年8月31日 11:49
下一篇 2026年8月31日 11:51

相关推荐

  • 手机app开发需要什么技术,手机app开发需要掌握哪些技术

    手机App开发需要掌握原生开发(Swift/Kotlin)、跨平台框架(Flutter/React Native)、后端服务(Node.js/Go)及云基础设施四大核心技术栈,2026年主流趋势已全面转向AI辅助编程与低代码平台结合的高效交付模式, 前端开发技术选型:原生与跨平台的博弈在2026年的市场环境下……

    2026年7月10日
    01064
  • 在线陪练开发怎么做?在线陪练开发费用及平台搭建教程

    2026年在线陪练开发的核心在于构建“低延迟、高并发、强互动”的实时音视频架构,结合AI智能评分与游戏化激励体系,以解决传统语言/技能学习中的反馈滞后与枯燥痛点,实现从“单向听课”到“双向实战”的体验跃迁,随着2026年生成式AI技术的成熟与5G-Advanced网络的普及,在线陪练市场已从早期的“真人1对1……

    2026年6月28日
    0831
    • 服务器间歇性无响应是什么原因?如何排查解决?

      根源分析、排查逻辑与解决方案服务器间歇性无响应是IT运维中常见的复杂问题,指服务器在特定场景下(如高并发时段、特定操作触发时)出现短暂无响应、延迟或服务中断,而非持续性的宕机,这类问题对业务连续性、用户体验和系统稳定性构成直接威胁,需结合多维度因素深入排查与解决,常见原因分析:从硬件到软件的多维溯源服务器间歇性……

      2026年1月10日
      020
  • 江苏pdu服务器电源哪个品牌好

    在江苏本地机房和IDC场景中,选择PDU服务器电源品牌,综合质量稳定性、售后响应速度和价格因素,突破(TOP)和克莱沃(CLEVER)是口碑最扎实的首选,若预算敏感则大唐保镖具备较高性价比,这句话是结论,也是本文要展开的核心,江苏作为制造业大省,机柜密度和电力环境复杂度都不低,选PDU不能只看“能用”,得看“长……

    2026年8月23日
    0383
  • 本溪网站建设开发怎么做?本溪网站建设开发费用

    在2026年,本溪网站建设开发的核心已不再是单纯的代码堆砌,而是基于“AI+本地化服务”的智能营销闭环,选择具备全栈技术能力且懂本地商业逻辑的开发团队,是获取高排名与高转化的唯一路径,随着搜索引擎算法向语义理解和用户意图深度解析演进,传统的模板化建站模式在本溪本地市场中已逐渐失效,企业若想在激烈的数字竞争中突围……

    2026年6月9日
    01002

发表回复

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