centos怎么查看运行着哪些服务器,有哪些常用命令?

在CentOS系统上查看运行着哪些服务器,本质上就是查看当前系统运行了哪些服务、进程以及监听了哪些端口,核心工具是systemctl、ps、ss和lsof。把这几条命令组合起来,你就能在五分钟内摸清一台服务器的底细,下面咱们从最常用到最底层,一层层拆开讲。

先想清楚一个问题:你要查的是服务、进程,还是端口

很多人一上来就敲命令,结果查出来的东西和想象中完全对不上,原因在于“运行着哪些服务器”这句话在不同场景下指的东西不一样。

5分钟学会查看Linux端口占用情况
加载中
5分钟学会查看Linux端口占用情况
  • 服务(Service):通过systemd管理的守护进程,比如nginx、mysqld、httpd,这类东西用systemctl查。
  • 进程(Process):系统里所有正在跑的程序实例,包括非systemd管理的杂项进程,这类用ps和top查。
  • 端口(Port):某个服务到底占用了哪个端口,以及谁在监听这个端口,这类用ss和lsof查。

行业共识认为,排查问题时要先定位是服务级别的问题还是端口级别的问题,否则容易绕远路。

三个概念混在一起会出什么乱子

举个例子,你用systemctl status nginx看到服务是running,但网页就是打不开,这时候如果只盯着服务状态,永远找不到原因,真正的问题可能是nginx没监听80端口,或者监听在了一个错误IP上,反过来,你用ss -tlnp看到8080端口被占用了,但不知道是哪个程序占的,照样没法处理,所以这三个维度缺一不可,接下来逐个看命令。

centos 7系统 查看运行的服务,优先使用systemctl命令

CentOS从7代开始全面使用systemd替代了旧的SysVinit,service和chkconfig命令虽然还兼容,但展示的信息远不如systemctl直观。

systemctl list-units 查看所有活跃服务

最直接的一条命令是:

systemctl list-units --type=service --state=running

这条命令会列出所有正在运行的service单元,每行显示服务名、加载状态、活跃状态和简要描述,输出比较长,建议配合管道过滤,比如你想看有没有和数据库相关的服务:

systemctl list-units --type=service --state=running | grep -i sql

-i参数忽略大小写,这一招在你记不住服务全名的时候特别管用。

systemctl status 查看单独一个服务的运行细节

如果你知道服务大概叫什么名字,直接加状态查询:

systemctl status mysqld

输出结果会包含主进程PID、内存占用、CPU时间、最近几条日志信息,这个命令最大的价值在于:它把服务状态、进程信息和最近日志聚合到了一起,遇到服务启动失败的情况,这里直接能看到失败原因,省得再翻日志文件。

查所有服务而不只是一部分

记住一个技巧:不带

centos怎么查看运行着哪些服务器,有哪些常用命令?

--state=running参数是查看所有服务,包括已经退出的和被禁用的:

systemctl list-units --type=service

这条输出能看到哪些服务处于failed状态,在清理服务器时,关注failed状态的服务往往能发现历史遗留问题。

顺手查一下开机自启项

要了解一台服务器“平时都在干什么”,光看当前运行的不够,还得看开机自启:

systemctl list-unit-files --type=service | grep enabled

很多运维事故的根源,就是某个服务上次启动之后就死了,但系统重启后它又自己拉起来,占用了你没想到的端口,这条命令帮你提前看到这些“潜伏者”。

centos查看服务端口占用,用ss和netstat定位监听状态

知道有哪些服务运行只是第一步,很多冲突问题的根源是端口,而不是服务本身,比如你启动了一个新应用,提示端口被占用,你得立刻查出是谁占的。

ss命令是CentOS 7之后推荐的工具

ss -tlnp

参数拆开解释:

  • -t:只看TCP连接。
  • -l:只看监听状态的端口。
  • -n:不做域名反解,直接显示IP和端口号,速度快且干净。
  • -p:显示占用端口的进程PID和名称。

