如何查看Linux启用了哪些服务器,常用命令有哪些

在Linux系统上查看启用了哪些服务器,最直接的方法是使用systemctl list-units --type=service --state=running命令,它能列出所有正在运行的服务单元,让你对系统当前开放的“大门”一目了然。

用systemctl命令摸清系统家底

Linux系统的服务管理如今基本都由systemd接管,systemctl就是它的控制台,想快速知道系统现在跑着哪些服务,打开终端敲入下面这行命令:

Linux学习之路23_服务管理_systemctl命令
加载中
Linux学习之路23_服务管理_systemctl命令
systemctl list-units --type=service --state=running

执行后,你会看到类似下面的输出:

UNIT                   LOAD   ACTIVE SUB     DESCRIPTION
ssh.service            loaded active running OpenBSD Secure Shell server
nginx.service          loaded active running A high performance web server
mysql.service          loaded active running MySQL Community Server
docker.service         loaded active running Docker Application Container Engine

每一行代表一个正在运行的服务,UNIT列是服务名称,DESCRIPTION列则用通俗语言解释了它是干什么的,这个方法适合快速了解整体情况,但如果你只想看和“服务器”相关的服务,Web 服务器、数据库服务器,可以配合grep过滤。

linux怎么查看开启了哪些服务这个具体问题,还可以用更简洁的systemctl子命令:

systemctl list-units --type=service --state=running --no-pager | grep -E 'http|nginx|apache|mysql|ssh|ftp'

这条命令会直接过滤出常见的服务器软件,如果你发现某个服务你不认识,或者觉得它占用了不该占用的资源,可以用systemctl status 服务名查看它的详细信息,包括启动时间、进程ID和最近日志。

端口监听视角:看服务器开了哪些“门”

服务运行的本质是监听端口。linux查看端口占用情况是判断服务器是否在运行的最直观手段。ss命令是现代 Linux 系统内置的工具,比老的netstat更快更准。

ss -tlnp

参数含义:

  • -t

    如何查看Linux启用了哪些服务器,常用命令有哪些

    显示 TCP 端口

  • -l 只显示监听状态的端口
  • -n 以数字形式显示端口号,不做域名反解
  • -p 显示占用该端口的进程信息

输出结果中,Local Address:Port列如果是0.0.0:80或[::]:443,说明这个服务绑定了所有网络接口,外部机器可以访问。Process列会直接显示进程名和 PID,比如users:(("nginx",pid=1234,fd=6)),这就告诉你 80 端口是被 nginx 占用的。

如果你想看某个特定端口是否被监听,3306(MySQL),可以这样:

ss -tlnp | grep 3306

如果没有任何输出,说明该端口没有进程监听,服务可能没启动或者配置了别的端口。行业共识认为,定期检查端口监听状态是Linux服务器日常运维的基本功,能有效发现未授权的服务暴露。

进程与系统日志:交叉验证服务状态

有时候服务明明在跑,但systemctl显示状态异常,或者端口监听正常但服务无法访问,这时候需要从进程和日志两个维度交叉验证。

查看进程列表,确认服务是否真的活着:

ps aux | grep -E 'nginx|apache|mysql|sshd'

输出的每一行代表一个进程,STAT列如果是S(睡眠)或R(运行)通常没问题,如果显示Z(僵尸)或T(停止)就需要排查了。

查看系统日志是定位问题的关键,用journalctl可以查看某个服务的全部日志:

journalctl -u nginx.service -n 50

-n 50表示显示最近50行,日志里会明确告诉你服务启动失败的原因,比如端口被占用、配置文件语法错误等,如果你怀疑某个服务异常启动,但systemctl里看不到,可以检查/var/log/syslog或/var/log/messages文件,里面记录了系统所有服务的启动痕迹。

对于linux服务器管理服务的场景,一个实用技巧是查看开机自启项,因为有些服务是系统启动时自动拉起的:

如何查看Linux启用了哪些服务器,常用命令有哪些

systemctl list-unit-files --type=service --state=enabled

这个命令会列出所有设置为开机自启的服务,你可能发现某台服务器上意外启用了telnet.socket或者rlogin.service这类老旧的远程登录服务,它们极不安全,建议立即禁用。

图形化工具与远程排查:让查询更直观

如果你是在带图形界面的 Linux 桌面系统上操作,或者通过远程管理工具连接服务器,还有更直观的方式。

