1. 概述与准备工作
目的:快速定位
台湾VPS在高防场景下的常见故障并恢复服务。
准备项:SSH连通、root或sudo权限、基础命令行工具(ping, traceroute/mtr, tcpdump, netstat/ss, iptables, fail2ban)。
操作前备份:执行任何更改前,备份重要配置:cp /etc/ssh/sshd_config /root/sshd_config.bak 等。
2. 首诊:判断故障是否为网络或应用层
步骤:1) 本地ping VPS IP:ping -c 4 IP;2) 从另一台云主机或在线工具(如https://ping.pe)测试;3) mtr -rw IP 查看丢包与延迟路径。
判定:若连通性断开或在边界路由处丢包,多为网络层或被运营商/高防拦截;若ICMP通但端口不可达,可能为防火墙或服务进程问题。
3. 检查高防告警与控制台信息
步骤:登录小鸡云控制台->实例管理->安全/防护(或工单中心)查看防护触发记录与流量曲线。
如果有DDoS峰值:记录发生时间、峰值流量、目标端口,必要时提交工单请求临时放宽或查看防护策略日志。
4. 本机网络及端口状态快速检查
命令与步骤:ss -tunlp 或 netstat -tunlp 查看监听端口;systemctl status <服务名> 检查服务状态;sudo lsof -i :80 查看占用。
若服务未启动:journalctl -u <服务> -n 200 查看最近日志并按错误修复(如端口冲突、配置错误)。
5. 日志分析实操(nginx/apache/mysql等)
步骤:1) nginx:tail -n 200 /var/log/nginx/error.log;2) access.log 按时间段grep 请求数异常:awk '{print $1}' access.log | sort | uniq -c | sort -nr。
通过IP聚合确认是否为单一源攻击,若是则可加入黑名单或交给高防策略处理。
6. 使用tcpdump抓包定位恶意流量
基本命令:sudo tcpdump -i eth0 -nn dst host
and port 80 -w /root/packet.pcap。
分析:用Wireshark或tshark查看SYN flood、UDP flood、异常包大小或同一源多端口扫描。记录典型特征用于防护规则写入。
7. 临时防护策略:iptables与conntrack调整
立即规则示例:sudo iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 200 -j DROP(限制单IP并发连接)。
清理连接:sudo conntrack -L | wc -l 查看连接数;sudo conntrack -F 清空(风险:会中断所有连接,谨慎使用并在低峰期执行)。
8. 长期防护:fail2ban与限流配置
fail2ban安装与配置:sudo apt install fail2ban;在 /etc/fail2ban/jail.local 增加 [nginx-http-auth] 或自定义filter,设置 bantime、findtime、maxretry。
nginx限流:在 server 或 location 中加入 limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s 与 limit_req zone=one burst=20 nodelay。
9. 与小鸡云高防配合的策略建议
操作步骤:1) 在控制台启用高防并选择按流量或按攻击类型策略;2) 将防护IP替换到DNS或通过BGP/转发方式接入;3) 通知运营商或提交工单协同清洗。
注意:某些高防模式会对正常大流量影响业务,需做白名单与例外端口配置。
10. 恢复服务的标准化操作流程
步骤清单:1) 记录故障时间与操作步骤;2) 临时阻断恶意IP或策略;3) 重启受影响服务并监控日志;4) 与高防客服确认已清洗;5) 做后续加固(限流、WAF、验证码)。
验证:使用curl -I http://yourdomain 检查返回头,mtr持续监控5-10分钟确认稳定。
11. 常见误区与风险提示
误区:盲目清空conntrack或iptables导致业务中断;修改防护策略不记录回滚点。
风险控制:所有生产变更先在测试环境复现,关键配置修改前备份并记录,必要时通过控制台快照回滚实例。
12. 小工具与脚本示例(可直接复制)
快速统计访问IP脚本:sudo awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -n 20
自动封禁脚本示例(示意,生产请审查):for ip in $(awk '{print $1}' access.log | sort | uniq -c | sort -nr | awk '$1>200{print $2}'); do iptables -I INPUT -s $ip -j DROP; done
13. 问:我的台湾VPS在高防触发后网站完全无法访问,我第一步该做什么?
回答要点:先通过控制台查看防护告警与流量图,确认是否被高防自动拦截;同时从本地和第三方检测连通性(ping/mtr),若控制台显示高峰并有拦截,联系小鸡云工单请求临时放宽或查看清洗结果;在VPS内部检查服务进程与端口,必要时临时启用iptables规则限流并记录操作以便回滚。
14. 问:如何区分正常流量激增与DDoS攻击?
区分方法:看流量特征(均衡的来源/多IP低频=正常,单一或短时间内大量SYN/UDP/同一端口=攻击);通过日志聚合判断是否为搜索引擎或第三方爬虫(User-Agent、请求路径一致性);使用tcpdump抓包分析包头特征(如伪造IP、不完整三次握手等)确定是否为DDoS。
15. 问:高防清洗后我还需要做哪些长期加固?
建议措施:启用应用层WAF(过滤常见攻击);在应用侧实施限流与验证码策略;部署fail2ban或自研IP黑名单同步脚本;定期更新系统与服务补丁,配置合理的conntrack与iptables阈值;与小鸡云沟通定制白名单与异常流量告警策略,保持工单历史记录以便后续优化。
来源:台湾vps 小鸡云主机高防御常见问题与故障排查实用技巧