5.9 KiB
网络拥塞与请求防护处理记录
2026-08-31,北京时间。服务器:47.106.181.28。
当前结果
17:42 的验证中,公网网站首页和宝塔登录页均已恢复访问:
| 检查 | 结果 |
|---|---|
| 公网网站首页,普通路径 | 200,约 0.66 秒 |
| 公网宝塔登录页,普通路径 | 200,约 0.70 秒,标题为“宝塔Linux面板” |
| 公网宝塔登录页,代理接口路径 | 200,约 0.58 秒,同样取得完整登录页 |
| 服务器本机网站首页 | 200,约 0.02 秒 |
| 服务器本机文章页 | 200,约 0.03 秒 |
| 服务器本机另一站点首页 | 200,约 0.03 秒 |
| 服务器本机宝塔 HTTPS | 200,约 0.08 秒 |
| 已确认的刷请求特征 | Nginx 直接关闭连接,无 HTTP 响应;日志记 444 |
这些是当前采样结果,不能视为持续攻击下的长期可用性保证。面板的自签名证书没有更换,浏览器证书信任提示仍可能出现;测试没有通过 HTTPS 提交面板账号密码。
发现的压力
17:35,原首页频率限制已撤回且 Nginx 配置中相关规则计数为 0;此时公网仍有超时。MySQL 活跃查询为 1,CPU 空闲约 62%,但已建立 TCP 连接约 14,338 条。
同一时段最近 1,000 次站点访问中有 999 次符合已确认的异常特征:GET/HEAD 首页、带随机 r 参数、没有 User-Agent。随后 4,000 条样本跨约 3 秒,3,996 条为该类请求,来自 113 个来源。证据支持持续异常请求和连接压力参与了本轮网络拥塞,不能把所有故障直接归因于数据库或首页频率限制。
系统运行时间显示服务器约在 16:34 重启过,重启原因未确认。本轮未执行服务器、MySQL、PHP 或宝塔重启。
实际修改
1. 撤回正常首页的频率限制
17:18 移除了此前新增的两处 Nginx include,通过配置检查后平滑重载。仅删除本次加入的引用,保留站点配置里的其他内容。原每 IP 5 次/秒、首页总量 50 次/秒等频率限制现已停用。
撤回前配置备份:
/www/backup/txiaw-mysql-fix-20260831/www.txiaw.com-before-rate-limit-rollback-20260831-171842.conf
2. 仅关闭已确认异常请求的连接
17:36 重新加载精简后的两个防护 include,里面不再有 limit_req、limit_req_zone 或首页总量限制。对上述已确认异常特征执行 Nginx return 444,减少 HTTP 429 应答和 PHP 调用开销。正常浏览器首页、文章页和其他站点不适用该条件。
当前文件:
/www/server/panel/vhost/nginx/www.txiaw.com.conf/www/server/panel/vhost/nginx/txiaw-home-protection-http.inc/www/server/panel/vhost/nginx/txiaw-home-protection-server.inc
已验证配置合法、精确拦截规则已加载、原频率限制未加载。修改前备份位于:
/www/backup/txiaw-mysql-fix-20260831/before-abuse-connection-close-20260831-173658/
PHP 对同一异常特征的 429 拦截仍作为后备保护。数据库新索引和首页缓存保留,没有删除索引或业务数据。
3. 临时拦截 84 个确认异常来源
17:42:02 创建原生 ipset 超时集合 txiaw_cc_0831,通过一条独立 iptables INPUT 规则仅拦截集合中来源访问 TCP 80。
入选条件同时满足:最近且跨度不超过 30 秒的日志样本;同源异常请求不少于 20 次;该站样本异常比例不低于 98%;平均至少 5 次/秒;公网 IPv4;同时出现在当前 80 端口 TCP 对端中。排除了本次 SSH 来源和服务器地址。
- 仅限确认的 84 个来源和 HTTP 80 端口,不修改 SSH 22、HTTPS 443、宝塔 8686 的规则。
- 每个集合成员有效期 900 秒,约在 17:57:01 自动到期。
- 没有配置自动续封、后台轮询或定时任务,也没有主动将该规则保存到开机配置。
- 到期后空集合的匹配规则不拦截地址,Nginx 的异常特征拦截继续存在。
- 截至 17:42:45,该临时规则已丢弃约 67,556 个包。
只应将这一措施视为紧急缓解。15 分钟后若同批来源继续攻击,仍可能重新产生较大的连接压力;长期源站保护需要结合云侧流量、带宽和防护能力进一步处理。
前后采样
| 指标 | 撤回频率限制后、精确断开前 | 精确断开和临时来源拦截后 |
|---|---|---|
| 采样时间 | 17:35 | 17:42 |
| 已建立 TCP 连接 | 全机约 14,338 | 80 端口约 484;443 端口约 31 |
| CPU 空闲 | 约 62% | 约 54% |
| 网卡接收 | 约 4.71 Mbps | 约 2.99 Mbps |
| 网卡发送 | 约 5.11 Mbps | 约 3.55 Mbps |
| 本机首页 | 约 1.1 秒 | 约 0.02 秒 |
| 公网宝塔 | 多次超时 | 两条测试路径均成功,约 0.58–0.70 秒 |
流量持续变化,采样窗口较短,不能把每个指标的全部变化单独归因于某一项修改。未取得云平台带宽上限或流量清洗事件,不能认定已查明具体云侧瓶颈。
审计记录与撤回
远程记录均位于 /www/backup/txiaw-mysql-fix-20260831/:
rate-limit-rollback.json、rate-limit-rollback-verified.jsonabuse-connection-close.json、abuse-connection-close-verified.jsontemporary-abuse-source-filter.json:含入选来源和启用时间,权限 0600network-mitigation-final.json
如需立即解除本次临时 IP 拦截,只清空这个专用集合即可,不要清空整个防火墙:
ipset flush txiaw_cc_0831
若还需移除空匹配规则和集合,按顺序执行:
iptables -w 5 -D INPUT -p tcp --dport 80 -m set --match-set txiaw_cc_0831 src -m comment --comment txiaw-confirmed-abuse-expiring -j DROP
ipset destroy txiaw_cc_0831
如需撤回 Nginx 精确断开规则,应移除这两处专用 include 引用,执行 nginx -t,通过后平滑重载。不要恢复此前每 IP/全站首页的频率限制,也不需要回滚数据库或导入表备份。