输出结果中Local Address:Port那列就是本机监听地址和端口,Process那列直接告诉你是哪个程序,这条命令在所有CentOS版本上都能用,不需要额外安装。

指定要查具体端口,过滤即可

端口太多了一屏看不完,精准定位更快:

ss -tlnp | grep :80

冒号不能省略,不然会把所有包含80的IP地址、端口全滤出来,干扰判断,记得在端口后面加结尾符更精确:

ss -tlnp | grep ':80 '

后面跟一个空格,彻底避免匹配到8080、8000这类干扰项。

netstat命令在一些旧版本上仍然有价值

CentOS 6或者更老的环境里,ss命令可能不存在(虽然少),netstat是当时的标配:

netstat -tlnp

参数含义和ss完全一致,CentOS 7及更高版本里netstat可能没默认安装,你需要先装net-tools工具包:

yum install -y net-tools

如果你在一个内存极其有限的服务器上,装net-tools显得笨重,用ss就够了,如果你是在熟悉的旧机器上操作,用netstat也完全没问题,两者输出格式很接近。

用lsof按进程反查端口

换个思路:你看到一个进程叫java,想搞清楚它到底占用了哪些端口,这时候ss不太好用,因为它需要你从一堆进程里翻,用lsof一步到位:

lsof -i -P -n | grep java

-i表示查看网络相关的文件,-P

centos怎么查看运行着哪些服务器,有哪些常用命令?

禁用端口名解析(直接显示数字端口),-n禁用域名反解,这条命令的输出会列出java进程所有已建立的连接和监听端口,lsof通常不是默认安装的,需要单独装:

yum install -y lsof

综合来看,日常排查时用ss查端口,用lsof按进程查端口,两者配合几乎覆盖所有场景。

用ps和top查看真正的底层进程状态

systemctl查的是systemd视角下的服务,但服务器上跑的进程不止这些,还有其他非托管程序,这时候回到最底层,用ps查看进程快照。

ps aux:查看完整进程列表

ps aux

这是Linux上最经典的进程查看命令,输出内容包括用户、PID、CPU占用、内存占用、虚拟内存、物理内存、终端、状态、启动时间、具体命令,搜索关键词是这个命令的精髓:

ps aux | grep python

grep前面最好加个[p]技巧防误匹配:

ps aux | grep [p]ython

这个技巧很老套但非常实用,不加方括号时,grep那条命令自身也会被匹配出来,多一行无用输出,干扰判断。

ps -ef:看到父子进程关系

ps aux的格式偏BSD风格,ps -ef则是标准风格,多了PPID(父进程PID)列:

ps -ef

看父子关系对你诊断问题极有帮助,比如你看到一堆nginx进程,PID各不相同,用ps -ef能看出谁是谁的主进程、谁是工作进程,主进程挂掉后,工作进程全部成孤儿,这通常是配置错误或崩溃的信号。

top:实时刷新查看资源占用大户

top命令一执行就进入交互界面,默认按CPU占用率排序,每三秒刷新一次,在一台卡顿的服务器上,第一眼就该看top,找出CPU或内存占用最高的那个进程,这就是问题的核心。

几个交互快捷键:

  • M:按内存占用排序。
  • P:按CPU占用排序。
  • k:输入PID直接杀掉进程。
  • q:退出。

按内存排序在排查内存溢出时异常高效,比如你的服务器内存用了90%,按M一看,最顶上一个java进程占了60%,问题定位基本完成。

实战场景:接手一台全新服务器怎么快速摸清家底

把前面这些命令串起来,形成一套操作流程。

第一步:查看服务列表

systemctl list-units --type=service --state=running

这一步摸清当前有多少服务在跑,心里有个大框架,如果服务数量超过50个,这台机器的运行情况就偏复杂了,建议把不用的服务停掉并禁用。

第二步:抓出监听端口

ss -tlnp

把监听的端口列出来,结合上一步的服务名,一一对应起来,一个端口对应一个服务,如果发现某个端口没有任何已知服务对应,立马查进程。

centos怎么查看运行着哪些服务器,有哪些常用命令?

第三步:按端口反查进程

lsof -i :8080

