1) 收集信息:记录VPS的IP、控制台登录地址、用户名(root或ubuntu)、密钥或密码,以及提供商控制台账号。 2) 本地工具:准备好能使用的终端(Linux/macOS自带Terminal,Windows安装PuTTY或启用WSL),准备好scp/rsync、ping、traceroute、curl、nc/nmap、ssh客户端。 3) 备份计划:在做有风险操作前,快照或创建备份,若提供商支持创建快照或备份(控制台一键快照)。
1) 使用ping测试(Linux/macOS/WSL):ping -c 4 x.x.x.x。若无响应但控制台显示“running”,可能被ICMP屏蔽。 2) 使用traceroute查路由:traceroute x.x.x.x 或 Windows 下 tracert x.x.x.x,判断在哪一跳丢包。 3) 使用端口连通性测试:nc -vz x.x.x.x 22 或 curl -I http://x.x.x.x:80 检查服务端口是否可达。
1) 本地排查:ssh -vvv user@x.x.x.x 查看详细调试日志,注意认证失败或超时信息。 2) 端口和防火墙:确认22端口是否被NAT或ISP屏蔽,用nc/nmap检测 tcp 22。若端口被更改,尝试供应商控制台查看网络规则。 3) 服务器端排查(通过控制台或救援模式):登录控制台Serial/VM控制台,运行 systemctl status sshd;查看日志 journalctl -u sshd -n 200 或 /var/log/auth.log,检查密钥权限 (chmod 600 ~/.ssh/authorized_keys) 与用户shell是否有效。
1) 查看监听端口:ss -tulnp 或 netstat -tulpen,确认服务是否在预期端口绑定。 2) 服务状态:systemctl status nginx/mysql/postgresql,若未运行尝试 sudo systemctl restart 服务名 并观察 journalctl -u 服务名 -n 100。 3) 配置错误:检查配置文件(nginx: /etc/nginx/nginx.conf,nginx -t 测试配置),查看最近日志 /var/log/nginx/error.log 或数据库日志,修复语法/权限问题后重启。
1) 查看磁盘占用:df -h 检查根分区是否已满;du -sh /var/log/* 找出大文件。若/var满导致服务无法写日志,清理或扩大磁盘。 2) 清理日志:sudo truncate -s 0 /var/log/large.log 或使用 logrotate 配置。删除临时文件 /tmp、apt缓存 sudo apt-get clean。 3) 扩容与快照:若需要扩大,优先在控制台扩容磁盘并在系统内执行 resize2fs 或 xfs_growfs,根据分区类型调整。
1) 实时监控:top 或 htop 查看占用高的进程;free -m 查看内存和swap使用。 2) IO瓶颈:iostat -x 1 3(需安装 sysstat)查看磁盘等待(%iowait);dmesg | tail 检查磁盘错误。 3) 临时解决:重启高占用进程、增加swap(fallocate -l 2G /swapfile; chmod 600 /swapfile; mkswap /swapfile; swapon /swapfile)或升级规格。
1) 查看服务器防火墙:sudo ufw status verbose 或 sudo iptables -L -n -v 或 sudo nft list ruleset。确认允许所需端口。 2) 查看云提供商控制台安全组/ACL:确保入站规则允许源IP/目的端口(例如22、80、443)。测试变更后等待规则生效。 3) 防止锁死:修改防火墙前在另一个会话保持root登录或设置超时回滚脚本,避免被误封SSH。
1) DNS正向解析:dig A yourdomain.com @8.8.8.8 或 nslookup yourdomain.com,确认解析到正确IP。 2) 反向解析(PTR):联系VPS提供商或在控制台设置反向DNS,某些邮件服务和反垃圾邮件依赖PTR。 3) 本地缓存:DNS修改后可能存在TTL缓存,使用 dig +trace 查看传播情况或等待TTL过期。
1) 使用控制台:当SSH不可用时,打开VPS提供商的Serial/Console登录,查看系统启动日志并修复引导或网络配置问题。 2) 救援模式:将磁盘挂载到救援系统(provider 切换至rescue ISO),挂载原根盘,修复fstab、SSH配置或重置密码。 3) 恢复与快照:若不可修复,恢复快照或从备份恢复,随后检查并修复导致故障的变更。
1) 连通性:ping/traceroute -> nc -vz ip port。2) 登录调试:ssh -vvv;3) 服务检查:ss -tulnp、systemctl status;4) 磁盘与日志:df -h、du -sh /var/log;5) 防火墙:ufw status / iptables -L;6) 提供商控制台/救援模式。
答:1) 本地用 ssh -vvv 查看是哪一步失败(公钥拒绝还是密码拒绝)。2) 检查账号和密钥权限:~/.ssh/authorized_keys 权限应为600,~/.ssh 700。3) 控制台登录后查看 /var/log/auth.log 或 journalctl -u sshd,修复sshd_config配置(PubkeyAuthentication yes, PermitRootLogin yes/without-password),重启sshd。
答:1) 在本地 nc -vz ip 80/443 检查端口是否开放。2) 服务器上 ss -tulnp 确认服务监听,检查nginx/apache配置并 nginx -t。3) 检查防火墙与云安全组是否允许对应端口,检查DNS是否解析到正确IP,最后检查是否存在DDOS或流量限制。
答:1) 先在控制台做快照或备份再做重大更改。2) 修改防火墙/SSH配置时保留控制台登录通道并设置回滚脚本。3) 学会使用提供商的救援模式与控制台,必要时提交工单寻求厂商支持。
