1. 前言与环境说明
说明:本文针对香港葵芳(Kwai Fong)机房提供的VPS,适用于主流虚拟化(KVM、Xen、OpenVZ)。
小分段:确认VPS类型(控制面板或裸金属控制台)、账户有无控制面板权限、是否有快照/备份可用。
2. 首次遇到不可访问的快速检查
步骤1:本地检查网络,ping 目标IP:ping -c 4 your.vps.ip。若丢包或超时,继续步骤2。
步骤2:从另一台公网机器 traceroute your.vps.ip(traceroute 或 tracert),确认路由中断点。
步骤3:检查本地防火墙、ISP 是否屏蔽目标端口(例如 22/80/443)。
3. SSH 无法连接的排查
步骤1:确认端口、IP 正确并非被改动;若更换端口,使用 ssh -p PORT。
步骤2:尝试使用控制面板的串口/控制台访问(若提供),登录后查看 /var/log/auth.log 或 /var/log/secure。
步骤3:若控制台也不可用,请联系供应商查看宿主机状态或是否在维护。
4. 控制台能进但服务异常的检查
步骤1:检查系统负载 top 或 htop,查看 CPU、内存、IO 是否飙高。
步骤2:查看磁盘使用 df -h 与 inode df -i;若磁盘满,先清理 /var/log 或临时文件。
步骤3:用 systemctl status SERVICE 或 service SERVICE status 检查关键服务状态并尝试重启。
5. 网络断连但系统运行正常的具体排查
步骤1:检查网络接口 ip addr show 或 ifconfig,确认网卡 UP 且 IP 配置正确。
步骤2:检查路由表 ip route show,确认默认网关存在;手动添加 ip route add default via GATEWAY(谨慎)。
步骤3:检查 iptables/nftables 规则 iptables -L -n 或 nft list ruleset,临时清除可能的误封规则。
6. 磁盘错误与文件系统修复流程
步骤1:若发现 I/O 错误或挂载失败,先 umount /dev/sdX(若可),再使用 fsck -y /dev/sdX。
步骤2:若根分区需修复,进入救援模式(控制面板常有“进入救援系统”选项),挂载后执行 fsck。
步骤3:修复后重启并检查日志 dmesg、/var/log/messages 是否仍有错误。
7. 进程崩溃或内存泄露的定位与恢复
步骤1:使用 ps aux --sort=-%mem | head 查看高内存进程,使用 kill -TERM PID 软关或 kill -9 强制结束。
步骤2:查看应用日志(/var/log 或自定义路径),找异常堆栈或 OOM killer 记录。
步骤3:若为长期问题,调整应用参数、增加 swap(sudo fallocate -l 1G /swapfile; chmod 600 /swapfile; mkswap; swapon)。
8. 恢复策略:快照与备份优先级
步骤1:优先使用云端快照恢复到正常时间点:在控制面板选择快照->恢复,注意回滚风险。
步骤2:若无快照,使用备份文件恢复数据(数据库优先),恢复顺序:配置文件->数据库->应用文件。
步骤3:恢复后先在隔离环境验证,确认无误再切换公网;必要时更改数据库密码与 API key。
9. 无快照且系统损坏的救援模式操作
步骤1:进入控制面板救援系统(通常为基于 Linux 的 Live CD),挂载原磁盘到 /mnt。
步骤2:备份重要数据:tar czvf /tmp/backup-YYYY.tar.gz /mnt/var/www /mnt/etc /mnt/home,然后下载到远端。
步骤3:在救援系统中 chroot /mnt 进行必要修复(重装 GRUB、修复包管理器、重设密码)。
10. 应用层面常见故障与修复步骤
步骤1:Web 5xx 错误:查看 nginx/apache 日志 /var/log/nginx/error.log,确认后端应用是否崩溃。
步骤2:数据库连接失败:确认数据库进程运行、用户权限、监听地址(check my.cnf 或 postgresql.conf)。
步骤3:缓存问题(Redis/Memcached):查看持久化配置,强制重启服务并清理损坏的 RDB/AOF 文件(有风险,先备份)。
11. 监控与预防措施(恢复后必做)
步骤1:部署基础监控(Prometheus + Node Exporter、Grafana 或 Zabbix),设置告警阈值(CPU、内存、磁盘)。
步骤2:定期自动快照与异地备份,备份策略示例:每日增量、每周完全备份、保存30天。
步骤3:定期演练恢复流程(每季度),并记录 RTO/RPO,优化应急流程。
12. 联系供应商与升级工单的要点
提交工单时提供:VPS ID、IP、故障开始时间、排查步骤与错误日志摘录。
小分段:若怀疑宿主机或机房网络问题,要求供应商提供宿主机状态、硬件日志与带宽告警记录。
13. 常见命令清单(便于复制粘贴)
常用命令:ssh -p PORT user@ip;ping -c4 ip;traceroute ip;df -h;du -sh *;top/htop;journalctl -xe;systemctl restart svc。
小分段:备份命令示例:tar czvf site-backup.tar.gz /var/www && scp site-backup.tar.gz user@backup-server:/path。
14. 故障恢复后的核查清单
核查项:服务可达(curl -I http://your.vps),数据库完整性检查,配置未被篡改,安全补丁是否应用。
小分段:若涉及数据恢复,执行完整性校验(记录条数、文件校验和)。
15. Q1:VPS 突然无法 ping 通,我该先做什么?
问:VPS 突然无法 ping 通,我该先做什么?
答:先从本地和第三方(如阿里云/Google Cloud)尝试 ping 与 traceroute,确认是全网不可达还是仅单点问题;若是全网不可达,立即登录控制面板查看实例状态与机房公告,并提交工单附上 traceroute 输出。
16. Q2:我没有快照且系统损坏,能否只恢复部分数据?
问:我没有快照且系统损坏,能否只恢复部分数据?
答:可以,进入救援模式挂载磁盘后优先备份重要目录(/var/lib/mysql、/var/www、/etc),使用 tar 或 rsync 下载到安全存储,然后在新实例上恢复数据库和应用文件。
17. Q3:如何避免下次出现类似故障并缩短恢复时间?
问:如何避免下次出现类似故障并缩短恢复时间?
答:建立自动化备份与快照策略、部署监控与告警、编写恢复 SOP 并定期演练,同时考虑高可用架构(主从数据库、负载均衡、多可用区部署)。
来源:香港葵芳vps常见问题汇总 故障排查与快速恢复流程