1.
概述与准备工作
在开始排查前,准备好:VPS控制面板登录(快照、重装、重启权限)、VPS外网IP、管理账号(root或sudo用户)、本地终端(ssh、telnet、scp)、以及备用网络(确认不是本地网络问题)。建议先尝试控制面板的远程控制台(VNC/Serial)以避免SSH不可用导致完全无法访问。
2.
第一步:确认网络与连通性
步骤:1) 本地ping VPS公网IP:ping -c 4 x.x.x.x。2) 检查端口连通:telnet x.x.x.x 22 或者 nc -vz x.x.x.x 22。3) 如ping不通,使用控制面板查看VPS状态、网络开关、或是否被提供商封禁;尝试重启网络或整机重启。若控制面板连通但外网不可达,联系提供商核查路由或防火墙策略。
3.
第二步:SSH 无法连接的排查
步骤:1) 用控制面板打开远程控制台登录。2) 在VPS内部检查sshd服务:sudo systemctl status sshd。3) 查看端口监听:sudo ss -tlnp | grep ssh 或 sudo netstat -tlnp | grep :22。4) 若sshd未运行,重启:sudo systemctl restart sshd,查看日志:sudo journalctl -u sshd -n 200 或 sudo tail -n 200 /var/log/auth.log。5) 若配置文件有误,检查 /etc/ssh/sshd_config 是否被误改(端口、PermitRootLogin、PasswordAuthentication),修复后重启sshd。
4.
第三步:端口被占用或服务冲突
步骤:1) 检查占用:sudo lsof -i :22 或 sudo ss -lptn | grep :22。2) 若被非sshd程序占用,记录PID:ps -fp PID,确认是否误启动应用,使用 sudo kill PID(优先SIGTERM)或停用对应服务。3) 如需临时修改SSH端口,在 /etc/ssh/sshd_config 修改 Port 为其它值(如2222),保存后 sudo systemctl restart sshd,并在防火墙打开新端口。
5.
第四步:防火墙与安全组检查
步骤:1) 检查本机防火墙:sudo iptables -L -n 或 sudo ufw status。2) 若使用 firewalld:sudo firewall-cmd --list-all。3) 在提供商控制台检查安全组/防火墙规则,确认放通SSH(默认22或自定义端口)、HTTP/HTTPS 等。4) 临时允许端口:sudo ufw allow 22/tcp 或 sudo iptables -I INPUT -p tcp --dport 22 -j ACCEPT,然后保存规则。
6.
第五步:磁盘空间满导致服务异常
步骤:1) 查看磁盘:df -h 和 df -i(检查 inode)。2) 查找大文件:sudo du -h / --max-depth=1 | sort -hr | head -n 20,再逐层深入到大目录用 du -sh /var/*。3) 清理常见项:sudo apt-get clean;清理日志:sudo journalctl --vacuum-size=100M;手动删除不必要文件或移动备份到外部。4) 若根分区满,考虑扩容或挂载新的磁盘并迁移目录(/var、/home)。
7.
第六步:CPU/内存过高处理
步骤:1) 监控进程:top 或 htop(若未安装,sudo apt-get install htop)。2) 找到占用高的进程,记录PID并评估可否重启或终止:sudo systemctl restart service-name 或 sudo kill -9 PID。3) 若内存不足可临时增加swap:sudo fallocate -l 2G /swapfile && sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile,持久化修改 /etc/fstab。4) 长期解决:优化应用、加大实例规格或分布式拆分。
8.
第七步:网络丢包与延迟排查
步骤:1) 在VPS内部使用 mtr -r -c 100 目标IP 或 traceroute 检查路由。2) 用 iperf3 测试带宽(需要双方工具),或使用 ping -c 100 看丢包统计。3) 若发现到网关或上游丢包,收集时间点、丢包率截图并提交给日本节点提供商,让其检查机房链路或交换设备。
9.
第八步:数据恢复与快照使用
步骤:1) 优先从控制面板快照/备份恢复:在控制面板选择快照恢复或新建实例并挂载快照磁盘。2) 若只有文件备份,用 scp/rsync 恢复:rsync -avz backup.tar.gz user@vps:/path。3) 若系统无法启动,使用救援模式(Rescue Mode)启动,挂载磁盘并修复文件系统(fsck)或复制重要数据到临时盘再重装系统。
10.
第九步:日志与诊断技巧
步骤:1) 常用日志路径:/var/log/syslog, /var/log/messages, /var/log/auth.log, /var/log/nginx/*。2) 用 grep 快速定位:sudo grep -i "error" /var/log/syslog | tail -n 200。3) 记录每次操作与时间点,便于回滚或向提供商提交故障单时提供证据。
11.
第十步:安全与预防措施
建议:1) 使用SSH密钥、禁止root密码登录(在 /etc/ssh/sshd_config 设置 PermitRootLogin no)。2) 安装 fail2ban 并配置常见服务的 jail。3) 定期做快照、自动化备份与升级系统补丁(sudo apt update && sudo apt upgrade)。4) 设置监控告警(CPU、磁盘、网络)并提前扩容。
12.
问:如果SSH被防火墙误封,我如何在无法SSH的情况下恢复?
答:使用VPS提供商的控制面板打开远程控制台(Serial/VNC)登录,或在控制面板临时修改安全组规则放通SSH;在控制台内编辑防火墙规则(iptables/ufw)撤销误封,保存后测试远程SSH连接。
13.
问:磁盘已满但我需要马上提取日志,有哪些快速方法?
答:先在VPS上压缩要提取的日志(tar -czf /tmp/logs.tar.gz /var/log/...),若压缩失败可分批压缩小目录;然后通过scp或rsync传回本地;若磁盘完全无法写入,使用控制面板快照并在新实例挂载快照盘提取数据。
14.
问:发生严重故障时,我应如何与日本VPS提供商沟通以加快恢复?
答:准备好:VPS实例ID、故障开始时间、已执行的排查步骤和错误日志片段(截图或文本)、网络诊断结果(ping/traceroute/mtr)。通过控制面板提交工单并附上这些信息,若有紧急通道(电话/在线聊天)优先联系并请求工程师介入。
来源:用户指南日本私人vps啪啪常见故障排查与恢复步骤详解