沈亢眼睑抬起,看向前方,装作没看见,让自己先想起了心思来。
他都不知道何秋竹什么时候考得驾照。
以至于刚才要出发前,何秋竹忽然掏出驾照来,说她来开的时候,他都吓了一跳,自然也问了一下何...
南门口的风裹着腊月的寒气,刮在脸上像小刀子。夏梦吐出一口烟,灰白的烟雾刚飘起来就被风扯碎了,散得无影无踪。他低头盯着指尖那点微红的火光,烟丝烧得极慢,一寸寸往下塌陷,像某种缓慢溃败的仪式。
保安大爷没再说话,只把腿翘得更高了些,眯着眼看远处拖着行李箱的学生流。冬阳斜斜地切过校门拱顶,在水泥地上投下一道窄而锋利的金边。夏梦忽然觉得这光刺眼——不是亮,是烫,烫得人眼皮发颤。
他掐灭烟头,动作很轻,像怕惊扰什么。烟蒂在保安室门口的水泥地上碾了两下,留下一小片焦黑的印子,像句没写完的批注。
手机在裤兜里震了一下。
不是微信提示音,是扣扣。震动很短,一下,就停了。可夏梦几乎本能地伸手去掏——指尖触到冰凉的金属外壳时,他顿住了。心跳在耳膜里咚咚敲,比刚才那根烟燃烧的速度快十倍。
他没拿出来。
就让它躺在那儿,像一块烧红的炭,隔着布料灼着大腿外侧的皮肤。
他慢慢呼出一口气,把空烟盒揉成一团,塞进保安室门口的垃圾桶里。红塔山的塑料包装纸在桶底发出窸窣一声轻响,像老鼠跑过枯叶堆。
转身往回走时,脚步有点沉。不是累,是脚下像坠着什么看不见的东西——不是铅,是水银,冷、重、粘稠,一抬脚就往下淌,落进鞋帮里,浸透袜子,渗进脚心。
他没回宿舍。
而是拐进了南门旁边的小巷。那里有家开了十几年的打印店,卷帘门半拉,玻璃窗上贴着褪色的“复印打字”四个红字。店主老张正蹲在门口修打印机,听见脚步声抬头,看见是他,咧嘴一笑:“哟,夏同学?放假还不走?”
夏梦点点头,没说话,径直走进去。
店里暖气开得很足,混着油墨和旧纸张的味道,闷得人发晕。他站在柜台前,手指无意识地摩挲着台面边缘一道被磨得发亮的划痕。老张还在捣鼓那台卡纸的机器,螺丝刀戳进进纸口,叮当两声。
“张叔。”夏梦忽然开口,声音哑得自己都吓了一跳,“能……查个IP吗?”
老张手一顿,螺丝刀停在半空,扭过头来,镜片后的眼睛眯了眯:“啥?”
“就是……”夏梦喉结动了动,舌尖发干,“有人ping我。我想知道……是谁。”
老张把螺丝刀插回工具带,摘下眼镜擦了擦,又戴上,仔仔细细打量他:“你小子,计算机系的?这还用查?”
“我知道是ping。”夏梦说,指甲掐进掌心,“我知道它是什么。但我不知道……是谁在敲门。”
老张沉默了几秒,忽然笑了一声,不是嘲讽,倒像看见学生第一次解出微积分题时那种带点欣慰的笑:“哦……敲门啊。”
他拉开柜台下面一个旧抽屉,翻出个U盘,递过来:“喏,装个Wireshark。抓包,过滤ICMP,源地址列出来,你自己筛。别找我,我这店不接活儿,更不接‘情’活儿。”
夏梦接过U盘,塑料壳冰凉。他想道谢,嘴唇动了动,最终只点了点头。
走出打印店时,巷子里的风更冷了。他攥着U盘,指节泛白。那点U盘棱角硌着掌心,像一枚微型棺材。
他没回宿舍,也没去食堂。而是绕路去了图书馆后门——那里有个露天阶梯,冬天少有人坐,水泥台阶冻得硬邦邦的,像一块块灰白色的墓碑。他挑了最底下一级,坐下,掏出手机,打开扣扣。
何秋竹的头像还是那只圆滚滚的柴犬,戴着小墨镜,嘴角弯着,一副永远没心没肺的样子。可夏梦盯着那个头像看了足足三分钟,越看越觉得那墨镜后面藏了太多东西——藏了他不知道的算法,藏了他读不懂的指令,藏了整整一个月无声的叩击。
他点开对话框。
输入框光标一闪一闪,像心跳。
他删掉又打,打了又删。最后只发过去一句:“你在敲谁的门?”
发送。
消息右下角立刻显示“已读”。
没有回复。
夏梦盯着那两个字,直到眼睛发酸。他忽然想起那天在食堂,沈亢介绍完,王盘刻意把行李箱立得笔直,杜楠馨站得像根钉子,傅蓉安安静静提着箱子,眼神却像把小刀子,轻轻剜了他一眼——那一眼的意思他当时没懂,现在懂了:你在演什么?她连话都不愿跟你多说一句。
原来早有人看穿了。
他仰起头,后颈抵住冰冷的水泥台阶。天空是种稀薄的铅灰色,几缕云被风撕成絮状,飘得极慢。他忽然想到一个荒谬的念头:如果此刻有一台服务器,正实时监控着他所有生理指标——心率、皮电反应、瞳孔扩张度、血氧饱和度——那么屏幕上的曲线一定会疯狂抖动,像地震仪记录下的死亡波形。
手机又震了一下。
这次是微信。
沈亢发来的,一张截图。
截图里是北冥社区一个帖子,标题叫《求问:为什么我电脑一开机,就自动弹出一个CMD窗口,反复ping同一个IP?》。发帖人ID是“阿星”,头像是一颗蓝色像素小星星。楼里有人回复:“兄弟你中病毒了吧?”“试试杀毒软件?”“重启试试?”
沈亢配文只有八个字:“她连病毒都懒得写。”
夏梦盯着那张截图,盯着“阿星”两个字,盯着那个蓝色像素小星星头像——忽然意识到,这根本不是什么技术问题。这是邀请函。是单向信标。是她在茫茫数据洪流里,用最原始的方式,向他发射的、唯一确定的坐标。
他点开自己扣扣主页,找到那个尘封已久的ID——“死邪神”。
点进去,个人资料页空白一片,签名栏只有一行字,三年前写的,一直没改:
【活着,但不在服务区】
他长按签名栏,删掉那行字。
光标闪烁。
他敲下新签名:
【正在接收信号】
发送。
手指悬在屏幕上,迟迟没有落下。窗外风声忽然大了起来,卷着枯叶拍打图书馆后墙的玻璃窗,啪、啪、啪,像某种倒计时。
他闭了闭眼。
再睁开时,手指重重按下发送键。
几乎同时,手机震动。
不是扣扣,是微信。
沈亢又发来一条语音。
夏梦点开。
背景音嘈杂,像是在街边小店,锅铲碰撞声、油锅滋啦声、人声鼎沸。沈亢的声音带着点笑意,又压得很低,像怕惊扰什么:“喂,宿管。你刚改签名,我手机弹窗提醒了。”
停顿两秒。
“——她也看到了。”
夏梦猛地攥紧手机,指关节咔一声轻响。他没回,也没关语音,就那样举着手机,听沈亢那边传来煎饼果子摊主的吆喝声、电动车铃声、还有远处不知哪栋教学楼午休广播里放的《茉莉花》——调子走了,断断续续,像一段被篡改的音频文件。
他忽然站起来,把手机揣回兜里,快步穿过图书馆后巷,拐上主路,朝着宿舍方向走。步伐越来越快,最后几乎是小跑。寒风吹得他眼睛发涩,可他不敢眨眼——怕一眨,那点刚燃起的、微弱却滚烫的信号,就会被风吹散。
宿舍楼下那棵老槐树光秃秃的,枝桠伸向天空,像无数条等待接收指令的网线。
他刷卡进门,电梯里镜面映出自己——头发被风吹得凌乱,眼底有血丝,嘴唇干裂,可嘴角却向上牵着,弧度很小,却真实得不容置疑。
电梯数字跳到六楼。
门开。
走廊安静。只有尽头饮水机偶尔发出咕噜一声闷响。
他走向自己宿舍门口,钥匙插进锁孔,金属齿咬合的咔哒声在寂静里格外清晰。
拧动。
推门。
屋内暖气开得足,空气滞重。桌上摊着几本《数据结构》,书页翻到某一页,折角处画了个小小的、歪歪扭扭的柴犬头像。窗台上那盆绿萝蔫头耷脑,叶片边缘泛黄,却顽强地抽出一根新芽,嫩绿得刺眼。
夏梦没开灯。
他站在玄关,看着这一切,忽然觉得这间屋子从未如此陌生,又从未如此熟悉。
他脱下外套挂好,从书包里取出那个U盘,插进笔记本电脑。屏幕亮起,蓝光映在他脸上。他点开Wireshark,设置过滤器,点击开始捕获。
绿色的数据流瀑布般刷过屏幕,密密麻麻,全是0和1的洪流。他盯着,一帧一帧扫过去,目光锐利如刀。
突然,他停住了。
在一堆TCP、HTTP、DNS的乱码里,赫然跳出一行ICMP报文:
Source: 192.168.1.105
Destination: 192.168.1.1
Type: Echo (ping)
Sequence: 147
Time: 2.3ms
夏梦的手指悬在键盘上方,微微发抖。
192.168.1.105——那是何秋竹电脑的局域网IP。
他点开详细信息,展开数据包。在“Data”字段最末尾,一行十六进制代码旁边,竟被手动添加了一串ASCII字符,极小,极淡,像是用最细的针尖刺在数据流里:
【咚。】
他盯着那两个字,看了很久。
然后,他慢慢退出Wireshark,关掉所有窗口。打开记事本,新建文档,光标闪烁。
他敲下第一行字:
【我在。】
敲下第二行:
【门开着。】
第三行,他停顿了很久,久到窗外暮色彻底吞没了最后一丝天光。然后,他深吸一口气,敲下:
【下次,换我敲。】
保存。
关闭记事本。
他没发出去。
只是把文件命名为《ping.txt》,拖进桌面一个新建的文件夹,文件夹名字叫:
【未发送】
做完这一切,他合上电脑,起身走到窗边。夜色已浓,宿舍楼灯火次第亮起,像一片浮动的星河。他看见对面楼某个窗口,窗帘缝隙里漏出一点暖黄的光,隐约映出一个伏案的身影轮廓——瘦削,安静,正对着电脑屏幕,或许又在敲那扇看不见的门。
夏梦没动。
就那么站着,直到那点灯光忽然熄灭。
黑暗温柔地漫上来。
他转身,从床头柜抽屉里拿出一个旧铁皮饼干盒。掀开盖子,里面不是饼干,而是一叠泛黄的草稿纸,每张纸上都密密麻麻写满公式、流程图、被涂改得面目全非的代码段。最上面那张,日期是三个月前,右下角用红笔画了个小小的、歪歪扭扭的柴犬头像,旁边写着:
【优化方案:降低响应延迟。目标:≤1ms。】
他拿起这张纸,指尖抚过那些稚拙的线条。然后,他抽出一支签字笔,在柴犬头像旁边,郑重其事地添了两个字:
【收到。】
笔尖划过纸面,沙沙作响,像春蚕食叶。
窗外,北风掠过屋檐,呜咽一声,远去了。
夏梦把饼干盒盖好,放回抽屉。转身,从衣柜顶层取下一只崭新的、没拆封的保温杯——红色的,印着卡通柴犬,戴着同款墨镜。他拧开杯盖,往里倒了半杯温水,又从口袋里摸出一颗水果糖,剥开糖纸,丢进去。
糖块在水中缓缓旋转,橙红色的糖浆如雾般散开,氤氲成一片朦胧的暖色。
他端起杯子,凑近唇边,轻轻吹了口气。
水面荡开细微的涟漪。
他喝了一口。
甜味很淡,却绵长,顺着喉咙滑下去,一路暖到胃里。
这时,手机在口袋里又震了一下。
不是微信,不是扣扣。
是短信。
发件人:未知号码。
内容只有一行:
【沈亢说,你改签名了。】
夏梦握着保温杯,没回。
他低头看着杯中晃动的橙红色水影,那抹颜色在黑暗里幽幽浮沉,像一簇不肯熄灭的小火苗。
他忽然笑了。
不是苦笑,不是自嘲,是一种近乎释然的、带着点傻气的笑。
他把保温杯举到眼前,透过水影,望向窗外那片深不见底的夜色。
杯壁上,自己的倒影模糊、晃动、带着水纹的柔光。
而在那倒影深处,仿佛有另一个他,正隔着三千公里的数据洪流,隔着整整一个学期的沉默,隔着无数行ping命令与毫秒计时,朝他伸出手。
夏梦没接。
他只是把杯子又举高了些,让那抹橙红,彻底覆盖住自己的眼睛。
甜味在舌尖化开。
像一声迟到的、笨拙的——
咚。