此时如果你的服务列表里没有8080,但lsof显示这个端口被某个不明程序占用,基本可以确定这台服务器上有来路不明的程序在运行,安全审计的关键就在这一轮。

第四步:确认系统整体运行时长和负载

uptime

这条命令虽然简单,但信息量不小:系统当前时间、运行时长、登录用户数、过去1分钟/5分钟/15分钟的平均负载,如果15分钟负载远高于1分钟负载,说明系统正在经历高峰压力;反过来如果1分钟负载特别高,说明刚刚发生了突发状况。

数据备份与定期巡检的落地建议

一个在上线时记录所有服务和端口的基准文档,比任何监控工具都实用,操作方式是在刚搭建完服务器、所有服务都正常运行的时候,执行一次:

systemctl list-units --type=service --state=running > /root/service_baseline.txt
ss -tlnp > /root/port_baseline.txt

保存好这两个文件,平时巡检时再执行一遍同样的命令,把输出和基准文件做对比,差异之处就是需要重点关注的对象,用diff直接比对:

diff /root/service_baseline.txt <(systemctl list-units --type=service --state=running)

这套方法不需要任何额外软件,只需要一个文件去保存基线数据,据工信部公开信息,近年来国内企业服务器操作系统中CentOS系列曾占据较大比例,系统管理员掌握这套基线对比思路,能显著降低运维误操作风险。

常见疑问解答

centos查看运行着哪些服务器,最推荐的命令组合是什么?

先执行systemctl list-units --type=service --state=running看服务全貌,再执行ss -tlnp看端口监听情况,最后用ps aux按需验证具体进程,这三条命令覆盖了服务、端口、进程三个维度,处理多数排查场景已经足够。

systemctl和ps查出来的结果不一样,这是怎么回事?

systemctl只管理systemd注册过的服务,ps查看的是系统全部进程,有些进程是用户直接启动的、临时执行的或者由脚本拉起的,并不在systemd的管理范围内,所以ps显示的进程数大于等于systemctl显示的服务数,这种情况正常,但如果一个服务在systemctl里是active,ps里却完全找不到对应进程,那多半是状态不同步或服务僵死,需要重启服务。

查看服务器上的运行服务需要root权限吗?

查看当前用户权限能看到的进程,普通用户执行ps aux能看到所有进程的基本信息,但ss -tlnp输出其他用户进程的PID和名称时需要root权限,没有root权限时ss -tlnp会隐藏进程信息列,只显示端口监听状态,生产环境建议通过sudo执行这些命令,避免权限不足导致信息不完整而误判。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/697662.html

赞 (0)
服务器最多能加几个网口,怎么扩展网络接口
上一篇 2026年10月1日 12:01
下一篇 2026年6月6日 18:55

