黄昏的港口有一种奇怪的安静。
不是没有人——码头上有工人在清点货柜,远处有吊臂在转动,声音从很远的地方传过来,像被风稀释过的。但奇怪的是另一种东西:一种气压变化带来的停顿感,像空气在等待什么。
路远蹲在集装箱区的边缘——那个老位置。三号城港口东侧的一片遮蔽带,被废弃的货柜和生锈的支架围出一个三面遮风的小角落。地上铺着一块他不知从哪捡的防潮垫,边缘已经被踩脏了,但对一只猫来说足够了。
小橘没在等。
它已经在吃了——低着头,橘色的虎斑毛在傍晚的光线下显得比白天更深。耳朵动了一下,但没有抬头。尾巴从身后绕过来,搭在前爪外侧,缓慢地摆了一下。
路远没有摸它。他蹲着,左手肘搁在膝盖上,右手把粮袋的口子卷起来,放在地上。他看着小橘吃东西。三号城的工程师都习惯在等待中做点不需要动脑的事——不是真正的休息,是把身体的某个部分关掉,只留一个基础程序在运转。
他已经这样蹲了大约十分钟。
晨间开了三小时的泵站参数调整会。午饭后和五号城做了一次远程联调,信号延迟高,来回对了四遍数据才确认。下午周海来找他——不是公事,是周海注意到他昨晚又在工程部过夜,没说什么,泡了两杯茶放了一杯在他桌上就走了。路远喝完茶,继续调了半小时数据。
然后他走出来喂猫。
这是他在三号城的日常节奏中最固定的一个片段——不管忙到多晚,如果还记得,就从抽屉里拿一小袋猫粮,走到港口这个角落,蹲下来。
但他注意到了一件事。
小橘吃得很慢。
不是食欲问题——它吃了几口,停了下来,抬起头。没有看他,而是看向他的身后——海的方向。
然后它又低头吃了一口。嚼了两下,又抬起头。耳朵转动了一下——不是朝向路远摇晃粮袋的方向,而是朝向远处海平线的方向。
路远没有说话。他观察了小橘大约一年了——他知道它的行为基线。进食时不论听到什么都不会被打断,除非是突然的巨响。
但今天它被打断了三次。
第三次抬起头时,它没有低头再吃。它站在原地,前爪微微向前伸了半步——不是准备走的姿势,是站定了,盯着海面。
路远顺着它的视线看过去。
海面在傍晚的光线下是灰蓝色的,偶尔有一道较亮的反光。没有什么异常——没有船,没有涌浪,连远处的鸟群都是正常的高度。
他转回视线看小橘。
它的尾巴没有动。
猫的尾巴不动,通常意味着两件事:高度专注,或者不安。
「怎么了?」他问。
语气很轻——不是对它说的,是对自己说的。他的习惯性自问句。但他问的时候,手没有伸出去。他不确定现在摸它是不是对的。
小橘没有回应他。它又站了几秒,然后绕了半圈——不是靠近路远,是朝着港口更高的一个集装箱台座走了几步,跳上去,趴在了铁皮顶上。
位置变更。从遮蔽处转移到制高点。
像一只观测天气的动物在气压骤降前本能地寻找视野更开阔的位置。
路远蹲在原地,看着它跳上去,趴好,面朝海的方向。没有追过去,也没有叫它回来。他把粮袋收起来——剩下的大半袋。小橘没吃完。
这不是小橘的习惯。
他把粮袋放回外套口袋。站起来。蹲得太久,膝盖发出一声极轻的响。
他看了小橘一眼。
它趴在那块铁皮顶上。橘色的身体在灰蓝色的天空背景下显出一种安静的轮廓。尾巴在身后缓慢地扫了一下——不是不安的节奏,是等待的节奏。
「你看到什么了?」路远低声说。
小橘没有回答。
但他知道小橘不会无缘无故改变行为。
——他站在那里,面朝橘猫的方向,而猫面朝海。
画面持续了大约十秒。然后路远转身,往工程部的方向走回去。走了几步,停下来。回头看了一眼——小橘还在那个位置。然后他继续走了。
脚步比来时快了一点。不是跑。是确认过什么事之后,加速向某个目标移动的速度。
他没有回头看第二次。
——·——
工程部走廊里的光从日光灯变成了应急灯的模式——不是切换,是时间过了六点半,主控自动把照明降至百分之六十。走廊暗了一些,但还在能看清楚的范围内。
路远从侧门进来。刚拐过转角——一个身影从走廊那头跑过来,跑得很急,脚步在水泥地面上发出不稳的、带点踉跄的声音。
何小满。
她冲到他面前,差点撞上——最后几步刹住了,但身体的重心因为惯性往前倾了一下。呼吸没调匀,胸口起伏着。额前的碎发被风吹乱了,有几根贴在额头上。手上握着一个终端——屏幕亮着,光从下方照着她的脸,让她的表情看起来比实际更急切。
「老师——!」
叫完这两个字,她先弯腰喘了口气。
路远没有催她。站在那里,等她说。
「四号城的——」她直起身,咽了一下,「四号城的孟工发了一条通讯!」
路远看着她。她的反应——不是收到通讯的反应,是收到某种通讯之后的反应。她的表情里有一种不该有的紧张。她在等他的回应,像在等一个她能预料到他会有某种反应的回应。
「什么内容?」路远问。
语气是平稳的。但他已经注意到了一件事:以她的级别——工程部实习生的终端权限——她不应该看到加密通讯上的内容。
小满张了张嘴。
「她说——」
她停了一下。路远看到她在那一瞬间做了一个很细微的吞咽动作。不是紧张时才有的那种吞咽——是话到了嘴边、紧急检查了一下要不要改口的那种停顿。
「——议会可能会对你动手。」
她说出来了。完整的一句。没有结巴,没有省略。
但路远没有接这句话。
他看着她。大约两秒。他站在走廊灯光略暗的那一侧——小满面向他,背光,终端的光照着她的脸,她的表情暴露在他面前,而他的表情有一半在阴影里。
「你怎么知道这条通讯的内容?」他问。
语气没有变。但问题本身比之前那句更直接。
小满愣了一下。
「我——」
「孟工是发给我的。」路远说。「你的终端上没有那条通讯的记录。」
他说这句话不是质问——是确认。他太了解工程部的通信系统了。跨城加密通讯只走工程部的主通道,接收端只有他一个人的终端。小满的实习终端连加密群都收不到,更别说直接拿到明文内容。
除非——她通过其他方式看到了。
小满的表情在一瞬间冻结了。
那种"被逮住"的冻结。手很自然地垂了下来,终端屏幕的光也随着她的动作暗了。她的目光向左偏移了大约十五度——不是看在什么东西上,是在找一个不用和他对视的地方。
「我……不小心看到的。」
「不小心?」
「它在屏幕上弹出来了——」她说到一半,自己都觉得这个解释站不住,声音越来越小。「真的……我就是经过——」
路远没有打断她。但他也没有点头。他看着她说完最后几个字。
走廊安静了两秒。
小满低下头。她知道自己刚才那个谎说得很差——但她也知道自己不能说出真相。因为她的终端上没有显示那条通讯。她是在别的地方看到的。而她不能说那个地方。
路远没有追问。
他看了她一眼——那种他已经知道她没有说实话、但他选择现在不拆穿的眼神。不是放过她,是他知道追下去现在不是时候。
他没有说"下次别这样了"。没有说"你撒谎的水平很差"。他说了另一句话。
「条通讯还在我终端上。」他说。「我先看完再跟你说。」
说完他侧过身,从小满旁边走过去。走了两步——然后他又停了下来。
「小满。」
「……在。」
「你吃晚饭了吗?」
问题突然从工作切换到日常,没有任何过渡。小满愣了一下,脱口而出:「还——还没。」
「去食堂。」路远说。「吃完再说。」
然后他走了。
走廊里剩下小满一个人。她站在原地,终端还握在手里,屏幕已经自动熄灭了。她低着头,看着黑色的屏幕。
他知道她在撒谎。
她知道的。他什么都没有说——但她的老师说了一句最不像批评的话,然后告诉她去吃饭。
这让她比自己被骂了一顿还难受。
——·——
二十分钟后,核心读数室。
小满不该在这里。
现在不是她的值班时段。她应该在水房泡茶,或者是蹲在工程部门口,或者是躺在宿舍床上对着天花板发呆。但她不在那里。
她在核心读数室。
这是工程部区域内权限等级最高的一间房间——独立空调、双层的门、贴了屏蔽层的内墙。平时只有值班工程师能进入。小满不在今天的值班表上。但她在里面。
因为她知道今天有一个空窗期。
六点四十五分到七点十分——交接班间隙,第二批值班员还没到位,第一批刚去吃饭。所有人都知道这个时间差,但没有人会去利用它——因为没有理由。
小满有一个理由。
她没有告诉路远她是怎么看到那条通讯的。
真相是:她不是"经过时不小心看到的"。她是在这间房间里看到的。核心读数室的中央终端——工程部唯一一台与各城核心直连的数据终端——在交接班期间会保持通讯日志的实时刷新。她的实习终端没有权限。但这台终端有。而她今晚混进来了。
她不是第一次做这件事。
过去一周,她利用交接班间隙溜进了核心读数室三次。前两次只是坐着——看参数,看读数,假装自己在加班。第三次她翻了系统日志。
她看到了什么不重要。重要的是她知道自己不该看,但她没办法停下来。
今晚是第四次。
她站在中央终端前。屏幕的冷光把她的脸照得有些苍白——不是灯光的问题,是她自己的脸色在蓝白色屏幕映衬下看起来确实不太好。她的手指在键盘上方停着,没有落下去。
终端上开着两个窗口。
左侧是系统日志窗口——她在查一件事。从三号城到议会的定向数据链路上,最近一周出现了几次"未经授权的跨级文件预览"标记。不是文件被传输,只是预览。系统记录下访问者工号——但她在另一份日志里看到,记录中的工号被标记为"系统服务"而非个人账号。
这说明有人用自己的权限访问了它们,然后用系统服务的壳盖住了痕迹。
她用她的方式追踪了那些痕迹。她的方式不是系统安全分析——她不会那套。她用的是数据读数的直觉:她在日志的时间戳上看到了一条她不该懂的规律。那些访问的发生时间——全部集中在三号城的共振峰波形进入活跃窗口的前后三小时内。
共振峰波形。她的专长领域。
她不是系统安全专家,但她在核心读数室泡了十一个月——她懂数据的"习惯"。这条数据链路在共振波峰前的访问记录,就像一个人在紧张时会下意识摸后颈一样——不是刻意为之,但模式存在。
她顺着这个模式找到了源头。
一个文件。编号:CRF-07-DE。
**Asset-07的转移申请评估。**
她没有看完。她只看了开头几行——发文机构是议会·资产调度委员会;接收方标注为三号城·工程部(抄送);评估对象编号是Asset-07——对应工程部核心工程师序列。
她认识那个编号。
Asset-07。路远的内部调度编号。
她看到那行字之后手指就停不了了。继续往下划——她看到了页面中部的一个词组,让自己没法再假装没看到:
「……启动适应性评估以确认Asset-07在当前职位中的认知稳定性……建议评估周期不晚于本周期末……」
她没有看完。因为有人从她身后经过——走廊上的脚步声——她关了窗口,退出了终端。脚步声过去了,但她的心跳没有下来。
她站在黑掉的屏幕前,站了很久,直到呼吸平复。然后把终端开到系统监测界面——假装自己在查读数。
她没有告诉路远这件事。
但她在那天晚上,做了一件事。
此时,她站在同一间核心读数室里——不是为了再查那个文件。
她的背包放在脚边。她从里面拿出一个巴掌大的东西:一块外壳磨毛了的备用存储模块。一根传输线。她从工位上拿的。
她蹲下来,把工程部主终端的数据接口撬开——只用了一把小螺丝刀。她做这件事的时候手指在抖,但动作没有错。每一个步骤她都在脑子里演练过很多次了:接口位置、连接方向、写入路径、清理痕迹。
她把存储模块接上去。然后她在终端上输入了一行代码。很短。写得很快。回车。
终端显示:*已应用。*
她站起来。把接口盖好。把螺丝拧回原位。收起工具包。站起来——站起来的时候膝盖抖了一下,但她没有让自己停下。
她做了一件事:她在路远的个人终端管理通道里增加了一段监控代码。
名字叫**"心跳监测"**。
代码很短。逻辑也很简单——如果路远的账号发生以下三种情况中的任何一种,系统会向一个预定地址发送一个单向信号:- 账号权限被非正常降级- 系统管理方发起非本人提交的评估申请- 工作日志中出现超出常规范围的"认知状态备注"
信号的内容不是谁的姓名,不是说明,只是一个脉冲——像一个心跳监测仪在心跳停止时发出的无声报警。信号不知道是谁接的——但它指向一个小满的同伴终端无法直接查到的转发节点。
她不知道这个预警能做什么。她甚至不知道自己期望它做什么。
她只是觉得,有人应该知道。
她站起来。屏幕的光灭了——自动休眠。
小满站在原地,看着黑掉的屏幕。呼吸还没有完全平复。她把背包背好,把螺丝刀放回内侧口袋。然后她转身。
开门的时候她的手停在门把上。
她想到了刚才走廊上的对话——「你怎么知道这条通讯的内容?」她想到了路远看她的那个眼神。她知道他什么都知道。他知道她在查不该查的东西,知道她在撒谎,知道她在越界——但他没有批评她。因为他知道她不会停下来。
她停了一下,然后推开了门。
走廊空无一人。应急灯的光均匀地铺在地面上。七点零三分。交接班还有七分钟。
她从核心读数室走出来。沿着走廊往回走。经过水房的时候她停了一下——水房的灯亮着,里面有水龙头开着冲洗杯子的声音。
她想了想。推门进去。
周海在水池边上,正在冲一个白色的陶瓷杯。看到她进来,抬头看了她一眼。
「还没走?」周海问。
「……马上。」
周海没有继续问。他冲完杯子,放在杯架上,甩了甩手上的水,然后从外套口袋里掏出一个小袋子——半袋没吃完的饼干。递给她。
「吃了吗?」
小满看着那袋饼干。接过来。
「……谢谢周工。」
周海点点头。往外走。经过她身边的时候,头也没回地说了一句:
「晚饭还是要吃的。你老师也记得叫他吃。」
然后他走了。
小满站在水房里,手里握着那袋饼干。半袋,普通的苏打饼干,包装袋边缘有点皱——周海随身带的那种。
她低头看着袋子。没有拆开。
但她也没有放下。
——·——
深夜。十点四十分。
路远回到自己的终端前。调出孟工发来的那条通讯——加密的,已经解密并阅读过一遍了。他扫了第二遍,确认没有遗漏。
内容和她转述的基本一致。议会层面正在讨论对他进行某种形式的"评估"。孟工的措辞非常谨慎——不是警告,是"建议你做好心理准备"。
他合上终端。靠在椅背上。
不知道怎么地,他想起了傍晚那只橘猫面向海面的姿势。
不是联想——是注意力被拉回到了那个画面。小橘趴在铁皮顶上,尾巴缓慢地扫了一下。面朝海的方向。风从它的侧面吹过去,它的耳朵微微转动了一下但不影响它盯着的方向。
它在预报天气——这不是人的说法,是猫的。
路远知道动物对气压变化的敏感度远超人类。但他刚才在核心室看到了一条共振峰的日志——不是工程部的日常归档,是一条跨城共享的监测记录。三号城外围的共振峰活跃窗口在过去七十二小时内缩短了约11%。这种变化在常规报告中不会引发警报——但以他过去一年的经验,共振峰的压缩往往意味着某种变化的序幕。
他坐在终端前。不知道这两者之间有没有任何联系——小橘趴到高处看海,和共振峰窗口的压缩。
但他在同一天注意到了这两件事。这就够了。
他把终端的亮度调低了一档,然后打开了一个他一直知道在运行但从未打开过的文件——不是系统日志,是他自己的健康数据摘要。白锦书每周更新一次,发送到他的私人通道,他很少点开。
今晚他点开了。
看了一眼最下面那行趋势标注。
结晶率:趋势线上涨。
他看了三秒。关掉了。然后把终端放在桌上。调暗了屏幕。
办公室里的光只剩下他自己那盏台灯——和走廊里透进来的应急灯光。他坐在那里,没有开下一份文件。他的左臂搁在桌面上,外套袖口卷起了一小截——手腕内侧的结晶线在灯光下反射出极淡的蓝白色光泽。
他看了一会儿那条线。
结晶线从前臂中段蔓延到手腕内侧,比一个月前多了大约两厘米。细的,像银蓝色叶脉的路径,贴着皮肤表层下的某层组织,既不是血管也不是神经——但它有它自己的方向。
他拉下袖口,盖住了它。
然后他站起来,走到窗边。从他的办公室窗口朝港口的方向望过去——已经什么都看不到了。港口在黑暗中,只有几盏灯标在远处闪烁着。小橘应该已经不在那个铁皮顶上了。它应该是回它自己的位置去了。
但他还是朝那个方向看了一会儿。
因为他预感到——那个方向迟早会出什么事。不是基于数据,是基于直觉。而这种直觉,和小橘的天气感类似。不是分析出来的,是在一个位置待久了之后,身体记住的那种——气压的变化、风的方向偏移、猫不看海了开始看你。
他把窗户关好。
然后坐回终端前。调出那个"心跳监测"模块——安装痕迹写得干净利落,存储链路管理方式有一种特别的风格。
他一眼就知道是谁写的。
何小满。
他没有删除它。没有覆盖。没有发消息问她在做什么。他只是确认了它的存在。然后他建了一个新的文件夹,在系统层加了一个自定义的安全规则——把这个模块的数据通道加了一层转发保护。
不是屏蔽它。是保护它。
然后他继续工作了。
——·——
三号城的夜晚在港口的风声和泵站的低频嗡鸣中继续流动。一只橘猫在某个没有被光照到的角落蜷着身体——面朝海的方向,耳朵在睡梦中微微动了一下,像在听一个从很远的地方传来的声音。
风暴还在海面上。
还没登陆。但它转向了。
(本章完)