CHUAN2 DEV ENGINE
996 正版授权研发中心 · 360 授权合作教学中心 · 抖音传奇直播合作授权 · 快手推广运营商授权
OFFICIAL LICENSED ACADEMY 查验官方授权证书 →
// 威海旷世互娱教学基地 · 技术文章
运维发布

【运维发布】防 DDoS:流量清洗与连接限制

2026-09-21 17:46 作者:996 技术组 运维发布

实战应用:用在哪里

开服日的攻击是行业的见面礼:SYN 洪水打满连接表,UDP 反射撑爆带宽,登录接口被僵尸包淹没——防 DDoS 的体系在攻击到来之前就要建好,临时抱佛脚的代价是开服首日全服掉线。

接入层的清洗

lua

---接入清洗:可疑流量引流到清洗中心
function AntiDDoS.decide(srcIp)
    -- 单 IP 的连接与速率双限
    local conn = ConnStat.of(srcIp)
    if conn.count > 50 then
        return "block", "连接数超限"
    end
    if conn.synPerSec > 30 then
        return "challenge", "SYN 速率异常"
    end
    if ConnStat.blacklisted(srcIp) then
        return "block", "黑名单"
    end
    return "pass"
end

---SYN 代理:半连接由网关代答
function AntiDDoS.synProxy(pkt)
    -- 网关代答 SYN-ACK,完成三次握手才转发后端
    if not Handshake.proxyReply(pkt) then
        return false
    end
    return Forward.toGame(pkt)
end

接入层的第一道闸按单 IP 双限:并发连接 50 上限、每秒 SYN 30 次的速率线,超限的 IP 直接拉黑或进挑战。SYN 代理让握手在网关代答完成,半连接洪水打不满后端的连接表——僵尸包在网关就现了形,完成真实握手的流量才有资格到游戏服。清洗中心的引流在攻击超阈值时启动:运营商把目标 IP 的流量牵引到清洗节点,洗完的干净流量回注,10 Gbps 级的洪水在入口被消化。

业务层的限流

lua

---登录接口的挑战与限流
setontimerex(76, 5)
function AntiDDoS.loginGuard()
    local qps = Login.qpsNow()
    if qps > 2000 then
        -- 超阈值开启挑战:登录前先答一道计算题
        Login.enableChallenge(300)
        Ops.alert("登录 QPS 异常,已开启挑战模式 300 秒")
    end
end

业务层的登录接口按 QPS 限流:正常开服的登录峰值有基线,超基线的流量触发挑战模式——客户端先答一道轻量计算题再发登录请求,僵尸端的算力成本陡增而真机玩家无感。挑战的开启是自动的,时效 300 秒后自动关闭,攻击的波峰与防御的动作同步起伏。防御的分层职责清晰:清洗中心管带量的洪水、网关管连接的洪水、业务层管请求的洪水,三层的阈值独立配置互为冗余。

验证与监控

攻击的实时大盘:流量、连接数、清洗量、拦截量四条曲线同屏;清洗切换的演练季度一次,真到攻击时引流的开关不能是第一次摸。

踩坑记录

连接的限制曾经按全局限,一次正常的开服洪峰把自己限死了,单 IP 维度的限制才是对的颗粒度。黑名单曾经永不过期,误伤的网吧出口永久失联,黑名单的 TTL 30 分钟自动解除。挑战模式的计算题曾经太简单,僵尸端直接穷举过了,题目的复杂度与验证的成本再平衡。

上线要点

防御的阈值随开服节奏动态调整:开服日放宽、平日收紧。攻击的应急手册写明每级攻击的处置动作与决策人,慌乱中的判断靠预案。与运营商的清洗通道提前接通,引流的联系人与工单流程在攻击前演练过。

本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。

作者履历与出处

本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。

← 返回文章地图返回研学路径

最新技术文章 · 实战干货

LATEST ARTICLES

全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →

玩法策划沙巴克税收

【玩法策划】沙城税务官:税收分配与廉政度的玩法设计

实战应用:用在哪里 沙巴克占领行会坐收税收却只进不出,非占领行会的玩家心里不平衡。税务官玩法把税收做成明账:占领行会对摆摊与…

2026-09-23 01:24 996 技术组
玩法策划比武社交

【玩法策划】比武招亲:比武切磋与社交绑定的玩法设计

实战应用:用在哪里 高端玩家婚姻系统只有仪式没有过程,社交绑定缺一个高光事件。比武招亲做成擂台玩法:擂主设擂摆彩头,攻擂者报…

2026-09-23 01:24 996 技术组
案例复盘限时礼包日期

【案例复盘】限时礼包少发一天的事故复盘

实战应用:用在哪里 开服七日限时礼包发到第六天断了粮,9 月 1 日当天领奖按钮灰的,投诉当天破千。事故根因是一条数字日期循…

2026-09-23 01:24 996 技术组
网络通信心跳假在线

【网络通信】心跳探测:半开连接的主动识别

实战应用:用在哪里 玩家拔线不退游戏,连接半开着,人不在指令也没有,在线数虚高,容量预案被假数据带着跑。心跳探测给每个在线玩…

2026-09-23 01:24 996 技术组
运维发布发布日历

【运维发布】发布日历:全月变更的集中排期

实战应用:用在哪里 周三发了合成系统补丁,周四又改强化概率,两条变更叠加后玩家分不清是哪个改出来的。发布日历把全月变更集中排…

2026-09-23 01:24 996 技术组
Lua实战滑动窗口计数

【Lua实战】时间窗口计数:滑动窗口的环形数组实现

实战应用:用在哪里 容量预案需要知道滚动一小时的副本进入峰值,而不是全天累计。滑动窗口用 60 个槽位每槽记一分钟的进入数,…

2026-09-23 01:24 996 技术组