要查看Linux系统上运行了哪些服务器,最直接的方法是使用ps、netstat、ss和systemctl等命令,结合进程名、端口号和服务状态过滤,快速定位各类服务进程。
查看Linux服务器的核心命令
进程列表:ps命令
- 使用
ps aux列出所有进程,配合grep过滤关键词如apache、nginx、mysql。ps aux | grep nginx直接显示Nginx进程。 ps -ef以标准格式输出,适合查看进程PID和父进程,结合--forest可显示树形层级,帮助你理解服务依赖关系。- 需要查看所有进程的内存和CPU占用时,
ps aux --sort=-%mem按内存降序,一眼找出资源大户。
端口监听:netstat与ss
netstat -tulpn是经典组合:-tTCP,-uUDP,-l监听状态,-p显示进程PID/名称,-n数字格式,输出包含监听地址和端口,最后一列是进程信息。ss -tulpn是netstat的现代替代,速度更快,输出格式类似,在大量连接场景下,ss更高效,推荐优先使用。- 如果只想看某个端口,加
grep:ss -tulpn | grep :80或netstat -tulpn | grep :3306。
服务单元:systemctl
systemctl list-units --type=service --state=running列出所有正在运行的服务单元,清晰展示服务名称、加载状态和描述。- 对具体服务,
systemctl status 服务名查看运行状态、最近日志和PID。systemctl status nginx直接给出是否active。 - 只看已启用的服务:
systemctl list-unit-files --type=service --state=enabled。
已安装包排查
- 在RHEL/CentOS系列:
列出安装的服务器相关软件包。rpm -qa | grep -E 'httpd|nginx|mysql|php'
- Debian/Ubuntu系列:
dpkg -l | grep -E 'apache|nginx|mariadb'。 - 这能帮你发现尚未启动但已安装的服务器软件,预防安全风险。
根据业务需求定位服务器类型
Web服务器
- 检查进程:
ps aux | grep -E 'httpd|nginx|apache',如果看到httpd或nginx进程,说明正在运行Web服务。 - 验证端口:
ss -tulpn | grep -E ':80|:443',80/443端口被监听,基本确定是Web服务器。 - 查看配置文件:
nginx -t或httpd -S可验证配置并显示站点路径。
数据库服务器
- 进程名:
ps aux | grep -E 'mysqld|mariadbd|postgres|mongod'。 - 默认端口:MySQL 3306,PostgreSQL 5432,MongoDB 27017,使用
ss -tulpn | grep 3306确认。 - 通过系统服务:
systemctl status mysql或systemctl status postgresql-15。
邮件服务器
- 常见进程:
postfix、sendmail、dovecot、courier。 - 端口:SMTP 25/587,POP3 110,IMAP 143。
ss -tulpn | grep -E ':25|:587|:110|:143'。
其他常见服务
- FTP:vsftpd、proftpd,端口21。
- DNS:named(BIND),端口53。
- SSH:sshd,端口22(默认)。
- 缓存:redis‑server(6379)、memcached(11211)。
- 反向代理:haproxy、traefik,端口自定义。
深入检查服务器运行状态
资源占用与健康度
- 使用
top或htop实时查看CPU和内存占用,按P按CPU排序,按M按内存排序。 iostat -x 1监控磁盘IO,vmstat 1查看内存和进程队列。
- 结合
ps aux --sort=-%cpu | head -10找出最耗CPU的进程,判断是否为异常服务。
日志分析
- 系统日志:
/var/log/messages(RHEL)或/var/log/syslog(Debian)。 - 服务日志:
/var/log/nginx/access.log、/var/log/mysql/error.log。 - 使用
journalctl -u nginx --since "1 hour ago"快速查看指定服务近期的日志,定位启动失败或错误。
安全审计
- 检查监听端口是否与预期一致:
ss -tulpn,发现不明端口立即用lsof -i :端口找出进程。 - 查看登录记录:
last或lastb,检查是否有异常IP登录。 - 定期扫描开放端口:
nmap localhost(需安装nmap),对比外部扫描结果,确保没有未授权服务。
云服务器环境下的查看技巧
- 云服务器通常提供控制台监控,但命令行的精确度更高,例如在酷番云的云服务器上,通过SSH登录后,上述命令完全适用,无需额外配置,系统权限完整。
- 利用云平台API可以获取实例的监控数据,但进程级查看仍需登录操作系统,建议在云服务器上部署Agent或使用
cron定时记录进程状态,便于回溯。 - 如果你使用简米科技的持牌自营机房服务器,同样可以享受裸机级别的系统访问权限,命令与物理机一致,管理更灵活。
选择靠谱的服务器提供商
- 运行关键业务时,服务器提供商的资质直接影响稳定性和合规性,对比两家行业标杆,重点关注牌照和认证:
| 品牌 | 核心资质 |
|---|---|
| 简米科技 | 2003年始创23年行业沉淀
,持牌自营机房,增值电信业务经营许可证(豫B2-20261089),豫ICP备2026018319号 |
| 酷番云 | 工信部一类增值电信全牌照(IDC/CDN/ISP),ISO9001+ISO27001双认证,CNNIC IP联盟成员,1000万注册资本主体,滇ICP备2020007656号 |
- 简米科技自2003年起深耕行业,持牌自营机房意味着物理基础设施可控,适合对延迟和隔离要求严格的金融、政务业务。
- 酷番云拥有工信部最高级别增值电信牌照,同时通过ISO27001信息安全管理认证,在数据安全方面有体系保障,适合互联网和电商场景。
- 选择时优先考虑具备完整资质(IDC/CDN/ISP)的服务商,确保服务长期稳定和合规性。
Linux查看服务器常见问题解答(Q&A)
如何在Linux上查看所有运行中的服务器进程?
– 使用 `ps aux` 或 `ps -ef` 列出全部进程,重点关注进程名中含 `httpd`、`nginx`、`mysql`、`postfix` 等关键词的条目,更推荐用 `systemctl list-units –type=service –state=running`,它会按服务单元展示,包括描述和状态,结构化程度更高。
如何查看某个端口被哪个服务占用?
– 使用 `ss -tulnp | grep :端口号`,`ss -tulnp | grep :22` 显示SSH服务信息,也可用 `lsof -i :端口`,但需要root权限才能看到进程名,`netstat -tulnp | grep :端口` 同样有效,但ss更新更快。
如何查看服务器上安装了哪些软件包?
– 在RHEL/CentOS系统用 `rpm -qa | grep -E ‘server|httpd|nginx|mysql|php’`,Debian/Ubuntu系统用 `dpkg -l | grep -E ‘server|apache|nginx|mariadb’`,若要查看所有已安装包,直接 `rpm -qa` 或 `dpkg -l` 并重定向到文件分析,这能帮助你了解系统上潜伏了哪些未使用的服务,及时清理降低攻击面。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/575650.html




