当前位置: 首页 > news >正文

Linux进程与端口“三剑客”:运维人的火眼金睛

一、俯瞰全局:“三剑客”如何分工协作

在深入细节前,我们先理清这三个工具在运维“侦查”工作中的定位:

侦查目标 → 对应工具 → 核心任务

  • 查看网络连接与端口占用netstat→ 网络状态统计(谁在监听?谁在连接?)
  • 查看进程详情与资源占用ps→ 进程状态快照(进程是谁?耗多少资源?)
  • 查看进程打开的文件/连接lsof→ 列出打开文件(进程正操作什么?)

🔗 组合使用流程示例:

代码语言:bash

AI代码解释

发现异常端口 → netstat -tunlp | grep [端口号] 确认是哪个进程 → lsof -i:[端口号] 查看该进程详情 → ps -ef | grep [进程PID]

⚙️ 二、命令详解:掌握核心武器的用法

1.netstat:网络连接的“交通指挥官”🚦

netstat是查看网络连接、路由表、接口统计的“瑞士军刀”。在较新的系统中,它可能默认未安装,需要先请它“出山”:

代码语言:bash

AI代码解释

yum -y install net-tools # CentOS/RHEL apt install net-tools # Ubuntu/Debian

📋 经典使用场景与参数组合:

场景

命令示例

参数解读与输出关键

查看所有监听端口

netstat -tunlp

-tTCP,-uUDP,-n数字形式,-l仅监听,-p显示程序名

查看指定服务/端口

netstat -tunlp

grep 22netstat -tunlp

grep nginx

快速过滤,22端口常为SSH,或直接搜索服务名

查看所有连接

netstat -an

-a所有,-n数字形式。输出中0.0.0.0:*表示监听所有地址

统计协议数据

netstat -s

-s按协议统计,可用于初步判断网络问题类型

持续监控

netstat -c

-c持续输出,类似top命令的刷新效果

📊 典型输出示例:

代码语言:bash

AI代码解释

# 执行命令:netstat -tunlp Active Internet connections (only servers) 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:631 0.0.0.0:* LISTEN 5678/cupsd tcp6 0 0 :::80 :::* LISTEN 9102/nginx: master udp 0 0 0.0.0.0:68 0.0.0.0:* 3333/dhclient

✅ 解读:可以看到SSH监听22端口,Nginx监听80端口,且0.0.0.0表示监听所有IPv4地址,::表示监听所有IPv6地址。

2.ps:进程快照的“档案管理员”📂

如果说netstat管“门”(端口),那ps就管“人”(进程)。它能给你一份系统进程的瞬时档案。

🆚 最常用的两组参数风格对比:

参数组合

特点与适用场景

常用命令示例

ps -ef

BSD风格,显示格式固定,信息全面。关键字段:UID, PID, PPID, C, STIME, TTY, TIME, CMD

ps -ef

grep nginxps -ef

grep 12345

ps aux

UNIX风格,更易阅读,尤其擅长查看资源占用。关键字段:USER, %CPU, %MEM, VSZ, RSS, STAT, START, COMMAND

ps aux

grep sshdps aux --sort=-%cpu

head -10

📊 典型输出示例:

代码语言:bash

AI代码解释

# 执行命令:ps -ef | grep nginx UID PID PPID C STIME TTY TIME CMD root 9102 1 0 08:00 ? 00:00:00 nginx: master process /usr/sbin/nginx nginx 9103 9102 0 08:00 ? 00:00:01 nginx: worker process # 执行命令:ps aux | grep sshd USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1234 0.0 0.1 12345 6789 ? Ss 08:00 0:00 /usr/sbin/sshd -D root 5678 0.0 0.0 8901 1234 ? S 09:30 0:00 sshd: alice [priv]

✅ 解读ps -ef清晰地显示了nginx进程的父子关系(PPID),而ps aux则列出了SSH进程的资源占用情况。

🚀 进阶技巧:使用--sort对结果排序,快速定位资源消耗大户:

代码语言:bash

AI代码解释

ps aux --sort=-%mem | head -5 # 查看内存占用前5的进程 ps aux --sort=-%cpu | head -5 # 查看CPU占用前5的进程
3.lsof:进程与文件的“关联侦探”🔎

lsof(List Open Files)非常强大,在Linux中“一切皆文件”,网络连接、设备、目录都被视为文件。因此,它特别擅长回答“这个端口/文件被哪个进程打开了?”这类问题。

📋 常用场景速查表:

场景

命令示例

说明

查看进程打开的文件

lsof -p 1234

查看PID为1234的进程打开了哪些文件

查看谁在占用端口

lsof -i :80lsof -i tcp:5500

-i查看网络连接,直接定位端口占用者

查看用户打开的文件

lsof -u root

查看root用户的所有文件操作

查看程序打开的文件

lsof -c nginx

查看所有nginx进程打开的文件

恢复误删的文件

lsof

grep deleted

查找已被删除但进程仍持有的文件,有机会恢复

📊 典型输出示例:

代码语言:bash

AI代码解释

