You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VPS频繁断连致SSH连接被拒绝、网站访问超时,如何排查解决?

故障根因初步判断

从你提供的syslog可以看到,故障时段最后一条正常日志是08:27:08的UFW拦截记录,下一条直接是08:49:48的内核启动日志,说明故障期间系统完全崩溃停止运行,日志断档、网站连接超时、SSH连接拒绝都是系统崩溃的直接表现,必须重启才能恢复的特征也完全吻合这一判断。

SSH暴力扫描影响说明

你日志中出现的大量pi、user等无效用户的SSH登录尝试是全网普遍存在的自动化暴力扫描行为:

  • 正常低频扫描不会造成用户信息泄露,也不会影响服务运行
  • 当扫描频次过高时,会占用大量系统连接资源、拉高sshd进程的CPU/内存占用,严重时会触发系统内存耗尽(OOM)、进程假死甚至系统崩溃,和你当前的故障表现高度吻合
故障排查步骤
  • 确认OOM崩溃记录:重启后执行命令 grep -i 'oom-kill' /var/log/syslog,如果返回相关记录即可确认是内存耗尽导致的系统崩溃
  • 统计扫描请求量级:执行命令 grep "Invalid user" /var/log/auth.log | awk '{print $10}' | sort | uniq -c | sort -nr,统计单IP的登录失败请求频次,单IP每小时请求超过100次即可判定为高频暴力攻击
  • 回溯历史资源占用:先安装系统资源统计工具 apt install sysstat,后续可通过 sar -r 查看历史内存占用、sar -n DEV 查看历史网络流量,定位崩溃前的系统资源峰值
可行解决方案

1. 拦截SSH暴力扫描

  • 修改SSH默认端口:编辑 /etc/ssh/sshd_config 配置文件,将默认的Port 22修改为10000~65535之间的未占用端口,修改完成后执行 systemctl restart sshd 生效,后续SSH连接需要指定新端口
  • 禁用密码登录改用密钥登录:先在本地生成SSH密钥对,将公钥写入服务器~/.ssh/authorized_keys文件,确认密钥可正常登录后,编辑sshd_config将PasswordAuthentication参数改为no,重启sshd服务,从根源阻断密码爆破尝试
  • 安装fail2ban自动拦截攻击IP:执行 apt install fail2ban,默认配置即可自动封禁短时间内多次登录失败的IP,默认封停时长10分钟,可大幅降低扫描带来的资源消耗

2. 系统稳定性优化

  • 调整核心服务OOM优先级:给Apache、sshd等核心服务配置更低的OOM得分,避免系统内存不足时优先杀掉核心业务进程
  • 配置本地存活检测:安装看门狗服务watchdog,配置端口存活、系统负载检测规则,系统无响应时自动触发重启,减少业务中断时长
  • 排查底层硬件故障:完成上述优化后如果故障仍频繁发生,联系服务器提供商提交工单,要求排查宿主机是否存在超售、硬件故障、网络波动等底层问题

3. 临时应急方案

可先在服务器提供商后台配置自动重启触发规则,当实例无法ping通、端口不通时自动触发重启,先降低业务中断的影响,再逐步排查根因。

内容的提问来源于stack exchange,提问作者tealy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 16:15:04