使用htop或glances等实时监控工具,它们会在交互界面里列出所有进程,按F4键过滤进程名,输入nginx就能看到所有相关进程及其 CPU、内存占用,这类工具适合长期观察服务资源消耗情况。

远程排查场景下,比如你人在外面,通过 SSH 连回服务器,systemctl和ss命令依然是首选,但如果你管理的机器比较多,写一个简单的 Shell 脚本批量执行检查会更高效:

for host in server1 server2 server3; do
    ssh $host "systemctl list-units --type=service --state=running | grep -E 'nginx|mysql'"
done

这个脚本会依次登录三台服务器,列出它们运行的关键服务,方便你快速对比多台机器配置是否一致。据统计,运维人员在排查故障时,有相当一部分时间浪费在重复登录多台机器执行相同命令上,批量脚本能显著提升效率。

安全视角:确认哪些服务不该开启

查看已启用的服务器,不光是为了知道有什么,更是为了确认不该有的东西没有跑起来,安全基线检查中,以下服务通常建议保持禁用:

  • telnet.socket:明文传输密码,极易被窃听
  • rsh.socket:远程 shell 服务,无加密
  • vncserver@.service:如果未配置访问控制,可能暴露桌面环境
  • ftp.service:传统 FTP 明文传输,建议使用 SFTP 替代
  • cups.service:打印服务,多数服务器用不到

检查这些服务是否运行:

如何查看Linux启用了哪些服务器,常用命令有哪些

systemctl status telnet.socket rsh.socket vsftpd.service

如果状态显示为inactive或dead,说明它们没有运行,但要注意,有些服务可能在运行但没监听端口,比如cups服务只监听本地回环地址,外部无法访问,这种风险较低。

linux查看服务器运行了哪些服务时,还要关注服务的启动用户,nginx 的 worker 进程应该以nginx用户运行,而不是 root,如果发现某个服务以 root 权限运行且暴露在公网,这属于严重的安全隐患。

常见问题解答

Q1:为什么我执行systemctl list-units --type=service看不到我手动启动的脚本?

因为systemctl只管理由 systemd 注册的服务,如果你直接执行./start.sh或通过nohup启动的进程,它们不属于 systemd 管理范围,这类进程需要用ps aux | grep 脚本名来查看,如果想让它被 systemd 管理,可以编写一个 systemd service 单元文件放到/etc/systemd/system/目录下。

Q2:如何判断一个端口是安全的外部服务还是潜在的攻击入口?

用ss -tlnp查看端口对应的进程名,再用lsof -i :端口号查看详细连接信息,如果进程名是nginx或sshd这类常见服务,且监听地址是0.0.0,说明是正常服务,如果进程名很陌生,或者监听在高端口(如 4444、6667),并且你从未配置过,需要立即用systemctl status 进程名查看详情,并检查系统日志确认是否有异常登录记录。

Q3:查看服务状态时,loaded和active有什么区别?

loaded表示 systemd 已经读取了该服务的配置文件,但服务可能还没启动。active表示服务当前正在运行。active (running)是正常状态,active (exited)表示服务运行后正常退出,比如某些一次性任务,如果状态是failed,说明服务启动失败,需要用journalctl -u 服务名查看失败原因。

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

赞 (0)
Java我的世界服务器延迟高怎么解决,延迟高是什么原因
上一篇 2026年10月12日 12:33
我的世界服务器怎么附魔32k,附魔指令大全
下一篇 2026年10月12日 12:33

