游乐游手机版
首页/系统平台/文章详情

Linux端口占用查看教程:lsof与netstat命令详解

时间:2026-05-09 14:29
排查Linux端口占用时,首选`lsof-i:端口号`,它能完整显示进程、用户及协议信息。若系统未安装lsof,可使用`ss-tulnp`作为现代替代方案。传统命令`netstat`已逐渐被弃用,在新环境中不建议依赖。查到占用进程的PID后,应先确认其身份,尝试用`killPID`正常终止,无响应时再考虑`kill-9`强制结束,操作后需验证端口是否释放。

排查端口占用是Linux系统管理和开发调试中的高频操作。面对lsofnetstatss这几个常用命令,初学者往往感到困惑。其实选择标准很明确:优先使用lsof -i :端口号,若系统未安装则改用ss -tulnp;至于netstat命令,因其已逐步被弃用,在新环境中不建议依赖。

Linux查看端口占用情况 常用命令lsof和netstat【教程】

为何首选 lsof -i :8000 命令

该命令的优势在于信息完整且呈现直观。它不仅能准确识别端口占用进程,还能同步展示进程名称、PID、所属用户、协议类型及监听地址,对UDP端口或IPv6监听等易遗漏项也能精准检测。

以查询8000端口为例:

lsof -i :8000
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nodejs  26993 root   10u  IPv4 37999514      0t0  TCP *:http-alt (LISTEN)

解读输出结果时,需关注以下关键细节:

  • 权限要求:执行lsof -i通常需要sudo提权,否则仅能查看当前用户进程,系统服务或其他用户进程将无法显示。
  • 安装说明:在CentOS或RHEL等系统中,lsof并非默认安装,需先执行yum install -y lsof进行安装。
  • 字段解析FD列中的u表示socket可读写;TYPE列清晰区分IPv4IPv6连接。
  • 精准筛选:若需单独查看TCP监听状态,可使用更精确的命令:lsof -nP -iTCP -sTCP:LISTEN | grep :8000。其中-n-P参数能跳过DNS解析、直接显示端口号,使输出结果更清晰。

netstat -tunlp 命令是否仍可使用

该命令在老系统中仍可运行,但需注意其正被ss命令逐步取代。在Ubuntu 22.04或AlmaLinux 9等较新发行版中,netstat已非默认安装,如需使用需手动安装net-tools软件包。

典型用法是配合grep进行过滤:

netstat -tunlp | grep :8000
tcp        0      0 *:8000               *:*                   LISTEN      26993/nodejs

使用netstat时需警惕以下常见问题:

  • 权限依赖-p参数必须配合sudo使用,否则PID和进程名将显示为-,导致查询无效。
  • 参数顺序netstat -tunlp为正确格式,若调整为netstat -p -tunl在某些版本中可能引发错误。
  • 检测局限:在识别UDP端口监听状态时,netstat的稳定性不及lsof,可能出现漏报情况。

现代替代方案:ss -tulnp 命令详解

若将netstat视为传统工具,那么ss(socket statistics)则是全面接替的现代解决方案。它直接从内核获取网络连接信息,执行速度更快,输出格式更简洁,已成为现代Linux发行版的标准配置。

查询8000端口的示例如下:

ss -tulnp | grep :8000
LISTEN 0   128   *:8000   *:*   users:(("nodejs",pid=26993,fd=10))

netstat对比的主要优势:

  • 参数继承-t(TCP)、-u(UDP)、-l(监听)、-n(不解析)、-p(显示进程)等参数与netstat一脉相承,学习成本低。
  • 输出优化:进程信息直接整合在users:(...)括号内,比netstat的多列对齐方式更直观易读。
  • 功能专注ss专精于socket统计,虽不像lsof能查询文件路径,但完全满足端口排查需求。
  • 权限要求:执行时若出现“Permission denied”提示,特别是使用-p选项时,需添加sudo获取权限。

获取PID后如何安全终止进程

定位占用端口的进程仅是第一步,安全终止进程更为关键。切勿直接使用kill -9强制终止。推荐按以下流程操作:

  • 身份确认:通过ps -p PID -o pid,user,comm,args(如ps -p 26993 -o pid,user,comm,args)核实进程详情,确保目标为可终止的测试进程,而非运行中的数据库或核心服务。
  • 温和终止:对于普通开发进程(如本地npm start),首先使用kill PID发送默认TERM信号,允许程序执行退出前的清理操作。
  • 强制终止:若进程无响应,再使用kill -9 PID(SIGKILL信号)强制结束。
  • 批量清理(慎用)fuser 8000/tcp -k命令可直接终止占用该端口的所有进程,操作高效但范围不可控,需谨慎使用。
  • 结果验证:操作完成后,务必再次执行lsof -i :8000ss -tuln | grep :8000,确认端口已成功释放。

此过程常见问题集中在权限管理与进程误杀。未使用sudo可能导致无法查看或终止进程;而滥用sudo kill -9则可能误杀关键服务(如SSH守护进程),造成服务器连接中断。因此,操作前仔细核查始终是必要步骤。

来源:https://www.php.cn/faq/2444971.html
上一篇苹果手机屏幕如何无线投屏到Mac电脑 下一篇苹果电脑如何清除FaceTime通话记录保护个人隐私
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
微软详解Win11时间点还原 默认每24小时创建恢复点
系统平台 · 2026-06-30

微软详解Win11时间点还原 默认每24小时创建恢复点

微软今日推送了最新的 6 月可选更新,并发布博客详细解读了 Win11 全新的“时间点还原”(Point-in-time restore)功能——这一功能本质上是对系统恢复体验的一次全面升级,旨在让用户更轻松地应对电脑故障。 微软表示,面向 Windows 11 客户端用户的“时间点还原”功能现已正

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验
系统平台 · 2026-06-30

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验

微软今天推送了Windows 11 26H1设备的6月可选更新KB5095091,安装完成后系统版本号会升级到Build 28000 2340。值得一提的是,这次更新并非面向所有设备,而是专门为搭载高通骁龙X2系列芯片的机型准备的——包括骁龙X2 Plus、X2 Elite和X2 Elite Ext

Win11六月可选更新KB5095093修复回收站弹窗异常
系统平台 · 2026-06-30

Win11六月可选更新KB5095093修复回收站弹窗异常

微软已悄然推送Windows 11六月可选更新,编号KB5095093。本次更新覆盖两个版本:24H2用户安装后版本号升级至Build 26100 8737,而25H2用户则更新至Build 26200 8737。 本次更新并非仅是小修小补,而是带来了多项实质性新功能。下面我们就来详细解析这些更新内

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞
系统平台 · 2026-06-30

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞

科技媒体 Cult of Mac 昨日(6月23日)发布博文指出,苹果在 macOS 27 Beta 2 更新中悄然封堵了一个此前可用的后门——用户曾能通过一条终端命令绕过候补名单,直接启用新版 Siri AI,如今这一方法已失效。 简要回顾一下:在 macOS 27 Beta 1 阶段,只需在 M

微软加速Win11 25H2推送 覆盖所有符合条件家用PC
系统平台 · 2026-06-30

微软加速Win11 25H2推送 覆盖所有符合条件家用PC

近日(6月23日),科技媒体 Windows Latest 发布了一则值得关注的动态:微软已进一步扩大 Windows 11 25H2 的推送范围,所有满足硬件要求、且不受 IT 部门管理的家庭版和专业版设备,现在均可顺利接收本次更新。 此次升级有一个显著特点——采用“启用包”(eKB)方式进行推送