# 执行命令:lsof -i :80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 9102 root 6u IPv4 54321 0t0 TCP *:http (LISTEN) nginx 9103 nginx 6u IPv4 54321 0t0 TCP *:http (LISTEN) # 执行命令:lsof -p 9102 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 9102 root cwd DIR 253,0 4096 2 / nginx 9102 root rtd DIR 253,0 4096 2 / nginx 9102 root txt REG 253,0 1234567 123456 /usr/sbin/nginx nginx 9102 root mem REG 253,0 123456 654321 /lib64/libc.so.6 nginx 9102 root 6u IPv4 54321 0t0 TCP *:http (LISTEN)

✅ 解读:第一个命令直接定位到占用80端口的进程是nginx;第二个命令详细列出了nginx主进程打开的所有文件、库和网络连接。

🥊 三、实战组合拳:排查问题的标准流程

当遇到“端口5500被占用”这样的典型问题时,一个高效的排查流程如下:

代码语言:bash

AI代码解释

# 1. 确认端口占用情况(netstat) netstat -tunlp | grep 5500 # 2. 精准定位占用进程(lsof,更直接) lsof -i :5500 # 输出会直接显示 COMMAND、PID、USER 等信息 # 3. 查看该进程的详细信息(ps) ps -ef | grep <上一步查到的PID> # 或查看资源占用 ps aux | grep <上一步查到的PID> # 4. 做出决策(比如停止进程) kill -9 <PID> # 强制终止,请谨慎使用 # 更温和的方式是先尝试: kill -15 <PID> # 发送终止信号,允许程序做清理工作

⚠️ 重要提示:kill -9(SIGKILL)是“强制拆除”,应作为最后手段。优先使用kill -15(SIGTERM),给程序一个“礼貌告别”的机会。

📊 四、总结对比表

命令

核心功能

擅长场景

一句话记忆

netstat

网络连接与统计

查看端口监听、连接状态、路由

“网络管家,管门又管路”🚪

ps

进程状态快照

查看进程存在、资源占用、父子关系

“进程相机,瞬间定格”📷

lsof

列出打开文件

定位端口/文件被谁占用、进程文件操作

“关联侦探,一查到底”🔍

💬 小互动

你在日常运维中,遇到问题最习惯先用哪个命令?是netstatps还是lsof?有没有什么让你印象深刻的排查经历或独家小技巧?欢迎分享!熟练掌握这“三剑客”,你就能在服务器出现网络、进程、资源问题时迅速定位病灶,从被动救火转向主动运维。命令参数无需死记硬背,收藏此篇,用到时随手查阅,多用几次自然就熟了。

http://www.jsqmd.com/news/466580/

相关文章:

  • 技术突破与效率革命:从功能限制到无限潜能的Cursor Pro全功能解锁实战指南
  • 2026工业机器人一体式IO模块抗恶劣环境技术分享:无线远程IO模块、远程分布IO模块、远程输出IO模块、IO远程模块选择指南 - 优质品牌商家
  • 你知道兰州性价比高出行方便酒店有哪些靠谱之选吗 - 工业设备
  • STM32F4 SYSCFG与DMA寄存器级协同配置实战指南
  • PDF-Extract-Kit-1.0多语言支持:中文文档处理专项优化
  • 2026年宁波地区传动轴优质生产商费用情况分析 - 工业品牌热点
  • Speech Seaco Paraformer语音识别实测:上传音频文件,5秒出文字结果
  • 总结2026年性价比高的蒸汽发生器制造厂,热景锅炉在列 - mypinpai
  • GLM-4-9B-Chat-1M新手入门:从镜像部署到Chainlit调用,完整实战教程
  • AI重塑SEO:从优化到对话革命
  • AI图像分割开源工具部署与应用指南:基于ComfyUI-YoloWorld-EfficientSAM的零基础实践
  • Partition架构
  • 解锁金融数据价值:YahooFinanceApi全流程应用指南
  • 2026年杭州靠谱档案外包专业机构推荐,档案存放与整理服务全解析 - 工业推荐榜
  • 从YouTube数据看用户偏好:Hadoop+MapReduce实战解析
  • 工业制造行业吊车出租:吊车出租/选择指南 - 优质品牌商家
  • Qwen3-VL-8B效果惊艳实测:看它如何准确描述复杂图片内容
  • c语言之“数组”初级篇
  • ChatGPT模型本地化部署实战:从环境搭建到生产级避坑指南
  • GLM-Image WebUI作品分享:中国风插画、科幻场景、抽象艺术三类展示
  • Meta亚历山大王走人?小扎回应了
  • 2026齿轴优质生产商推荐,嘉兴地区哪些品牌好用 - 工业设备
  • Python高级: 数据库类模块
  • 美胸-年美-造相Z-TurboGPU能效比:每瓦特算力生成图像数量行业领先17%
  • c语言和python区别
  • 新“顶流”出道!让智源Robo,承包你的科研日常!
  • 2026年知名的现场机加工钻孔镗孔公司推荐:现场机加工管道坡口冷切割生产厂家推荐几家 - 行业平台推荐
  • internlm2-chat-1.8b在研发团队的应用:自动生成PR描述+技术文档初稿案例
  • oracle使用PLSQL导出表数据
  • C++底层学习精进:模板进阶