1.
快速确认与分级响应(首要动作)
• 立即确认影响范围:单台主机还是整组机房节点;
• 使用控制台(机房管理面板)或虚拟串口登录查看本地控制台输出;
• 通过 ping/traceroute/mtr 验证网络可达性,例如:traceroute -n 203.0.113.45;
• 尝试与外网不同出口的 SSH 连接:ssh -vvv root@203.0.113.45 查看握手阶段日志;
• 若为大规模不可达,升级为一级告警并通知网络团队与带宽供应商。
2.
基础排查命令与日志位置(详细操作)
• 检查本机监听与端口:ss -tnlp | grep ssh 或 netstat -anp | grep :22;
• 查看 SSH 服务状态与最近日志:systemctl status sshd && journalctl -u sshd -n 200;
• 防火墙规则核对:iptables -L -n --line-numbers 或 nft list ruleset;
• 路由与 ARP 检查:ip route show && ip neigh show;
• 抓包确认请求是否抵达:tcpdump -i eth0 'port 22' -c 200 -w /tmp/ssh.pcap。
3.
常见故障原因与对策(分类说明)
• 本机服务宕机:重启 sshd(systemctl restart sshd)或重装 OpenSSH 后恢复;
• 防火墙/ACL 误封:临时放通管理 IP 并回退误配置,命令示例:iptables -I INPUT 1 -p tcp --dport 22 -s 198.51.100.0/24 -j ACCEPT;
• 网络黑洞或 BGP 路由问题:联系上游承运商请求 BGP route-check 或撤回错误公告;
• DDoS 攻击导致端口不可达:启用清洗/流量限制或临时更换到管理网段;
• 控制台可达但 SSH 登录失败:检查 /etc/ssh/sshd_config(如 PermitRootLogin、Port、AllowUsers 设置)。
4.
防护与恢复配置举例(含命令与数值)
• 建议服务器基础配置示例:Ubuntu 20.04, kernel 5.4, 4 vCPU, 8 GB RAM, 80 GB NVMe, OpenSSH 8.2p1;
• sshd_config 关键项示例:Port 22
PermitRootLogin prohibit-password
MaxAuthTries 3
LoginGraceTime 30s;
• 防护规则示例(iptables,限连接与速率):iptables -N SSH_FILT && iptables -A INPUT -p tcp --dport 22 -m connlimit --connlimit-above 10 -j DROP;
• fail2ban 配置示例:maxretry=3, findtime=600, bantime=3600,适配
新加坡机房流量特征;
• 若被 DDoS,建议触发下游清洗或将公网 IP 暂时放入黑洞路由并通过管理网段恢复访问。
5.
真实案例:新加坡机房 BGP 黑洞导致 SSH 全面不可达
• 背景:2025-11-03 03:12,运维接到监控告警,新加坡机房 10 台 web/vm 无法被 SSH 连接;
• 排查过程:traceroute 显示在 AS64500 的某跳后丢失;tcpdump 控制台显示外部 SYN 未到达;
• 结论:上游 ISP 错误撤销了路由或发生了 DDoS 导致运营商临时黑洞;
• 解决:联系 ISP,ISP 执行了 BGP route refresh 并解除黑洞,临时通过控制台改用备用管理网段 198.51.100.10 进行恢复;
• 后续处理:增加监控(BGP reachability)、更新应急联系人与自动化脚本切换管理 IP。
6.
应急流程模板与复盘要点(流程化操作)
• 1) 识别:判断影响范围,记录时间戳与影响列表(资产清单);
• 2) 隔离:若为 DDoS,通知上游触发清洗或黑洞,若为防火墙误操作,立即回滚规则;
• 3) 恢复:通过控制台登录重启服务、放行管理网段或变更端口(示例:临时启用 Port 2222 并写入防火墙规则);
• 4) 验证:从不同公网出口测试连接(ssh -o ConnectTimeout=10 -vvv root@IP),确认会话建立并能完成操作;
• 5) 复盘与优化:记录日志、制作故障报告并按表中建议提升容量或增加冗余。
7.
关键数据展示(示例对照表)
| 项目 |
示例值 |
说明 |
| 公网 IP |
203.0.113.45 |
目标主机地址 |
| SSH 端口 |
22(备选 2222) |
配置与应急端口 |
| 内核/OS |
Ubuntu 20.04 / 5.4.0-100 |
示例服务器环境 |
| 防护策略 |
connlimit 10 / fail2ban 3/600/3600 |
连接限制与封禁策略 |
• 表格为示例值,实际请替换为真实资产清单数据并妥善保管。
8.
总结与建议(长期改进)
• 建议建立异地故障转移与管理网段,确保控制台与 SSH 不同路由;
• 对关键节点实施 BGP 监控、部署多家承运商以避免单点路由故障;
• 对管理访问启用基于密钥的 MFA、IP 白名单与跳板机(Jump Host)策略;
• 定期演练“SSH 不可达”应急流程并更新运维文档与联系人;
• 在机房级别结合 CDN 与云厂商清洗能力,针对 Web 流量做防护,SSH 类管理流量用专线或 VPN 隧道保障。
来源:运维手册解读 ssh 无法连接新加坡机房 时的应急流程