Files
kefu/im/网络拥塞处理-2026-08-31.md
2026-09-03 08:38:17 +08:00

5.9 KiB
Raw Permalink Blame History

网络拥塞与请求防护处理记录

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.json
  • abuse-connection-close.json、abuse-connection-close-verified.json
  • temporary-abuse-source-filter.json:含入选来源和启用时间,权限 0600
  • network-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/全站首页的频率限制,也不需要回滚数据库或导入表备份。

Nginx 官方说明:444 关闭连接且不发送响应头。