Linux 企业常用服务
本篇覆盖面试和实际运维中最常被问到的 8 个服务:Nginx、Apache、NTP 时间同步、FTP、SSH、Ansible 自动化运维、Zabbix 与 Prometheus 监控。每个服务按「用途 → 核心文件 → 常用操作 → 排错要点」组织。
统一前提:systemd 服务管理
现在主流系统使用 systemd 管理服务,所有服务命令统一为 systemctl:
systemctl start nginx # 启动
systemctl stop nginx # 停止
systemctl restart nginx # 重启
systemctl status nginx # 查看状态
systemctl enable nginx # 设置开机自启
systemctl enable --now nginx # 启动 + 开机自启一步完成
日志排查: journalctl -u 服务名 查看指定服务的日志,排查服务报错优先看日志,而不是瞎猜。
防火墙: Rocky 使用 firewalld,Ubuntu 使用 ufw。访问服务不通优先检查防火墙策略——这是运维排错的第一反应。
1. Nginx 服务
用途: 静态网站服务、反向代理、负载均衡——三个用途要能脱口而出。
安装: yum install nginx 或 apt install nginx。
核心目录(必背):
| 路径 | 作用 |
|---|---|
/etc/nginx | 主配置目录 |
/etc/nginx/nginx.conf | 主配置文件 |
/etc/nginx/conf.d | 子配置目录,每个站点单独一个 conf 放这里 |
/usr/share/nginx/html | 默认网页根目录 |
/var/log/nginx | 日志目录:access.log 访问日志、error.log 错误日志 |
基础配置项:
server {
listen 80; # 监听端口,默认 80
server_name www.example.com; # 网站域名
root /usr/share/nginx/html; # 网页文件存放路径
index index.html index.htm; # 默认首页文件
location /api/ { # 匹配访问路径
proxy_pass http://127.0.0.1:8080; # 反向代理到后端
}
}
排错要点:
nginx -t检查配置语法——配置写错服务无法启动,改配置后必须先测再 reload。- 访问失败排查顺序(背下来):服务是否启动 → 端口是否监听(ss)→ 防火墙是否放行 → 配置文件路径权限是否正确 → 日志查看报错信息。
2. Apache(httpd)服务
用途: 老牌 Web 网站服务。
- 包名差异:Rocky 叫
httpd,Ubuntu 叫apache2。 - 核心路径:配置
/etc/httpd(Rocky)//etc/apache2(Ubuntu),主配置httpd.conf,网站根目录/var/www/html,日志/var/log/httpd。 - 常用命令与 systemctl 标准一致,
httpd -t检查配置语法。
Nginx vs Apache 对比(高频):
| 对比项 | Nginx | Apache(httpd) |
|---|---|---|
| 进程模型 | 事件驱动、异步非阻塞 | 多进程模型 |
| 并发能力 | 强,万级并发常见 | 相对弱,每个连接占用更多资源 |
| 稳定性 | 好 | 稳定性好、老牌成熟 |
| 典型场景 | 高并发、反向代理、静态资源 | 传统 Web、与老系统配合 |
一句话总结:Nginx 并发强适合做入口(反代 / 负载均衡),Apache 稳定适合传统 Web 业务。
3. NTP 时间同步服务
为什么需要: 服务器集群的时间必须一致——日志排序、数据库主从复制、分布式系统都依赖统一时间,时间不一致会导致排查日志困难、数据同步错乱。
企业主流方案: chrony(替代老的 ntpd)。
| 项 | 内容 |
|---|---|
| 服务名 | chronyd |
| 配置文件 | /etc/chrony.conf(写入上游 NTP 服务器地址) |
| 验证同步源 | chronyc sources |
| 验证同步状态 | chronyc tracking |
常见问题排查: 时间不同步 → ① 检查 chronyd 服务是否启动;② 防火墙是否放行 UDP 123 端口;③ 上游时间服务器是否可达。
4. FTP 服务(vsftpd)
- 用途: 文件上传下载,内部文件传输。
- 安装包:
vsftpd;配置文件:/etc/vsftpd/vsftpd.conf。 - 重点配置项:是否允许匿名访问、本地用户登录、上传权限。
- 默认端口:21(控制连接,数据连接另行协商)。
- 安全提醒(答题加分项): FTP 是明文传输(账号密码、文件内容都不加密),公网尽量不直接开放,优先使用 sftp(基于 SSH,传输全程加密)。
5. SSH 服务
用途: 远程连接 Linux 服务器,默认端口 22。
| 项 | 内容 |
|---|---|
| 服务名 | sshd |
| 配置文件 | /etc/ssh/sshd_config(注意是 sshd_config 服务端,ssh_config 是客户端) |
常用安全配置(高频):
Port 2222 # 修改默认端口,避开大量扫描
PermitRootLogin no # 禁止 root 远程登录
PasswordAuthentication no # 关闭密码登录
PubkeyAuthentication yes # 启用密钥登录
安全建议(必答): 生产环境关闭 root 密码登录,使用密钥登录——密钥比密码更长且不经过网络传输口令,能有效防御暴力破解。
6. Ansible 自动化运维
用途: 批量管理多台 Linux 服务器,实现配置下发、脚本执行、批量部署。
核心特点: 无客户端 agent——被管理节点不需要安装任何程序,通信基于 SSH。这就是「为什么不需要在被控机器装客户端」的标准答案。
核心文件:
| 文件 | 作用 |
|---|---|
/etc/ansible/ansible.cfg | 主配置文件 |
/etc/ansible/hosts | 主机清单,填写所有被管理服务器的 IP 并分组 |
两种使用方式:
# ① ad-hoc:单条命令批量执行,适合临时操作
ansible web -m shell -a "df -h"
# ② playbook:YAML 格式的任务剧本,适合可重复的批量任务
ansible-playbook test.yml
- playbook 适合:批量安装 nginx、推送配置文件、创建用户、定时备份等需要沉淀为标准流程的场景。
- 常用模块:
shell、command、copy、file、yum/dnf、service、template。
排错要点: ① 确认控制节点可以 SSH 免密登录所有被控机器;② 检查主机清单分组是否正确;③ YAML 格式严格,缩进不能用 Tab。
7. Zabbix 监控
用途: 老牌综合监控平台,监控服务器 CPU、内存、磁盘、端口、服务状态,支持告警。
四大组成(必背):
- Zabbix Server(服务端)
- Zabbix Agent(客户端,部署在被监控机器上采集数据)
- Web 前端页面
- 数据库(MySQL 存储监控数据)
端口: 服务端 10051,Agent 默认 10050。
基础流程: 安装服务端 + 数据库 → 被控主机安装 Agent → Web 页面添加主机 → 配置监控项、触发器、告警媒介。
适用场景: 传统运维监控,配置项丰富,适合中小型集群。
常见问题: Agent 无法上报数据 → 检查 10050/10051 端口连通性、防火墙、Agent 配置文件里的 Server 地址是否指向正确。
8. Prometheus 监控
用途: 云原生时代主流监控,用时序数据库存储监控指标,搭配 Grafana 做可视化面板。
架构特点: 拉取(Pull)模式——Prometheus 主动去各个 exporter 抓取指标,而不是客户端主动上报。
配套组件:
| 组件 | 作用 |
|---|---|
node-exporter | 采集服务器基础指标(CPU、内存、磁盘、网络) |
grafana | 绘图面板,展示监控图表 |
alertmanager | 告警管理,支持短信、邮件、企业微信告警 |
- 配置文件:
prometheus.yml——配置监控目标(targets)、抓取间隔、告警规则。
Zabbix vs Prometheus 对比(高频)
| 对比项 | Zabbix | Prometheus |
|---|---|---|
| 数据采集 | 推送模型(Agent 上报) | 拉取模型(主动抓取) |
| 适合环境 | 传统主机、中小型集群 | 容器、云原生环境(K8s 生态天然集成) |
| 数据存储 | 关系型数据库(MySQL) | 时序数据库 |
| 可视化 | 自带 Web 前端 | 搭配 Grafana,生态更强 |
一句话总结:Zabbix 推送、Prometheus 拉取;传统主机用 Zabbix,容器云原生用 Prometheus。
本篇速记
- 服务管理统一
systemctl,报错先journalctl -u 服务名,不通先查防火墙。 - Nginx 三用途:静态站点、反向代理、负载均衡;
nginx -t改配置后必做。 - 集群必须时间同步,用 chrony(UDP 123);FTP 明文,公网用 sftp。
- SSH 安全三板斧:改端口、禁 root、密钥登录。
- Ansible 无 agent、靠 SSH;ad-hoc 干临时活,playbook 沉淀标准流程。
- Zabbix 推送 + MySQL 存储,Prometheus 拉取 + 时序库 + Grafana。