相关推荐

  • Access如何查看存储过程?access数据库查看存储过程的方法

    在Access中查看存储过程最直接的方法是通过“数据库工具”选项卡下的“宏和代码”组点击“宏”,在弹出的窗口左侧导航窗格中展开“宏”节点即可看到所有宏对象,但需明确Access原生并不支持传统意义上的存储过程,而是使用宏或VBA模块来替代,很多从SQL Server或Oracle转过来的开发者,初次接触Micr……

    2026年7月1日
    1400
  • 移动互联网时代企业品牌如何打造?打造企业品牌要留意这5个技巧

    在移动互联网时代,企业品牌建设的核心已从单纯的流量获取转向基于信任与场景的深度连接,唯有通过精准定位、内容深耕、全渠道布局、用户互动及数据驱动这五大技巧,才能在2026年的存量竞争中立于不败之地,精准定位:从“广撒网”到“深扎根”过去那种“我是卖什么的”式自我介绍已经失效,2026年的用户注意力极度碎片化,如果……

    2026年6月23日
    1400
  • 顶级域名和一级域名有什么区别?顶级域名有哪些

    顶级域名(TLD)是互联网根目录下的最高层级后缀,如.com或.cn;一级域名(通常指二级域名或主域名)则是用户在顶级域名之下注册的独立名称,两者是包含与被包含的关系,而非并列竞争关系,顶级域名与一级域名的本质区别很多人容易混淆这两个概念,就像把“水果”和“苹果”当成两个独立的水果种类一样,要理清它们的关系,我……

    2026年6月24日
    1600
  • 域名和域名密码错误怎么办,如何正确设置域名和密码?

    域名和域名密码错误最常见的原因是登录入口选错、密码记混了,或者根本不在同一个平台管理,绝大多数情况下,这个问题不需要找客服,你只需要分清自己用的是哪类密码,然后去对应的官方控制台操作即可,在动手之前,先给你吃一颗定心丸:域名密码错误不会导致域名直接作废,域名是你花钱买到的资产,控制权不会因为密码输入错几次就丢失……

    2026年9月5日
    500
  • 视频网站高防服务器CDN加速效果好吗,视频网站高防服务器CDN加速多少钱

    视频网站选择高防服务器配合CDN加速,是解决大流量冲击、保障播放流畅度并抵御DDoS攻击的最优解,能显著提升用户体验并降低带宽成本,视频业务面临的网络挑战与基础架构痛点做视频网站的人都知道,流量就是生命线,但流量来了也是“灾难”,当百万级用户同时在线看高清视频时,普通的服务器架构就像是用吸管喝海水,瞬间就会被撑……

    2026年6月17日
    2610
  • 如何在WordPress中隐藏页面?WordPress隐藏指定页面详细教程

    在WordPress中隐藏页面最稳妥且不影响SEO的方法是通过“自定义字段”或“页面属性”控制显示逻辑,而非直接删除页面,这样既保护了敏感信息,又保留了内容管理的灵活性,很多站长在搭建网站时,都会遇到需要隐藏某些页面的情况,比如内部测试页、会员专属页,或者是不想让用户通过搜索找到的临时活动页,直接删除页面显然不……

    2026年6月25日
    2500
  • 深圳AI创业公司如何规划GPU算力租用成本,怎么收费?

    对于深圳AI创业公司,GPU算力租用成本规划的核心是分清模型训练与推理需求,选择按需或预付费模式,并优先考虑本地机房以减少网络开销,从而将单卡月成本控制在合理区间,深圳AI创业公司GPU算力租用价格对比:按需与包年哪个更划算?在深圳,AI创业公司面对GPU算力租用,最先纠结的就是计费模式,按需模式灵活,适合项目……

    2026年8月10日
    900
  • htm商城数据库怎么设计?htm商城数据库设计实例

    htm商城数据库设计的核心在于采用关系型与非关系型混合架构,通过读写分离、分库分表及缓存策略,解决高并发下的数据一致性与查询性能瓶颈,构建一个稳健的电商后台,不仅仅是把商品数据存进去那么简单,它涉及复杂的交易链路、库存扣减逻辑以及海量用户行为的实时分析,很多初创团队在初期往往忽视底层架构,导致后期流量激增时系统……

    2026年6月5日
    4300
  • 服务器线路怎么选?BGP和CN2有什么区别?

    服务器线路的选择直接决定了业务访问的速度、稳定性和用户体验,对于追求高性能的互联网业务而言,核心结论非常明确:如果业务主要面向国内大陆用户,首选CN2线路,特别是CN2 GIA线路,它能提供最优的延迟和稳定性;如果业务面向全球或需要极高的冗余容灾能力,BGP多线接入则是必选项, 在实际选型中,最理想的方案是CN……

    2026年3月8日
    13100
  • 服务器带宽费用怎么算最便宜?带宽收费标准价格表

    想要实现服务器带宽费用最低化,核心结论在于:打破单一采购模式,采用“混合带宽架构+精准流量调度+长周期合约锁定”的组合策略,单纯追求运营商单价最低往往陷入服务质量下降的陷阱,真正的便宜是“在满足业务性能前提下的总持有成本最低”,企业应当根据业务类型,将高单价的高质量带宽与低单价的普通带宽进行智能混合,利用技术手……

    2026年3月6日
    14100

发表回复

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