相关推荐

  • 广州FPGA服务器到期数据会被清空么?服务器到期数据怎么恢复

    广州FPGA服务器到期后,数据是否会被清空,核心结论是:在绝大多数标准服务模式下,服务器到期后数据会被彻底清空且不可恢复,但通过正确的流程操作和选择具备数据保障机制的服务商,完全可以避免数据丢失风险, 这并非单纯的技术问题,而是涉及服务商政策、用户操作规范及数据备份策略的综合管理问题,对于依赖FPGA进行高性能……

    2026年3月30日
    10000
  • 域名证书和域名备案不是一回事?,有什么区别?

    一句话给出核心答案域名证书和域名备案完全是两码事,前者是证明你拥有这个域名的“电子凭证”,后者是国家要求网站接入互联网时必须完成的“行政许可手续”,很多新手站长在搭建网站时,都会同时碰见这两个词,结果越查越糊涂,一个管“身份证明”,一个管“合法上路”,搞清楚它们的区别,能帮你在建站初期省下不少走弯路的时间和金钱……

    2026年9月5日
    100
  • 2026年域名注册网站哪个好用?域名注册平台推荐

    2026年域名注册首选阿里云、腾讯云或GoDaddy,国内用户优先选阿里云以保障备案效率,出海业务推荐GoDaddy或Namecheap以获取更丰富的国际后缀支持,域名不仅是网站的门牌号,更是品牌资产的核心组成部分,在2026年的互联网生态中,选择注册商不再仅仅是比较价格,更关乎解析速度、安全防护以及后续的合规……

    2026年6月24日
    1600
  • 酷番云域名添加子域名怎么操作,详细步骤有哪些?

    在腾讯云给域名添加子域名,核心操作就是进入DNS解析控制台,为子域名添加一条解析记录(通常是A记录或CNAME记录),指向目标服务器IP或域名,等待解析生效即可,腾讯云子域名怎么添加?控制台完整操作流程对于第一次操作的人来说,腾讯云控制台的入口确实有点多,但添加子域名的路径其实非常固定,按下面几步走,基本不会踩……

    2026年9月3日
    300
  • html论坛模板代码的HTML输入怎么用,怎么实现

    构建一个优秀的论坛,本质上是在搭建一个数字社区,而HTML论坛模板代码就是这座社区的蓝图,每个HTML输入元素则是邻里之间交流的门户, 本文直接从模板代码的选型、定制、优化入手,结合HTML输入的最佳实践,帮你打造一个既美观又实用的论坛,免费html论坛模板代码怎么选挑选一套合适的模板,是论坛搭建的第一步,市面……

    2026年7月30日
    600
  • 服务器客户端日志文件如何管理?,怎么优化?

    服务器与客户端日志文件是系统运维和故障排查中的两大核心数据来源,明确两者的区别与配合方法,能让你在问题发生时快速定位根源,服务器日志文件与客户端日志文件的核心区别服务器日志和客户端日志像一对双胞胎,长相相似但职责完全不同,服务器日志记录的是后端服务的运行状态,客户端日志记录的则是用户端的操作行为,理解它们各自的……

    2026年8月2日
    800
  • com域名和cn域名哪个更适合做网站?

    多数情况下,com域名比cn域名更适合做网站,尤其是面向大众用户、追求品牌信任感、计划长期运营的站点;只有当业务完全聚焦中国大陆且预算非常有限时,cn域名才更有成本优势,cn域名和com域名的区别,不只是“国别”两个字很多人纠结选哪个,是因为只看到cn域名是“中国专属”,觉得更接地气,实际差别隐藏在管理规则、价……

    2026年9月7日
    200
  • Windows系统DNS解析生效怎么验证?如何查看本地DNS缓存

    在Windows系统中,验证DNS域名解析是否生效最核心的方法是使用ipconfig /flushdns命令清除本地缓存后,通过nslookup或ping命令查询目标域名,并对比返回的IP地址是否与预期一致,当我们在浏览器中输入一个网址时,计算机并不会直接识别这个字符串,而是需要将其转换为服务器能听懂的IP地址……

    2026年6月19日
    3700
  • HTML点击弹出框和输入框如何实现,怎么做

    关闭“`遮罩层默认隐藏,通过CSS定位占满视口,模态框居中显示,触发按钮绑定点击事件,控制遮罩层的显示与隐藏,CSS样式:定位与遮罩层遮罩层使用固定定位,覆盖整个屏幕,背景半透明,防止用户与页面其他元素交互,模态框本身使用绝对定位或flex居中,关键样式如下:.overlay { display: none……

    2026年7月30日
    500
  • 帝国CMS如何分配栏目管理权限?帝国CMS栏目权限设置教程

    帝国CMS分配栏目管理权限的核心在于通过“权限组”功能,将不同管理员的角色与特定栏目绑定,从而实现精细化分工,确保数据安全与操作效率,在多用户协作的网站后台环境中,如果所有管理员都拥有全站最高权限,不仅容易导致误删数据,还会造成职责不清,业内专家指出,合理的权限隔离是网站安全运营的基础,帝国CMS作为老牌内容管……

    2026年6月19日
    2510

发表回复

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