# 网络拥塞与请求防护处理记录 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 拦截,只清空这个专用集合即可,不要清空整个防火墙: ```sh ipset flush txiaw_cc_0831 ``` 若还需移除空匹配规则和集合,按顺序执行: ```sh 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 关闭连接且不发送响应头](https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#return)。