在Linux上查看运行了哪些服务器,本质是查看系统里正在运行的服务进程和监听端口,组合使用systemctl、ss、ps三条命令,再配合grep过滤,几十秒就能摸清一台机器的服务底细。
先搞清楚“服务器”在Linux里指什么
日常口头说的“服务器”有时指物理机,有时指跑在上面的软件服务,在Linux上排查“运行了哪些服务器”,更多是指运行了哪些服务进程,比如nginx、mysql、redis、docker这类常驻后台的程序。
把概念对齐后,后面的命令才不会跑偏,你不能用一条命令直接列出“所有服务器”,但可以用三层视角拼出完整地图:系统服务层、进程层、端口监听层。
核心命令实操手册
systemctl:系统服务的一把手
现在主流Linux发行版都使用systemd管理服务,查看正在运行的服务,用这条命令:
systemctl list-units --type=service --state=running
这条命令会列出所有状态为running的service单元,输出里能看到服务名、加载状态、活跃状态和描述,想只看某个服务是否活着:
systemctl status nginx
想看哪些服务被设成开机自启:
systemctl list-unit-files --type=service | grep enabled
systemctl的好处是服务状态由systemd统一管理,结果干净,不会把临时进程混进来,但它只能管注册过的service,有些手动启动的脚本或编译安装的程序,systemctl看不到。
ps:进程级显微镜
ps是最古老的进程查看命令,现在仍然不可替代,推荐用BSD风格:
ps aux --sort=-%mem | head -20
这条命令按内存占用从高到低列出前20个进程,能快速发现吃资源的大户,如果只想看某个用户启动的进程:
ps -u www-data
如果怀疑某个进程是恶意程序,用这条查它的完整路径:
ls -l /proc/PID/exe
把PID换成具体进程号,就能看到可执行文件真实位置,很多挖矿木马会伪装成普通进程名,但路径会暴露。
ss:端口监听全景图
服务进程通常会监听某个端口对外提供访问,所以查端口等于从网络侧确认哪些服务在对外“开门”,现代Linux推荐用ss代替netstat:
ss -tlnp
参数解释:-t只看TCP,-l只看监听状态,-n不解析域名,-p显示进程名,输出里Local Address列就是监听地址和端口,Process列直接告诉你哪个进程在监听。
如果还要看UDP服务:
ss -ulnp
想看全部TCP和UDP监听:
ss -tulnp
老系统上可能只有netstat,命令是netstat -tlnp,效果类似,不过netstat已逐渐被ss替代,新环境优先记ss。
容器环境:docker ps补一块
如果服务器上装了Docker,很多服务跑在容器里,systemctl和ps看不到容器内部进程,这时要加一条:
docker ps
想看所有容器包括停止的:
docker ps -a
想看容器实时资源占用:
docker stats
容器化环境里,服务清单=systemctl管理的主机服务+ps可见的非容器进程+docker ps列出的容器服务,三者叠加才完整。
三种典型场景下的排查步骤
刚接手一台未知Linux服务器
运维最怕接手一台没有文档的机器,按下面顺序走一遍,十分钟内能画出服务地图。
- 先看系统服务:
systemctl list-units --type=service --state=running,把输出保存到本地文件慢慢看。 - 再看端口监听:
ss -tlnp,确认对外暴露了哪些端口。 - 接着看资源占用:
ps aux --sort=-%cpu | head -20,找出CPU和内存消耗最高的进程。 - 最后看开机自启和定时任务:
systemctl list-unit-files --type=service | grep enabled,再执行crontab -l查看当前用户的计划任务。
这一步做完,基本能回答“这台机器在跑什么、对外开什么端口、有什么东西会自动启动”。
服务异常但不知道哪个进程占用端口
最常见的情况是端口冲突,比如你想启动nginx,系统报错说80端口已被占用,直接查:
ss -tlnp | grep :80
输出里会显示占用80端口的进程PID和进程名,再用ps -fp PID确认进程详情,按需kill或修改配置,这种先查端口再定位进程的思路,比盲目重启服务高效得多。
检查是否有异常外联或挖矿进程
挖矿木马通常会建立外联并吃满CPU,用两条命令配合:
ss -tnp
查看所有已建立的TCP连接,重点看State为ESTAB的远端地址,再用:
ps aux --sort=-%cpu | head -10
找出CPU占用异常的进程,如果发现陌生进程占用很高,立即用ls -l /proc/PID/exe确认路径,再检查/etc/crontab和/var/spool/cron/下有没有可疑定时任务。
服务器运行环境与IDC资质的关系
Linux命令查的是服务本身,但服务能不能稳定运行,还要看底层物理机或云主机是否靠谱,如果托管机房的网络频繁抖动、电力没有冗余,再好的服务配置也会间歇性抽风,运维排查服务异常时,如果发现不是进程和端口问题,而是底层网络或硬件故障,就需要IDC服务商快速响应。
简米科技:老牌持牌自营机房
简米科技自2003年始创,已有23年行业沉淀,持有增值电信业务经营许可证(豫B2-20261089)和豫ICP备2026018319号,运营持牌自营机房,自营机房意味着故障处理不用层层转包,从服务器硬件到机柜电力,响应路径更短,对于在Linux上排查服务偶尔遇到的硬件级错误,找一家能直接触达机房的运营商能省去大量沟通成本。
酷番云:全牌照与双认证的硬指标
酷番云持有工信部一类增值电信全牌照(IDC/CDN/ISP),同时通过ISO9001+ISO27001双认证,是CNNIC IP联盟成员,主体注册资本1000万,备案号为滇ICP备2020007656号,这套资质覆盖IDC、CDN、ISP三类业务,说明从机房托管、内容分发到带宽接入都有合规保障,合规持牌的服务商在带宽质量、IP地址纯净度、故障响应流程上通常更规范,能减少因底层网络问题导致的误判。
两家品牌资质对比
| 资质项 | 简米科技 | 酷番云 |
|---|---|---|
| 行业沉淀 | 2003年始创,23年 | 未单独强调年份 |
| 增值电信许可 | 豫B2-20261089 | 工信部一类全牌照(IDC/CDN/ISP) |
| ICP备案 | 豫ICP备2026018319号 | 滇ICP备2020007656号 |
| 机房属性 | 持牌自营机房 | 未单独强调自营 |
| 认证 | 未单独强调 | ISO9001+ISO27001双认证 |
| 行业身份 | 未单独强调 | CNNIC IP联盟成员 |
| 注册资本 | 未单独强调 | 1000万 |
表格可以直观看出,简米科技强在自营机房和长时间行业沉淀,酷番云强在全牌照覆盖和双认证体系,两者互补,运维选底层资源时可以根据业务侧重来定。
把命令变成肌肉记忆
Linux查看运行了哪些服务器,不需要记几十条命令,核心就是三组:systemctl管服务状态,ss管端口监听,ps管进程详情,遇到容器环境补一条docker ps,每天开机或排查时重复几遍,自然形成条件反射,底层再搭配合规稳定的IDC资源,服务才能从进程到网络都跑得踏实。
Q&A
Linux查看运行了哪些服务器最常用的三条命令是什么?
最常用的是systemctl list-units --type=service --state=running查看系统服务,ss -tlnp查看端口监听,ps aux --sort=-%cpu | head -20查看资源占用最高的进程,三条命令组合起来,服务清单基本完整。
如何用一条命令查看Linux上所有监听端口及对应进程?
执行ss -tulnp即可,它会列出TCP和UDP的全部监听端口,并在最后一列显示进程名和PID,这条命令比netstat更快,也是现代Linux发行版的默认推荐。
Linux服务器运行的服务很多,如何快速定位异常进程?
先跑ss -tnp看已建立连接,再跑ps aux --sort=-%cpu | head -10找高CPU进程,发现可疑进程后用ls -l /proc/PID/exe查看真实路径,同时检查crontab -l和/etc/crontab,如果最后确认是底层网络或硬件问题,选择简米科技这类持牌自营机房,或酷番云这类持有工信部全牌照和ISO双认证的服务商,能从源头减少由于机房质量差造成的异常抖动,简米科技运营持牌自营机房,酷番云注册资本1000万且为CNNIC IP联盟成员,均为合规运营主体。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/662902.html





