机房的门是凌晨三点半被推开的。
何潇拎着两袋便利店关东煮进来,鼻尖冻得通红,吸了一下,又吸一下,像只刚在风里跑过的狗。他把袋子搁到桌上,顺手摸出手机,屏幕亮着:2026年11月19日,凌晨3:42。破晓传媒的机房三十平米,塞了七台服务器,角落里泡面箱和矿泉水瓶摞成矮墙,墙上贴满便利贴,全是田笑的字,每张都带着小星星标记,最上面那张写着:“今天也要活下去!”
“来了。”周远坐在最里面那台机器前,头也没回。他面前是白墙,墙上钉着一块软木板,图钉密密麻麻,钉着纸条。那是他们这七天来的战果,不是胜利,是记录。
何潇走过去,把一杯热豆浆搁在周远手边,自己拧开瓶水灌了两口。他扫了一眼软木板,上面已经贴了三十多张纸条,每张写着日期、时间和一个IP段。从第一天开始,他们被攻击了七次,封了三个账号,断了两条直播链路。每一次,何潇都反手把攻击源头查了出来,IP段写在纸条上,钉上墙。
“今天有新的?”何潇问。
周远没说话,侧了侧身。何潇顺着他的目光看过去——软木板最上方,一张新纸条,墨迹还没干透。上面写着一行字:
“天幕集团·内容安全部·出口节点·集群A3-17”
何潇的咀嚼动作猛地停住。鱼丸在嘴里凝固,他像被按下了暂停键。过了两秒,他咽下鱼丸,竹签放下,凑近那张纸条,看了三遍。然后他笑了,笑得很轻,像在便利店门口看见一只猫。
“他们终于自己下场了。”何潇说,“前七天都是外包水军和野路子黑产,我还以为天幕多沉得住气。结果第七天就忍不住了。”
周远端起豆浆喝了一口:“你确定这个IP没问题?”
“我追了四层跳板,最后落在天幕大厦的物理网段。”何潇拉开椅子坐下,手指在键盘上敲了几下,屏幕上弹出一堆密密麻麻的日志,“他们用了内容安全部的出口节点,以为混在正常流量里就查不出来。但有个漏洞,他们凌晨两点到四点的流量异常峰值,和我们的直播被掐断的时间完全重合。巧合到这种程度,就不是巧合了。”
田笑推门进来,头发乱得像鸡窝,手里攥着一部手机,屏幕上是直播平台的封禁通知。她把手机拍在桌上:“第三场直播,刚开播十七分钟,封了。理由:内容违规。具体违规内容:无。申诉通道:排队中。”
“第几次了?”何潇问。
“第七次。”田笑说,“七天,七场直播,七次封禁。他们倒是挺有规律。”
何潇没接话。他盯着屏幕上那串IP,手指悬在键盘上方,停了一会儿,落下去。他调出一个文档,里面密密麻麻记录着这七天来所有攻击的时间、方式、IP归属。他把天幕那个IP段加进去,又调出另一个文档——那是他过去三天从公开渠道搜集的天幕集团内容安全部的招聘信息、部门架构、员工社交账号。他花了三个小时,把天幕内容安全部的网络拓扑摸了个七八成。
“他们有个外包审核团队,在城南科技园,三层楼,两百多人。”何潇说,语气像在报菜名,“负责所有直播平台的内容初审。天幕自己旗下的平台不用说了,其他平台他们也签了审核外包合同。也就是说,我们每次开播,内容先过他们的手。”
田笑愣了:“你是说,我们直播的内容,还没到观众面前,就被他们的人先看了?”
“不止看了。”何潇敲了一下回车,屏幕上弹出一张流程图,“他们有个关键词库,实时更新。我们只要提到某些词——‘真实’‘不加工’‘素人声音’,就会触发预警,然后人工复核。复核的人只要点一下‘疑似违规’,平台那边就自动断流。”
周远放下豆浆杯:“所以不是我们做错了什么,是他们不想让我们做。”
“对。”何潇说,“而且他们做得滴水不漏。审核外包是合法生意,关键词库是行业标准操作,人工复核是平台规则。每一步都合规,每一步都合法。但合在一起,就是一张网。”
田笑盯着那张流程图看了很久,忽然说:“那我们把直播内容提前录好,绕过实时审核呢?”
“录播的流量只有直播的十分之一。”周远说,“而且他们可以事后下架,理由还是那套。”
机房陷入一片死寂。服务器风扇嗡嗡响着,像在替他们倒计时。软木板上的纸条在日光灯下微微反光,像一面小小的、写满失败的战旗。三十多张纸条,每一次被攻击、每一次被封禁、每一次链路被切断,都被何潇记了下来。他记得每一个IP段,每一条攻击路径,每一个跳板服务器。他记得它们,就像记得一首歌的每一个音符。
“我们换个思路。”何潇忽然说。
他站起来,走到软木板前,把那张天幕的纸条取下来,翻到背面,用笔写了一行字。然后他把纸条重新钉上去,正面朝外。
田笑凑过去看,念出声:“‘天幕集团·内容安全部·出口节点·集群A3-17’——这不是一样的吗?”
“背面。”何潇说。
田笑把纸条翻过来,背面写着另一行字:“该节点同时承载天幕旗下‘星潮直播’的华东区内容审核备份流量。每日凌晨1:00-4:00为备份窗口,带宽占用率约60%。若该窗口流量异常,将触发备份系统自动扩容,扩容指令需三级审批,审批人:内容安全部副总监江虹。”
田笑念完,抬起头:“江虹?那个封杀我们的A&R?”
“对。”何潇说,“她现在是天幕内容安全部的副总监。所有封禁指令,最终都要经过她的审批。”
周远沉默了一会儿,说:“你想干什么?”
何潇没回答。他坐回电脑前,手指在键盘上飞快地敲着。屏幕上弹出一个新的窗口,里面是一段代码,像某种网络请求的模板。他一边敲一边说:“我不想干什么。我只是在想,如果天幕的备份系统在凌晨两点突然收到一个异常流量请求,系统会自动扩容,扩容指令会发到江虹的审批队列。她半夜被叫起来审批一个莫名其妙的扩容请求,会怎么想?”
田笑眨眨眼:“她会觉得是技术故障。”
“对。”何潇说,“她会签批,然后回去睡觉。但那个扩容请求会占用天幕内容安全部百分之六十的带宽,持续大概二十分钟。这二十分钟里,他们的审核系统会变慢,关键词库的更新会延迟,人工复核的队列会堆积。”
周远看着他:“你是说,我们趁那二十分钟开播?”
“不止开播。”何潇说,“我们提前把直播内容准备好,开播前十分钟,我触发扩容请求,拖慢他们的审核系统。等他们反应过来,我们已经播了十五分钟了。十五分钟,够我们说完想说的话了。”
田笑眼睛亮了:“然后呢?”
“然后他们会封我们。”何潇说,“但没关系。我们这七天已经攒了三千多个真实粉丝。他们不是冲着平台来的,是冲着我们来的。我们把直播录屏,在封禁前发到所有能发的平台。封一个发一个,封两个发一双。”
周远看着何潇,看了很久。何潇被他看得有点不自在:“怎么了?”
“你什么时候开始想这个的?”周远问。
何潇想了想:“从第三天开始吧。那天他们封了我们的账号,我半夜睡不着,就翻了翻天幕的公开技术文档。发现他们有个备份系统的漏洞——扩容审批流程太长了,只要有人触发异常流量,系统就会自动发审批请求。审批人只有江虹一个。她不可能二十四小时盯着。”
田笑忍不住笑了:“所以你花了四天,就为了确认江虹的审批流程?”
“我还确认了她的作息时间。”何潇说,“她一般凌晨一点半到两点之间会看一次手机。可能是习惯。所以我们的扩容请求最好在一点四十五分触发,这样她正好能看到。”
机房又安静了一会儿。然后田笑说:“你真是个疯子。”
“别急,先吃口。”何潇把关东煮袋子推过去,“凉了就不好吃了。”
他们吃了五分钟的关东煮。凌晨四点的机房,日光灯嗡嗡响着,窗外是2026年深秋的夜,偶尔有车经过,轮胎碾过湿漉漉的路面,发出沙沙的声响。何潇吃完最后一颗鱼丸,把竹签扔进袋子,擦了擦手,重新坐回电脑前。
“我今晚把扩容请求的脚本写好。”他说,“明天白天我们准备直播内容。晚上一点四十五分触发,两点整开播。”
周远点了点头:“走了。”他站起来,走到门口,又停了一下,回头看了一眼那面软木板。三十多张纸条,在灯光下微微卷着边。最上面那张写着天幕IP的纸条,像一面小小的旗帜。
“这面墙,会越来越满的。”周远说。
“会。”何潇说,“但总有一天,我们会把最后一张纸条贴上去,然后就不用再贴了。”
周远没接话,推门出去了。田笑跟在他后面,走到门口又回头:“何潇,你那个扩容请求,万一被他们发现了怎么办?”
何潇已经转过身,屏幕的光映在他脸上。他嘴角带着一点笑,像那种在便利店买到最后一份关东煮的满足感:“那就让他们发现。反正他们迟早会发现,这面墙上的每一张纸条,都是他们自己写上去的。”
田笑没听懂,但她没再问。她关上门,脚步声在走廊里渐渐远去。
何潇独自坐在机房里,键盘敲击声在空旷的空间中回荡,像在给即将到来的战争谱曲。屏幕上,代码一行一行跳出来,安静、耐心、不容置疑。他敲到一半,手机震了一下。他拿起来看了一眼,是周远发来的消息,只有四个字:
“别太晚了。”
何潇看了一眼屏幕右下角的时间,凌晨四点四十七分。他想了想,回了一条:“再半小时。”
然后他把手机放下,继续敲代码。窗外,2026年的深秋夜正在慢慢变淡,天边露出一线极淡的灰白。那灰白像一面墙,正在被什么东西一点一点地,从黑暗中敲出来。
他敲完最后一行代码,保存,关闭窗口。然后他站起来,走到那面软木板前,看着那张写着天幕IP的纸条。他伸手轻轻按了一下纸条的边缘,把它按得更平。
“第七天。”他低声说,“战争开始了。”
他转身关灯。机房陷入黑暗,只有那面软木板上的纸条,在窗外透进来的第一缕晨光里,微微泛着白。
像一面墙。像一面正在被写满的墙。像一面总有一天会被写满、然后被拆掉、然后被记住的墙。
何潇走出机房,带上门。走廊尽头,天光正从窗户里涌进来,把地面染成一条一条的灰白色。他站在门口,看着那条光带,忽然想起什么,掏出手机,给周远又发了一条消息:
“对了,明天直播的标题我想好了。就叫‘第七天’。”
他等了一会儿,周远回了一个字:
“好。”
何潇把手机揣回兜里,朝走廊尽头走去。他走得很慢,像在听什么只有自己能听见的声音。那声音很轻,像一面墙正在被敲响,一下,又一下,从骨头里渗进来。