23
0
0
上海安畅网络面经
运维/技术支持面试问题
"是什么 → 排查思路 → 解决办法/命令"
一、网络基础与协议
1. OSI 七层模型
- 应用层:HTTP、FTP、SMTP、DNS —— 直接面向用户的服务
- 表示层:数据格式转换、加密解密、压缩(如 SSL/TLS、JPEG)
- 会话层:建立、管理、终止会话(如 RPC)
- 传输层:TCP/UDP,端口号,可靠传输、流量控制、拥塞控制
- 网络层:IP、路由、寻址,数据包转发(路由器工作在这一层)
- 数据链路层:MAC 地址、帧,交换机工作在这一层,差错检测(CRC)
- 物理层:比特流、电信号、网线/光纤
记忆口诀:"物、数、网、传、会、表、应"(从下到上)。面试若被问"OSPF",要礼貌纠正为 OSI。OSPF 是路由协议(开放最短路径优先),属于网络层。
2. VLAN 是做什么的
- 虚拟局域网(Virtual LAN):把物理网络在逻辑上划分成多个相互隔离的广播域。
- 作用:
- 隔离广播域,减少广播风暴对整个网络的影响
- 提高网络安全性(不同部门/区域隔离,不能直接互访)
- 便于管理、灵活组网,二层隔离 + 三层路由互访
- 示例:交换机上把端口划分到 VLAN 10、VLAN 20,不同 VLAN 之间通信需要三层路由(如网关)。
3. ARP 协议是做什么的
- 地址解析协议(Address Resolution Protocol):在局域网内把 IP 地址解析为 MAC 地址。
- 过程:主机发 ARP 广播"谁是 192.168.1.1?",目标回复自己的 MAC,主机存入 ARP 缓存表(arp -a 查看)。
- 注意:ARP 只工作在二层局域网内;跨网段通信靠网关(MAC 是网关的)。
4. HTTP 与 HTTPS 的区别
| 对比项 | HTTP | HTTPS |
|---|---|---|
| 端口 | 80 | 443 |
| 加密 | 明文 | SSL/TLS 加密 |
| 证书 | 无 | 需要 CA 证书 |
| 安全性 | 易被窃听/篡改 | 数据加密、防篡改、身份认证 |
- 流程:HTTPS = HTTP + SSL/TLS,先做 TLS 握手(交换密钥),再加密传输。
- 面试加分点:HTTPS 的握手过程(ClientHello → ServerHello → 证书验证 → 密钥交换 → 加密通信)。
5. HTTPS 访问提示"不安全"的原因
- 证书过期了
- 证书不受信任(自签名证书、不是权威 CA 签发的)
- 证书的域名不匹配(访问的域名和证书绑定的域名不一致)
- 混合内容(Mixed Content):页面里有 http 开头的资源
- 证书链不完整、系统时间不对
- 排查:查看证书详情(有效期、颁发者、域名)、用 openssl s_client 检查证书链、检查页面资源协议。
6. --sport 和 --dport 的区别(iptables)
- --sport(source port):源端口,即发送方使用的端口
- --dport(destination port):目的端口,即接收方(服务器)的端口
- 例:放行访问本机 80 端口 → 用 --dport 80;限制某端口出站 → 用 --sport。
- 记忆:dport 是 Destination(目的地),服务器一般都用 dport 放行入站。
7. 两台机器 ping 不通怎么排查
按链路从近到远:
- 本机自检:ping 127.0.0.1(网卡/协议栈是否正常)、ip addr(IP 是否配好)
- 同网段网关:ping 网关,通则局域网通
- 跨网段:检查路由(route -n / ip route)、traceroute(tracert)看丢在哪一跳
- 防火墙:检查 iptables/firewalld 是否禁了 ICMP(ping 常被防火墙屏蔽,但不代表服务不通)
- ARP:arp -a 看 MAC 是否解析正常
- 对端服务:即使 ping 不通,可能只是禁 ping,用 telnet IP 端口 测业务端口
8. 服务器丢包,偶发且有规律,是哪个参数的问题
- 偶发+有规律,重点考虑周期性、缓冲类问题:
- 网络设备/网卡丢包:ethtool -S 看 rx_dropped、ifconfig 看 RX/TX errors
- TCP 重传/丢包:netstat -s 看重传率
- 拥塞控制 / 环形缓冲区(ring buffer)溢出:ethtool -g 看 rx ring 是否打满
- 内核参数:如 net.core.rmem_default、net.core.wmem_max、net.core.somaxconn(backlog 队列)满丢包
- 周期性规律可能是定时任务、监控脚本突发流量、连接数峰值(如每秒新建连接)
- 典型方向:连接数峰值、缓冲区打满、周期性业务高峰。
9. 跳数丢包率计算题
第三跳丢 40%,第四跳丢 50%,第五跳丢 10%,最后还有多少包?
- 丢包率是逐跳独立的,需要乘起来计算剩余率:
- 经过第三跳剩余:100% x (1 - 40%) = 60%
- 再经第四跳剩余:60% x (1 - 50%) = 30%
- 再经第五跳剩余:30% x (1 - 10%) = 27%
- 答案:最后剩余 27% 的包(若按 100 个包算,剩 27 个)。
二、HTTP 状态码与 Nginx
1. 502 / 503 / 504 / 404 的原因
- 404 Not Found:请求的资源/页面不存在。原因:路径写错、文件被删、站点根目录配置错(nginx root 配错)、静态资源缺失。
- 502 Bad Gateway:网关/代理收到了上游服务器的无效响应。常见原因:后端(PHP-FPM、Java 应用、MySQL)挂了、未启动、崩溃;PHP-FPM 进程耗尽;后端响应异常。
- 503 Service Unavailable:服务暂时不可用(服务器过载或维护中)。原因:并发过高、连接数打满、nginx 配置维护页、后端无可用节点。
- 504 Gateway Timeout:网关等待上游响应超时。原因:后端处理慢、PHP-FPM 卡死、proxy_read_timeout / fastcgi_read_timeout 设太短、数据库慢查询。
排查思路:先看是哪个环节(nginx → 后端),查看后端与 nginx 的错误日志,用 ss -lntp 看后端端口是否监听,测试后端本身是否通。
2. 502 报错 + nginx 配置完访问不了怎么排查
- 确认 nginx 语法:nginx -t(配置是否正确)
- 确认 nginx 运行:ps -ef | grep nginx、systemctl status nginx
- 确认监听端口:ss -lntp | grep 80(或配置的端口)、curl -I 本机IP
- 确认后端服务:502 多半是后端挂了 —— 查看 php-fpm 等后端状态、测试后端端口
- 看错误日志:tail -f /var/log/nginx/error.log、PHP-FPM 日志
- 防火墙/安全组:是否放行端口
- 权限问题:nginx 用户对站点目录没有读权限(403 常见)
3. 403 报错原因
- 服务器理解请求但拒绝执行。
- 常见原因:
- 权限不足:目录/文件没有读权限(如目录是 700,nginx 用户读不了)
- SELinux 拦截(setenforce 0 测试或查看 audit 日志)
- 缺少首页文件:如没有 index.html/index.php(autoindex 关闭时)
- 防盗链/访问控制规则:nginx 配置了 deny、allow 规则
- .htaccess / 目录索引被禁
- 排查:ls -l 看权限、getenforce 看 SELinux、查看 error.log。
4. 返回码 403 / 404 / 405 的意思
- 403 Forbidden:有权限限制,禁止访问
- 404 Not Found:资源不存在
- 405 Method Not Allowed:请求方法不允许(如只允许 GET/POST,却用了 DELETE/PUT,或静态服务器不支持该方法)
5. Nginx 常用操作
- 启动/停止/重启:nginx / nginx -s stop / nginx -s reload(平滑重载)
- 测试配置:nginx -t
- 查看版本/编译参数:nginx -V
- 查看进程:ps -ef | grep nginx、systemctl status nginx
- 常用配置点:server/location、反向代理 proxy_pass、负载均衡 upstream、SSL 证书、静态文件 root、gzip、日志。
6. Nginx 配置固定看一个页面,刷新不丢失
- 把该页面设为默认首页/默认 location,用 index 指定默认页:
- 在 server 块里配置 location / 指向 root 下的 index.html,保证 root 目录存在且该文件存在、有读权限即可。
- "刷新不丢失" = 每次访问默认落到这个页面,配好 index 和 location / 即可。
7. Nginx / MySQL 端口号
- Nginx:80(HTTP)、443(HTTPS)
- MySQL:3306
三、Linux 系统管理与登录排查
1. 登录日志在哪个路径
- CentOS / RHEL:/var/log/secure(认证与登录相关)
- Debian / Ubuntu:/var/log/auth.log
- 查看:tail -f /var/log/secure、grep sshd /var/log/secure
- 另:/var/log/messages(系统通用日志)、/var/log/syslog(Debian)
2. SSH 登录不上是什么原因
排查链路:
- 网络通不通:ping、telnet IP 22
- sshd 服务:systemctl status sshd、ss -lntp | grep 22
- 端口/配置:/etc/ssh/sshd_config 是否改过端口、PermitRootLogin 是否禁止 root
- 防火墙:iptables/firewalld/ufw 是否放行 22
- 认证问题:密码错误、账号被锁定(多次失败)、AllowUsers 限制
- PAM 配置:/etc/pam.d/sshd 是否配置错误
- SELinux:getenforce
- 看日志:tail -f /var/log/secure(或 auth.log)
3. PAM 你了解吗
- PAM = Pluggable Authentication Modules(可插拔认证模块)。
- 提供统一的认证机制,让不同程序(sshd、login、su、sudo)共享认证配置,支持多种认证方式(密码、令牌)。
- 配置文件:/etc/pam.d/ 下(如 sshd、login、sudo)。
- 常见模块:pam_unix(传统密码)、pam_faillock(锁定失败登录)、pam_limits(资源限制)、pam_nologin、pam_securetty。
- 若 PAM 配置错误会导致所有用户无法登录(常见坑:误改 pam.d 后重启服务登录不上)。
4. 单用户 / 系统登不上去,卡在登录界面
- 卡在登录界面常见原因:
- 磁盘满(df -h)导致无法写入 session 文件
- 服务未启动/依赖问题(DBus、登录管理器)
- 内存不足、swap 爆满
- 内核崩溃/驱动问题
- home 目录权限、.Xauthority 问题(图形界面)
- 单用户模式(救援):GRUB 启动菜单按 e 编辑内核行,在 linux16 行末尾加 single(或 rd.break)进入单用户,可重置密码、修复配置。
- 排查:先进单用户,df -h、dmesg、检查磁盘与日志。
5. Linux 密码忘了怎么做
- 重启进入 GRUB,按 e 编辑启动项
- 找到 linux16 / linux 开头的内核行,行尾追加 rd.break(RHEL/CentOS7)或 single(CentOS6)
- Ctrl+X 启动,进入紧急/单用户模式
- 重置密码(rd.break 为例):
- mount -o remount,rw /sysroot
- chroot /sysroot
- passwd root
- touch /.autorelabel(如果启用了 SELinux)
- exit 后 reboot
- 用新密码登录。
6. 用户把磁盘删了导致开不了机,怎么排查
- 删了系统盘/启动分区(/boot、/etc/fstab 对应的盘)导致无法引导。
- 排查:
- 用系统救援光盘/USB 或进入单用户/救援模式
- fdisk -l / lsblk 看磁盘是否还在
- 检查 /etc/fstab:是否删了某个挂载项导致启动卡住
- 若 /boot 被删,需要重建引导(grub2-mkconfig、重新安装 grub)
- blkid 看 UUID,改回 fstab
- 关键:不要乱动 fstab,删磁盘前先 umount、blkid 记录 UUID。
7. 挂载一块磁盘后重启服务器起不来是为什么
- 大概率是 /etc/fstab 写错了挂载项,开机时挂载失败导致启动阻塞。
- 常见原因:
- UUID 写错、设备名写错(如 /dev/sdb 重启后变成 /dev/sdc)
- 挂载点目录不存在
- 文件系统类型写错
- fstab 里写了不存在的设备
- 排查:
- 进入单用户/救援模式
- 注释掉或修正 fstab 中出错的挂载行
- mount -a 测试能否正常挂载
- 用 blkid 获取正确 UUID,用挂载点/标签替代裸设备名(/dev/sdb 不稳定)
8. Windows 和 Linux 远程不能登录是什么问题
- Windows(RDP 3389):
- 防火墙是否放行 3389
- 远程桌面是否开启(系统属性)
- 凭据/账号被锁定、网络(VPN/局域网)不通
- Linux(SSH 22):见前面 SSH 排查。
- 通用:网络不通、防火墙、端口未监听、认证失败、服务未启动、账号锁定。
四、系统性能与资源排查
1. CPU 占用率排查思路
- top / htop:看哪个进程 CPU 高(按 P 排序),看负载 load average
- ps aux --sort=-%cpu:按 CPU 排序查看进程
- 看 CPU 是用户态(user)还是内核态(sys)高:top 里 %Cpu(s) 的 us/sy/wa
- 内核态高:可能是系统调用密集、中断处理(cat /proc/interrupts)
- iowait 高:CPU 在等磁盘 IO,实际瓶颈是磁盘
- 结合监控看是否是业务高峰
- perf top:深入看热点函数
2. CPU 和内存占用过高怎么排查
- CPU:top 找进程 → ps 确认 → 判断 user/sys/wa → 结合业务与监控
- 内存:
- free -h:看 total/used/available、swap 使用
- top 按 M 排序看进程 RSS
- ps aux --sort=-%mem
- 内存泄漏:进程 RSS 只涨不降
- 注意 buff/cache 是缓存,可以回收,不算真正占用
- cat /proc/meminfo、smem(共享内存统计)
- 注意:Linux 中 used 高 + cache 高常见,要先看 available 是否充足、swap 是否被打满。
3. CPU 过载但 top/ps 看不出来,用什么命令看?
- 常见情况:iowait 高(CPU 空转等磁盘)、不可中断进程 D 状态(进程卡在 IO)、中断/软中断密集、内核线程消耗。
- 命令:
- top 看 wa(iowait)值、看 %Cpu(s) 的 us/sy/wa 细分
- vmstat 1:看 r(运行队列)、b(阻塞进程)、wa、si/so
- iostat -x 1:看磁盘 util、await、%util
- mpstat -P ALL 1:看每个 CPU 的使用
- ps -eo stat,pid,comm | grep D:找 D 状态进程
- pidstat 1:按进程细分
- perf top:热点分析
- 原因:往往不是 CPU 真的忙,而是等磁盘 IO(D 状态)、内存换页、软中断,所以 top 里 %cpu 不高但负载(load average)很高。
4. 磁盘 IO 高、CPU 高、df -h / df -i / inode 高的原因
- 磁盘 IO 高:大文件读写、数据库、日志写入、慢查询、swap 换页、频繁小文件
- CPU 高:见上面
- df -h(空间满):文件被删但仍被进程占用未释放(lsof | grep deleted)、日志没轮转、/tmp 垃圾
- df -i(inode 满):小文件太多(大量缓存、临时文件、邮件队列),inode 耗尽即使有空间也写不了文件。排查:df -i、find 统计文件数。
- 三者常相互关联:inode 满 → 程序无法创建文件 → 报错 → 触发重试 → CPU/IO 升高。
5. 查看 inode 使用情况
- df -i:查看各分区的 inode 总量、已用、剩余、使用率
- inode 耗尽表现:报 No space left on device 但 df -h 显示有空间
- 定位大目录:find 统计各目录文件数
6. df -i 是干嘛的
- 显示文件系统的 inode(索引节点)使用情况,而非磁盘空间。
- inode 存文件元数据(权限、属主、大小、位置),每个文件/目录占一个 inode。inode 耗尽会导致无法新建文件。
7. 修复磁盘的命令
- fsck(文件系统一致性检查修复):
- fsck /dev/sdb1
- fsck -f /dev/sdb1(强制检查)
- 通常需在卸载状态或单用户下执行
- ext 系列:e2fsck -f /dev/sdb1
- xfs:xfs_repair /dev/sdb1
- 注意:不要对已挂载的磁盘随意 fsck,会有数据风险,最好先 umount。
8. 检查带宽用什么命令
- iftop:实时查看每个连接的带宽(iftop -i eth0)
- nload / nethogs:nload 看总带宽,nethogs 按进程看
- iptraf / ifstat:接口流量统计
- iperf / iperf3:主动测带宽(客户端-服务端)
- sar -n DEV 1:查看历史/实时网络流量
- ethtool eth0:看网卡速率
9. 文件删除后磁盘没有释放是为什么
- 文件被进程仍占用(句柄未关闭),即使 rm 删了,磁盘空间要等进程关闭该文件才释放。
- 排查:lsof | grep deleted(或 lsof +L1)找出仍持有已删除文件的进程
- 解决:重启/重载该进程,或 kill 进程释放句柄。
- 补充:日志文件常见此问题(程序持续写日志,日志被 rm 但进程还占着)。
10. atop / iotop / iftop
- atop:全屏系统监控,CPU/内存/磁盘/网络/进程综合,可记录历史(atop -r 回放)。
- iotop:按进程实时监控磁盘 IO(谁在读写、速率),需 root。iotop -o 只看有 IO 的进程。
- iftop:实时监控网络流量/连接带宽,iftop -i 网卡 -n。
五、服务与数据库
1. 常用服务端口号
| 服务 | 端口 |
|---|---|
| SSH | 22 |
| HTTP | 80 |
| HTTPS | 443 |
| MySQL | 3306 |
| Redis | 6379 |
| MongoDB | 27017 |
| PostgreSQL | 5432 |
| Tomcat | 8080 |
| DNS | 53 |
| FTP | 21 |
| RDP(远程桌面) | 3389 |
2. 怎么修改 MySQL 端口
- 编辑 my.cnf(或 my.ini,Windows):/etc/my.cnf 或 /etc/mysql/my.cnf
- 在 [mysqld] 段下修改/添加:port = 3307
- 保存后重启:systemctl restart mysqld(或 service mysql restart)
- 验证:ss -lntp | grep 3307、mysql -P 3307 -u root -p
- 注意:改端口后客户端连接、防火墙、程序连接串都要同步改。
3. Redis 端口号
- 6379。
- 修改:redis.conf 中 port 6379;默认只监听本机,如需远程需改 bind 和 protected-mode,并设密码(requirepass)。
4. 删除 MySQL 系统文件,MySQL 启动不了怎么解决
- 先停服务,避免二次破坏:systemctl stop mysqld
- 看报错:tail -100 /var/log/mysqld.log
- 若删的是数据文件/库目录(/var/lib/mysql):
- 有备份则从备份恢复(还原 datadir 并 chown -R mysql:mysql)
- 无备份只能重建:mysql_install_db / mysqld --initialize(会丢数据)
- 若删的是启动脚本/systemd 文件:重新安装或从同版本拷贝
- 权限问题:确保 datadir 属主是 mysql:chown -R mysql:mysql /var/lib/mysql
- 重要:提前做好物理备份是根本。
5. rm -f 删除了数据库文件,怎么恢复
- 立即停止所有写操作,把 datadir 所在分区只读挂载(避免覆盖):mount -o remount,ro
- 恢复方式(按优先级):
- 备份恢复:用最近的物理/逻辑备份还原
- binlog 增量回放:有 binlog 可回放到删除前的点
- 文件恢复工具(不保证成功):extundelete、testdisk、debugfs
- 预防:开启 binlog、定期物理备份(xtrabackup)、异地备份。
- 关键:能救的前提是文件未被覆盖,删除后越少写入越好。
6. 物理备份和逻辑备份的区别
| 对比 | 物理备份 | 逻辑备份 |
|---|---|---|
| 方式 | 直接复制数据文件/表空间 | 导出 SQL/文本数据 |
| 工具 | xtrabackup、cp 数据目录 | mysqldump、mysqlpump |
| 恢复速度 | 快 | 慢(要执行 SQL) |
| 体积 | 大 | 小、可压缩 |
| 一致性 | 快照级一致 | 依赖事务/一致性选项 |
| 适用 | 大数据量、快速恢复 | 迁移、导出部分数据 |
六、Docker / K8s / 容器
1. Docker 常用操作
- 镜像:docker pull、docker images、docker rmi、docker build -t(Dockerfile)
- 容器:docker run、docker ps -a、docker start/stop/restart、docker rm
- 日志/详情:docker logs、docker inspect、docker exec -it 容器 bash
- 网络:docker network ls、docker port 容器
- 数据:docker volume ls
2. Docker 容器部署好了但无法运行,先看什么
- 最先看:docker logs 容器名(看启动日志报错)和 docker ps -a(看容器状态 Exited、错误码)。
- 进一步:
- docker inspect 容器:看挂载、端口、网络、Command、重启策略
- docker start 后立刻 docker logs 看报错
- 常见原因:端口被占用、目录挂载失败、环境变量/配置文件缺失、镜像内服务启动失败、依赖服务没起。
3. Docker 容器与服务器网络不通是什么导致的
- 端口未映射:run 时没加 -p 宿主机端口:容器端口
- 网络模式:默认 bridge;用了 host 或自定义网络可能不通
- 防火墙:宿主机 iptables 拦截了转发/端口
- 容器内服务未监听该端口:docker exec 容器 ss -lntp
- IP 变动:bridge 网段、容器重启 IP 变化
- 内核转发关闭:sysctl net.ipv4.ip_forward 是否为 1(Docker 需要)
- 排查:docker port 容器、docker network inspect bridge、从容器内 ping 网关。
4. docker 怎么查看服务 IP
- docker inspect 容器名 查看 IPAddress 字段(或用 -f 格式化取 IP)
- docker port 容器(看端口映射)
- 也可 docker exec 容器 ip addr
5. Dockerfile 与端口映射
- Dockerfile:构建镜像的脚本。常用指令:
- FROM(基础镜像)、RUN(执行命令)、COPY/ADD(复制文件)、WORKDIR(工作目录)、EXPOSE(声明端口,仅文档作用)、CMD/ENTRYPOINT(启动命令)、ENV(环境变量)。
- 端口映射:docker run -p 宿主机端口:容器端口,把容器端口映射到宿主机,如 -p 8080:80。
6. K8s 的 3 大组件(控制面核心)
- kube-apiserver:集群的唯一入口,所有请求都经过它,提供 REST API、鉴权、准入控制。
- kube-controller-manager:控制管理器,维护集群期望状态(节点、副本、Endpoints 等各类 controller)。
- kube-scheduler:调度器,为新 Pod 选择合适的节点。
- (补充常被问的:kubelet 是节点上的 agent;etcd 存集群状态;kube-proxy 实现 service 网络。)
7. K8s 与 Docker 的区别
- Docker:容器运行时/引擎,负责构建和运行单个容器。
- Kubernetes:容器编排平台,负责大规模容器的部署、调度、扩缩容、服务发现、自愈。
- 关系:K8s 用容器运行时(如 Docker、containerd)来跑容器,但 K8s 提供了 Docker 单机所没有的集群级能力。
- 一句话:Docker 管"一个容器",K8s 管"一群容器 + 集群编排"。
七、防火墙
1. 各系统防火墙操作
- CentOS/RHEL 7+(firewalld):
- systemctl status/start/stop firewalld
- firewall-cmd --list-all(查看)
- firewall-cmd --permanent --add-port=80/tcp 然后 firewall-cmd --reload(放行端口)
- Ubuntu/Debian(ufw):
- ufw enable/status
- ufw allow 80/tcp、ufw allow from IP
- iptables(底层):见下
- 注意:改完要 reload/重启,测试别把自己锁外面(先放行 SSH 22 再操作)。
2. Ubuntu 防火墙(ufw)
- ufw status(查看状态)
- ufw enable / ufw disable
- ufw allow 22/tcp(放行 SSH,务必先做)
- ufw allow 80,443/tcp
- ufw allow from 192.168.1.0/24 to any port 3306
- ufw delete allow 80/tcp(删除)
- 注意:ufw 默认 deny 入站,开启前先放行 SSH,避免失联。
3. iptables 怎么用
- 查看:iptables -L -n -v(或 -t nat 看 NAT 表)
- 基本规则:iptables -A INPUT -p tcp --dport 80 -j ACCEPT
- 参数:-A(追加)/-I(插入)/-D(删除)、-p(协议)、--dport/--sport、-j(动作 ACCEPT/DROP)、-s(源IP)、-i(接口)
- 保存:service iptables save / iptables-save > /etc/iptables/rules.v4
- 注意:iptables 默认策略若为 DROP,必须放行 22 和回环 lo,防止失联。
4. iptables 怎么放行端口
- iptables -A INPUT -p tcp --dport 80 -j ACCEPT
- iptables -A INPUT -p tcp --dport 3306 -s 192.168.1.100 -j ACCEPT(限定来源更安全)
- 放行后保存并确保在默认 DROP 策略下顺序在 DROP 之前。
八、云服务与存储
1. 用过云服务吗
- 答:用过阿里云/腾讯云/AWS 等云主机、ECS/CVM、云盘、安全组、SLB/负载均衡、对象存储 OSS、RDS 等。
- 重点讲:云主机创建/远程登录、安全组放行端口(云上防火墙)、快照/镜像、按需扩容。
- 若没实际用过,可讲对云服务模型的理解(IaaS/PaaS/SaaS)和遇到过的云上问题。
2. 云存储、云 NFS 有了解吗
- 云存储:对象存储(阿里 OSS、腾讯 COS、AWS S3)—— 海量非结构化数据,通过 API 访问,按量计费;还有块存储(云盘)、文件存储(NAS)。
- 云 NFS / 文件存储:把文件系统挂载到多台云主机(mount -t nfs 挂载点 /data),多节点共享同一份数据,用于共享目录、应用集群共享配置/上传文件。
- 特点:高可用、弹性扩容、无需自建存储服务器;注意性能、权限(root_squash)、挂载参数(noresvport)等。
3. 服务器搭建好了访问不了服务
排查思路(从前到后):
- 服务是否运行:systemctl status、ss -lntp
- 本机自测:curl 127.0.0.1:端口 / curl localhost
- 局域网 IP 自测:curl 本机IP:端口
- 防火墙/安全组:iptables/firewalld/ufw + 云安全组是否放行
- 外部能否访问:telnet 公网IP 端口、ping
- 端口是否监听在正确地址(ss -lntp 看是否 0.0.0.0 还是 127.0.0.1)
- SELinux、nginx/服务配置
九、监控与排障
1. 健康检查失败怎么排查
- 健康检查(负载均衡/容器探针)失败 = 被检查的服务/端口/路径不健康。
- 排查:
- 检查探针配置(协议、端口、路径、间隔、超时)
- 服务是否存活:ss -lntp、systemctl status、curl -I 健康检查路径
- 健康检查返回码是否为 2xx/3xx(配置要求)
- 服务过载响应慢导致超时
- 网络/防火墙是否挡了探针来源
- 容器探针:kubectl describe pod 看探针事件、docker inspect 看 health
- 看服务日志:报 5xx、连接拒绝、超时
2. Grafana 看板某个节点 CPU/内存数据丢失了,怎么排查
- 数据链路:节点(node_exporter) → Prometheus → Grafana。
- 排查:
- node_exporter 是否存活:systemctl status node_exporter、curl localhost:9100/metrics
- Prometheus 是否抓取到:Prometheus UI → Status → Targets,看该节点是否 UP;未 UP 说明采集失败(网络、端口、服务挂了)
- 防火墙是否挡了 9100 或抓取请求
- 指标名/标签变了:升级后 node_cpu 等指标改名,导致面板查不到
- 时间/对齐问题:数据点缺失,检查 scrape interval、存储落盘
- 是否节点宕机/重启过,Prometheus 这段时间没采集到
- 定位"哪个环节断"是关键:Targets UP? → node_exporter 有数据? → 面板查询语法对?
3. 错误日志常见路径
- /var/log/messages(RHEL/CentOS 系统日志)
- /var/log/syslog(Debian/Ubuntu)
- /var/log/secure(认证,RHEL)/ /var/log/auth.log(Debian)
- /var/log/cron(定时任务)
- /var/log/dmesg(内核)
- 应用日志:Nginx /var/log/nginx/error.log、MySQL /var/log/mysqld.log、Tomcat logs/catalina.out
- Docker:docker logs
4. 日志存储在哪个目录
- 统一在 /var/log/ 目录下。查看:ls /var/log/、tail -f、grep、logrotate(日志轮转配置在 /etc/logrotate.d)。
5. 域名解析用什么命令
- nslookup 域名(老工具,较直观)
- dig 域名(DNS 查询,信息最全,推荐)
- dig @8.8.8.8 域名(指定 DNS 服务器)
- dig +trace 域名(跟踪解析过程)
- host 域名(简单)
- 反向解析:dig -x IP、nslookup IP
- 排障:域名解析不到 → 检查本地 DNS(/etc/resolv.conf)、getent hosts 域名、cat /etc/hosts。
十、服务器无法访问 / 综合排障
1. 服务器搭建好了访问不了服务
- 见"八、3"(服务 → 端口监听 → 本机 curl → 防火墙/安全组 → 外部访问)。
2. 网站打不开是什么原因
- DNS 解析失败:nslookup、本地 hosts/resolv.conf
- 网络不通:ping、traceroute
- 服务器宕机/服务未启动:nginx/web 服务
- 防火墙/安全组拦截 80/443
- 端口未监听:ss -lntp
- 后端故障(数据库/应用):看日志、502/504
- 带宽/流量打满、被攻击(DDoS)
- 排查顺序:本机 curl → 外部访问 → DNS → 防火墙 → 后端日志。
3. 丢包偶发且有规律,是哪个参数
- 见"一、8":重点看环回缓冲区(ring buffer)、TCP 重传、连接数峰值、net.core 内核缓冲参数、拥塞控制。
十一、实习经历与职业类
1. 实习一般做什么(答题建议)
- 不要说"没做有含金量的活",要主动包装、往深了讲。
- 思路:讲你实际参与的具体任务 + 遇到的问题 + 排查解决过程 + 收获/沉淀。
- 示例方向:
- "我负责 xx 台 Linux 服务器的日常巡检和运维,处理过 CPU/磁盘/内存告警,掌握了 top、df -i、lsof 等排查手段"
- "参与过 Nginx 配置、Docker 容器部署,帮客户解决过 502、访问不了等问题"
- "配合搭建过监控(Zabbix/Prometheus+Grafana),配置过健康检查告警"
- "写过运维脚本/文档,提升了团队效率"
- 原则:具体化、结果导向(解决了什么问题、带来什么效果),把琐碎工作提炼成能力点。
2. 你什么时候回重庆?请假需要多久
- 如实回答但体现责任心:明确时间节点、提前安排好工作交接、说明尽量不影响项目进度。
- 示例:"我需要请 X 天假回重庆处理个人事务,会提前和团队做好交接,请假期间保持手机畅通、远程支持。"(结合自己情况调整)
3. 7×24 小时的工作性质能接受吗
- 爽快表示能接受,突出责任心和抗压能力。
- 示例:"可以接受,运维岗位保障业务稳定是基本职责,我能够适应值班和应急响应的节奏,遇到告警会及时处理。"
- 可补充:有良好的应急处理能力和心态,能分清轻重缓急。
4. 你是重庆人,为啥不考虑在重庆发展呢
- 不要否定重庆,突出当前机会和职业发展考虑。
- 示例:"重庆很好,我也很喜欢,但当前这个岗位的技术栈和发展空间更契合我的职业规划,我想先在更大平台上积累经验。同时这里离家也不远,方便兼顾。"
- 重点:表达稳定性(不是来混的)、职业进取心,消除面试官对你稳定性/留任的顾虑。
十二、客户沟通类
1. 处理客户问题时客户情绪不稳定,你会怎么做
按"安抚 → 倾听 → 解决 → 反馈"的结构:
- 先安抚情绪、态度诚恳:保持冷静、耐心,先道歉或表达理解,不让客户更激动
- 认真倾听、共情:让客户完整描述问题,不打断,表示"理解您着急,我们一起来解决"
- 快速定位、给出方案:明确问题、说明当前情况和处理步骤,给出时间预期
- 及时反馈、跟进闭环:处理中主动同步进展,解决后回访确认,让客户感受到被重视
- 换位思考:站在客户角度,如果一时解决不了,说明原因和替代方案
- 关键:情绪上不跟客户对立,先处理心情再处理事情;技术上保持专业、给出确定性预期。
附:高频速记点
- 端口:SSH 22、HTTP 80、HTTPS 443、MySQL 3306、Redis 6379、RDP 3389、DNS 53
- 登录日志:RHEL /var/log/secure;Debian /var/log/auth.log
- 排障命令:top、ps、vmstat、iostat、iftop、iotop、lsof、df -i、netstat/ss、traceroute、fsck
- 丢包计算:剩余 = (1-a%)(1-b%)(1-c%)...
- inode 满:df -i;文件删了空间不释放:lsof | grep deleted
- Docker 先看:docker logs + docker ps -a
- K8s 三大组件:apiserver、controller-manager、scheduler
- 502:后端挂了/无响应;504:后端响应超时
