第4章 第 4 章
紅燈在刷卡機面板上跳得像心電圖,滴的一聲拒絕短促得刺耳,像有人在你耳邊掐斷一口氣。崗亭燈管嗡嗡作響,光線發白,把玻璃上的水汽照得一層一層,外面海風捲著鹹腥和柴油味,從鐵欄縫裡灌進來,吹得林渡後頸一陣發冷。
二號堆場那盞忽明忽暗的信號燈剛剛熄滅,黑暗像潮水壓下來,港口遠處吊機的鋼索發出微弱的金屬摩擦聲,像有人在暗處慢慢拉弓。汽笛拖長,拖得人胸口發悶,彷彿這座城市在凌晨兩點給自己點名。
腳步聲從背後靠近,刻意放得輕,卻不夠熟練,鞋底擦過粗糙水泥地的那一瞬,還是帶起了一點砂礫的響。
林渡沒回頭,手伸進外套口袋,先摸到的是那張折得硬挺的便簽,紙角硌在指腹,像提醒他別把心軟當成防身工具。再往裡,是他下車時順手塞進去的金屬外殼的小手電,還有一把鑰匙串,齒尖冷硬。
他把手電緊握了一下,指節發白,嘴上仍不肯服軟:“來得挺準時。你們港口也搞外賣配送?按定位上門取件?”
沈既白站在他半步後,整個人像一堵冷牆,視線越過林渡肩頭鎖死來人。他沒有出聲,卻把臨時通行證和手機都握在掌心,像隨時準備用兩套方案把門撬開。風把他襯衫下擺掀起,他的聲音被壓得很低:“別激他。先聽他要什麼。”
那人終於在崗亭燈光邊緣停下來,臉藏在陰影裡,只露出一截下巴和一雙眼。眼神不算狠,反倒帶著一點夜班被叫醒的怨氣。他抬了抬手,掌心一張塑封工牌晃了一下,塑料反光,字看不清。
“別緊張。”他嗓子有點沙啞,“外包維護。剛接到工單,門禁權限異常,讓我來處理。你們……是誰叫的?”
林渡這才慢慢回頭,目光像掃碼槍一樣把人從頭到腳掃過:反光背心,褲腳沾著油漬,工具包斜挎,手指關節粗,指背有一道淡淡的疤,不深,像是被金屬邊割過。
那一瞬間,他腦子裡像被人拽了一下,畫面短促閃現:雨,冷光,一隻同樣帶疤的手按住集裝箱門,指尖染著灰黑的鐵鏽,另一隻手把什麼塞進他掌心——硬硬的,圓的。
他胃裡一沉,手心的汗卻更冷。
“工單?”沈既白先開口,語氣淡得像在問對方今天吃了什麼,“工單號。”
外包維護愣了一下,顯然沒料到有人第一句不是“師傅幫忙開門”,而是“報編號”。他不太爽地翻手機,屏幕亮起一瞬又被風晃得反光。“CRD……CRDNo我看看,CRDNo-0719-02。字段兼容升級後,門禁跟訪客系統的白名單對接出了問題。你們這臨時證,系統不認。”
林渡聽見“字段兼容升級”,眼皮跳了跳。這詞今晚已經第三次撞進他耳朵,像有人故意把同一顆釘子釘在不同位置,逼你承認這是一根釘子。
沈既白沒有立刻接話,只把手機往上抬了抬,像是給對方看他那張臨時證的二維碼。“你們是誰派的?港口信息部?還是海擎的外包?”
外包維護皺眉:“海擎?我们是港口这边外包给‘海擎运维’的分包。你问这么细干嘛?你是港口安保啊?”
林渡嗤了一聲:“他是996邪教的审计师。你别跟他讲道理,直接开门。我们赶时间。”
外包維護把工具包放下,掏出一把小螺丝刀,走向刷卡机侧面的小盖板。动作熟练得像做过无数次。他一边拧,一边嘀咕:“凌晨两点来搞门禁的人,要么是走丢了,要么是想走捷径。你们想进B区做什么?这里夜里不让随便进堆场。”
沈既白语气更冷:“你只管修。别多问。”
外包维護被怼得一梗,抬头瞪了沈既白一眼,又看到他身上的气质,像是常年跟合同打交道的那种不讲情面,最终还是把话咽回去,只低头连了根数据线,插进门禁控制盒。刷卡机红灯闪了几下,像在挣扎。
林渡趁这空档把手机掏出来,先拨周嶼。铃声响了两下,接通得飞快,像对方一直盯着屏幕等救命绳。
“林哥!”周嶼声音压得极低,背景里有打印机吐纸的沙沙声,还有空调风口的嗡鸣,“我还在公司。我把门反锁了,已经把工位摄像头对着我自己,做全程直播式不在场证明。你们不要笑,996人类学说得很清楚:在锅出现前,先把自己从锅里捞出来。”
林渡几乎要被他逗笑,但笑意卡在喉咙里。“谁给你打的虚拟号?内容截图了吗?”
“截了。”周嶼飞快说,“我还录屏了,包含来电时间。对方说两点去B区点货,不去就把我当成搞坏API的人祭天。祭天这词用得很互联网,但我现在不想当祭品。我按照你们之前说的,把门禁刷卡记录导出截图了,发许律了。还有你要的提交记录,我也找到了。”
“发我一份,原始log不要改。”林渡说,“再做一件事:把美仓那边手动入库回报导出来,带时间戳。跟我们ASN推送时间对齐。你要是怕出错,就按外卖路线思维:先找最早那一单,顺着时间线往后拉。”
周嶼沉默了一秒,像真的在脑子里画路线图,随后语速更快:“我懂,先把单号按时间排序,再看字段变更点。我已经看到一个很诡异的点:字段改名提交的账号不是我们组的,是一个临时账号,名字叫‘ops_tmp17’。我看到17我人都麻了。你们是不是也在看17?你们是不是在玩一场只对17过敏的密室逃脱?”
林渡眼皮一跳,心里那根弦被“17”轻轻拨了一下。港口风更大,吹得他眼眶发酸。他强迫自己把声音压稳:“别麻。把那账号相关的提交记录、IP、提交时间点,全打包。发许砚,抄送我。然后你继续锁门。谁敲门都别开,除非你能透过猫眼看见我和沈既白的脸。”
周嶼立刻吐槽:“那我宁愿当一辈子单身社恐,也不要透过猫眼看见你们俩同时出现的脸。太像债主上门。”
林渡冷冷道:“你现在不就是在躲债。”
电话挂断,林渡抬眼,看见沈既白正用另一只手机发消息,手指快速而精准,像在合同里改一个标点。林渡不用问也知道他在发给谁。
“许砚?”林渡开口。
沈既白“嗯”了一声,没抬头:“让他立刻申请证据保全公证。我们在港口所有录音、行车记录器、定位同步云端。他有渠道叫人去你们公司楼下做见证,免得周嶼被拉出来当‘在场证人’。”
林渡嗤笑:“渣男老板也会关心员工死活?”
沈既白终于抬眼,目光很稳:“我关心的是公司资产。周嶼是稀缺资产,换一个要培训三个月,还会吐槽更难听。”
林渡嘴角抽了一下,明知道他在拐弯,却还是心口松了一点。他把手心的便簽又捏紧了一次,纸的硬挺把他拉回现实。
刷卡机这时突然“滴”了一声,红灯闪烁变慢,却没变绿。
外包维護骂了句脏话,手指在手机上滑动:“不对,权限不是系统不认,是有人远端锁了B区临时访客通行。你们这张临时证,刚才还在白名单里,现在被拉黑了。”
沈既白目光一沉:“谁能远端锁。”
“港口信息部有权限,安保中心也有。”外包维護抬头,眼神开始警惕,“你们到底是谁?你们是不是惹了谁?我可不想凌晨两点帮你们开门,明天就被叫去背锅。”
林渡忍不住插话,语气尖:“你现在才想起背锅?晚了。你工单都接了,锅已经在你头顶预热了。要么你帮我们开门,至少你能选锅里有什么料;要么你现在走,我们换条路进,出事的时候你一样会被叫回来问‘为什么当时没有处理好异常’。”
外包维護被他说得脸色变了变,像是突然意识到自己只是链条上一颗螺丝。风把他反光背心吹得贴在身上,他咬了咬牙:“你们想怎么进?正门现在锁权了,我打不开,除非……去小机房,拿本地控制台的钥匙和口令。那边是离线权限,能手动放行一次。”
沈既白立刻问:“小机房在哪。”
外包维護指了指远处一片低矮建筑的轮廓,灯不多,只有一盏应急灯忽闪:“沿着围栏走,过二号堆场旁边,有个‘设备间’。不过那边监控多,你们进去容易被拍。你们真要去?我劝你们别折腾,凌晨两点港口不是人待的地方。”
林渡把手电从口袋里掏出来,按亮一瞬又关掉,像确认自己还握着一点主动权。“港口不是人待的地方,但真相也不在写字楼里。走。”
沈既白伸手扣住他手腕,力道不重,却牢。“你走我后面。”
林渡立刻反击:“我走你后面?你是怕我先跑,还是怕我先死?”
沈既白没松手,眼神冷得像海面:“都怕。”
两个人对视一秒,空气里有种东西被压得更低,像钢索被拉紧。林渡最终还是甩开他的手,嘴硬得像在咬人:“行。那就按你说的,我走你前面,你替我挡枪,公平。”
外包维護背起工具包,嘴里嘟囔:“你们俩到底什么关系……算了,别告诉我,我只是运维,承受不了情感线。”
三人沿着围栏往里走。风更大,吹得铁丝网发出细密的震颤声,像某种持续的警告。脚下水泥地湿滑,偶尔有积水反光,把崗亭燈照成碎片。远处吊机的灯一闪一闪,像不耐烦地眨眼。
二号堆场就在前方。那盏信号灯已经彻底熄灭,黑得像被挖走一块。堆场边缘堆着几排集装箱,箱体上的编号在昏暗光线里像一串串沉默的密码。林渡的视线不受控制地在那些号码上扫过,胸口越来越紧。
外包维護边走边低声说:“你们要找什么?货?还是人?”
沈既白不答,只问:“你接到工单之前,有没有接到别的电话。”
外包维護迟疑:“有个虚拟号,问我在不在港口,说B区门禁会出问题,让我准备一下。我还以为是信息部的自动提醒……你们别这么看我,我真不知道你们要干嘛。我只是拿钱办事。”
林渡停了一下,回头盯着他:“虚拟号让你来修门禁,让周嶼来点货,让我们来……推门。你们都被安排在同一条路线里。外卖骑手看了都要说这单规划得太细,像是专门骗我跑空。”
沈既白冷声:“所以信号灯熄灭,是他们发现我们没按路线走。”
话音刚落,一阵更长的汽笛从港口深处拉起,像有人在黑暗里重新计时。林渡太阳穴突突跳,眼前闪过那扇集装箱门,编号最后两位清晰得刺眼:17。
他强迫自己把注意力从过去拽回来,抬手点了点前方:“设备间在哪边?”
外包维護指向堆场旁一条窄道,窄道尽头有扇铁门,门上贴着褪色的警示标。“就是那。门禁卡不通,得用实体钥匙。”
他们靠近时,铁门旁的摄像头红点微亮,像一只盯人的眼。沈既白忽然伸手,从口袋里掏出一个小小的黑色方块,贴在自己衬衫内侧口袋边缘,动作极自然,像整理衣领。
林渡看到了:“那是什么?”
“录音笔。”沈既白语气平淡,“自动云端同步。掉了也能找回,毁了也有备份。”
林渡哼了一声:“你这温柔藏得挺深啊,藏到设备里。”
沈既白看他一眼,眼底有一瞬像被风吹开的疲惫:“你要我怎么藏?写在脸上让人撕?”
林渡心口一刺,正要怼回去,外包维護已经掏出钥匙,插进锁孔。钥匙转动的咔哒声在风里特别清晰,像某种开闸的信号。
铁门打开,一股机房特有的热气和灰尘味扑出来,混着电线塑胶的味道。里面不大,墙上挂着一排配电箱,角落里是一台小服务器机柜,指示灯密密麻麻地闪,像一群不睡觉的眼睛。桌上散着几张工单纸,压在一个文件夹下,文件夹封面印着“港区门禁及监控系统运维”。
林渡视线扫到那几张纸,手指条件反射地伸过去,像抓住一条能把人从水里拉出来的绳。他翻开最上面那张,看到“字段兼容升级”几个字,下面有一行更小的字:临时账号开通申请,ops_tmp17,授权范围:B区门禁白名单、监控回放查询。
他喉咙发紧:“你说你只是运维?那你告诉我,谁申请的临时账号。”
外包维護挠了挠头,眼神躲了一下:“我们只按工单做。申请人……一般是甲方信息部或者安保。这里写的是……签名看不清,像是‘罗’什么。”
沈既白伸手把那张工单抽过去,指尖停在签名处。他的脸色变得极冷:“罗竞。”
林渡听到这个名字,脑子里像被重锤砸了一下,又是一段碎片冒出来:办公室里有人笑着递来合同,说“林经理,这页换个版本,别紧张”,那人手背的疤在灯下泛白,笑意很轻,却不暖。
他稳住呼吸:“你认识?”
沈既白把工单拍在桌上,像把一份判决摁下去:“公司以前的信息主管。三年前离职。也是当年你出事那晚,最后一个接触港口系统权限的人。”
外包维護听得眼睛都瞪大了:“喂,你们别在我这儿讲这种东西,我会害怕。我只是打工的。”
林渡冷冷道:“你现在害怕?那你刚才还说港口不是人待的地方。你以为我们是来观光的?”
沈既白没理他们的嘴仗,直接走到本地控制台前,打开一个离线界面。屏幕亮起,显示B区门禁状态:远端锁定,离线放行可用一次。下面还有监控系统的快捷入口,提示需要本地口令。
“口令呢?”沈既白问外包維護。
外包維護指了指墙上一个贴纸,贴纸边缘卷起,像贴了很久。上面写着一串字符和一个四位数。沈既白照着输入,界面跳转,出现监控回放列表。
林渡心脏猛地一跳,像终于摸到那条证据的尾巴。他靠近屏幕,看到时间轴上密密麻麻的片段。二号堆场、B区门禁口、设备间外、堆场主通道……每个摄像头都有回放。可其中一个列表项的状态显示异常:二号堆场主灯塔摄像头,00:55-02:05,录像缺失。
“缺失。”林渡喃喃,指尖发冷。
外包維護瞄了一眼,立刻解释:“有时候网络抖动会丢包,正常……”
沈既白打断他:“丢一小时十分钟叫正常?你当我们是来听你写SOP的?”
林渡忍不住插刀:“他是外包,你让他讲真话跟让外卖小哥讲人生规划一样为难。你问他,他只能说‘亲,这边建议您理解一下呢’。”
外包維護脸都绿了:“你们到底想看哪段?我给你们放行一次,然后你们赶紧走,我真的不想掺和。”
沈既白目光扫过回放列表,停在门禁岗亭外的摄像头。那段回放还在。时间显示01:58,画面里正是他们刚才站的位置,红灯闪烁,二号堆场灯还没灭。下一秒,画面突然卡顿,像被人掐了一下,随即恢复,但角落里跳出一行提示:回放模式已被切换,操作账号:ops_tmp17。
林渡看着那行字,胸口像被人按住,呼吸变浅。这个账号像一只看不见的手,从线上伸出来,正摸着他们的后颈。
“他们在看我们。”林渡说。
沈既白抬头,眼神更沉:“不只是看。是引导。你收到虚拟号,周嶼收到虚拟号,这个运维也收到。对方把每个人推到各自该在的位置,然后在监控里把该缺的缺掉,把该出现的塞进去。”
林渡脑子里那张外卖路线图又自动展开:取餐点、送达点、绕行路、监控盲区。只是这次送的不是咖啡,是人。
“那我们也按路线反制。”林渡压住喉咙里的发紧,“他们想让我们走正门进不去,改走设备间放行。那我们就用这次放行,但不走他们以为我们会走的通道。”
沈既白看他:“你想走哪。”
林渡指了指屏幕上另一个摄像头位点:“堆场侧门。物流车道。凌晨两点有车流,混进去比单人通行更难被锁。像外卖骑手蹭电梯,跟着人流进小区。你不让我走单?那我就跟车走。”
外包維護听得发懵:“你们要混车道?那边要过地磅,没单不让进。”
林渡看他一眼,语气像刀:“谁说没单。你不是有工单吗?工单也是单。”
沈既白却忽然把林渡往后一拽,低声:“先别急。还有一件事。”
他把监控界面切到“设备间外”摄像头,时间往前拉到01:12。画面里,一个戴鸭舌帽的人走到铁门前,掏出钥匙开门,动作熟练。帽檐压得很低,看不清脸,但那人的手在灯下抬起过一次,手背上有一道疤,位置和外包維護的一模一样。
外包維護下意识把手往身后藏:“那不是我!我刚才才到!我有定位,我可以……”
林渡盯着屏幕,脑子里那段雨夜碎片突然尖锐起来,像玻璃划开皮肤。他听见自己心脏撞击肋骨的声音,耳边却又像有人轻声说“别看,签这里就行”。他喉结滚动,吐出一句更冷的:“你当然可以不是你。外包队伍里,带疤的手不止一双。”
沈既白目光没离开屏幕:“你们分包公司,有几个人手背有伤?”
外包維護慌得语无伦次:“我不知道!干活的人手上哪能没伤?你们别这样,我真是来修门的。那个……那我现在就走,我不干了行不行?”
沈既白没有阻拦,只把手机抬起,镜头对准屏幕,把那段回放和账号提示录下来。他动作稳得可怕,像在合同里圈出对方的漏洞。“你走可以。但你今天接到虚拟号、工单号、你来这里的时间轨迹,都要写清楚,发给我律师。否则明天你就是他们最喜欢的替罪羊。”
外包維護愣住,像第一次意识到“证据链”三个字不是吓唬人的。他张了张嘴,最终低声:“行……我配合。我不想背锅。”
林渡看着那段回放,忽然觉得胃里翻涌。那只带疤的手开门的动作太熟悉,熟悉得像某个人曾经在他身边开过无数次门,把他带进某个房间,说“这条路快”。快到最后把人送走。
他狠狠闭了闭眼,再睁开时,眼底发红:“放行一次,够我们进B区深处吗?”
外包維護点头:“离线放行只对门禁有效,进去后你们走到哪是你们的事。但监控……他们能远端切回放,能删。我建议你们别只靠监控,现场能拍就拍,能拿就拿。”
沈既白像早就准备好,掏出另一支小型摄像机,扣在林渡外套领口内侧。“开着。别关。”
林渡低头看那枚小设备,嗤笑:“你现在给我装设备,跟给猫戴项圈一样。”
沈既白声音低:“你不是猫。你是我……合同里最麻烦的标的物。”
林渡心口一震,想骂“你才麻烦”,却骂不出口。他把手抬起,按了一下设备,指示灯微亮。他忽然想起那句“欠你一场求婚”,像潮水从缝隙里涌进来,湿冷得让人站不稳。
“别发呆。”沈既白把离线放行按键点下去,屏幕提示放行成功,“走。”
他们从设备间出来,风更猛,像要把人推回去。远处二号堆场黑得更深,吊机钢索的嗡鸣像一根细线拴着人的神经。三人绕过围栏,朝物流车道方向快走。一路上林渡不断扫集装箱编号,眼睛像被数字牵着走,直到他在一排箱体前猛地停住。
白色喷漆的编号在昏暗灯光下仍然清晰:末尾两位,17。
他呼吸一滞,手不受控制地抬起,指尖几乎要碰到那层冰冷的铁皮。铁皮上有一道旧划痕,像谁用力刮过。那划痕的形状和他脑子里某个画面重叠:雨夜里,他的手被人按在门上,指尖滑过同样的痕。
“林渡。”沈既白在他身后叫他,声音比风更紧,“别碰。先拍。”
林渡这才像被拽回一点理智,掏出手机,对着箱号连拍数张,拍到喷漆边缘的掉漆、拍到箱门铰链的锈迹、拍到门缝里夹着的一小片透明胶带。胶带上似乎有字,但被灰尘糊住。
外包維護压低声音:“这箱要是海关查验过,会有铅封。你们看,铅封位置空的,像是被换过。”
“换过。”林渡重复,声音发哑。
他忽然想起纸边划破指腹的那一下,便簽上的血点,合同换页,海关缺页。所有“缺”和“换”像一条线把他勒住,勒得他想吐。
就在这时,车道方向传来重型卡车的引擎声,低沉地逼近。灯光从远处扫来,像一道移动的探照。外包維護脸色一变:“有车来了,你们别站这,容易被照到。地磅那边有人值班,看到你们会问。”
林渡迅速看向沈既白:“就现在。跟车。”
沈既白点头,抬手把林渡往阴影里带,自己却站位更外,像故意把风险往自己身上揽。他侧头低声:“我先出去,跟司机说运维工单。你别开口,跟着我走。”
林渡咬牙:“你这叫指挥?你这叫逞强。”
沈既白冷笑:“你也可以去。你嘴更欠,司机可能直接把你装箱。”
卡车驶近,车头灯把他们影子拉得很长。司机摇下车窗,露出一张疲惫的脸:“干嘛的?这边不让人走。”
外包維護立刻举起工牌:“运维,门禁故障,去堆场看设备。”
司机显然见惯了这种凌晨折腾,骂了句:“你们港口系统一天一个毛病。上车别磨蹭,我过完地磅要赶下一趟。”
沈既白先一步踏上副驾驶踏板,半个身子探进车窗,递出手机里那张工单照片,语气冷静到像在谈价格:“我们跟车进去,五分钟下。耽误你一分钟,我按每分钟给你补油费。”
司机愣了一下,估计是第一次听见有人凌晨两点还拿“油费补偿”当社交货币,嗤笑一声:“行,别搞事。你们这行的人,谈钱比谈命利索。”
林渡趁机从卡车后侧踏板爬上去,身体贴着车厢外沿的阴影,风把他头发吹乱,吹得他眼眶更酸。他抓紧扶手的瞬间,指腹擦过金属边,疼了一下,那疼像某个记忆的开关,短促地亮起:
雨夜,卡车,车灯刺眼。有人在他耳边说“别出声”,另一只手按住他的肩,把他推上同样的踏板。那人身上有淡淡的烟味和纸张油墨味,像刚签完一份合同。
林渡浑身一僵,差点没抓稳。
“稳住。”沈既白的声音从前方传来,像隔着风仍然清晰。他没有回头,却像知道林渡在抖,“看着路。别看过去。”
林渡咬住后槽牙,硬把那段画面压下去。他不允许自己在这里崩。时效像一根绳,拽着他往前。
卡车缓慢通过地磅,铁栅栏门自动抬起,发出沉重的机械声。林渡透过车厢缝隙看见门禁灯短暂闪绿,那一瞬他几乎想笑:原来所谓“偏要推开”,不是硬闯,是借力,是从缝隙里钻进去。
进了B区,堆场更深处灯更稀,集装箱像黑色山脉压在两侧。卡车拐弯时,林渡看见二号堆场的标识牌一闪而过,黑暗里有人影一晃,像站在集装箱顶端,又像只是他眼花。
手机在口袋里震动一下,是许砚发来的消息,只有两行字:我在远程公证,录音录像别停。你们一旦拿到原档或铅封编号,立刻拍,别带走原件先。还有,罗竞三年前离职时签过一份竞业补偿协议,补偿金来源不明,我刚找到转账链的尾巴,可能连到港口外包。
林渡盯着那句“补偿金来源不明”,心里一沉。沈既白果然早就把很多洞补着,只是不说。那种不说的温柔,比说出来更像一把钝刀,割得人疼。
卡车在一处岔口减速,司机探头骂:“你们要下就快点,这边再往里是临时查验区,别给我惹麻烦。”
沈既白朝林渡打了个手势。林渡跳下踏板,落地时膝盖一软,却立刻稳住。风里传来一阵细小的金属碰撞声,像有人在不远处碰到什么。
沈既白也下车,关上车门前对司机说:“谢了。油费我转你。”
司机摆摆手:“别转了,别让我再见你们就行。你们这种人凌晨两点出现在港口,肯定不是来修门禁的。”
卡车开走,引擎声远去,周围忽然更静。静得只剩风、钢索、远处吊机的低鸣,还有崗亭灯管那种想象中的嗡嗡声在脑子里回响。
外包維護指向前方一排箱体:“再往前就是二号堆场边缘。你们要找的17箱,可能就在那一片。但你们要快,安保巡逻车每十五分钟一圈。”
林渡点头,握紧手电,低声:“走。”
他们贴着阴影快速移动。林渡一边走,一边用手机拍下路过的摄像头位置、箱体编号、地面标线,像在给未来的证据链做导航。他的嘴仍硬:“沈既白,你别走那么近。我不需要你当人体盾牌。”
沈既白冷冷回:“你不需要,我需要。你现在是我唯一能用的……证人。”
林渡想骂,却被前方的一点反光吸住视线。那是一枚掉在地上的工牌,塑封边缘裂了一道口,卡面上印着“海擎运维”,名字被磨花,只剩一个清晰的字母编号,末尾也是17。
他蹲下去,指尖刚碰到工牌,背后忽然传来一声极轻的咔哒,像安全栓被推开的声音。
沈既白的手几乎同一秒扣上他的后颈,把他猛地往旁边一拽。林渡的肩撞到集装箱角,疼得眼前发白。下一秒,一束强光从侧面扫过,像探照灯一样把他们刚才蹲的位置照得雪亮。
有人在黑暗里开口,声音带笑,却冷:“别捡。那是给你们留的。”
林渡抬头,强光刺得他睁不开眼,只能看到光后面一团模糊的人影。那人抬手挡了挡风,动作间,手背的疤在光边缘一闪而过,像一把钩子,钩住了林渡脑子里那段雨夜。
那人继续说:“林经理……还是该叫你林先生?失忆好玩吗?欠的那场求婚,你想起来了吗?”
林渡的心脏像被人狠狠捏住,呼吸一瞬间断掉。他听见自己喉咙里发出一点几乎不像人的声音:“你是谁。”
沈既白把林渡护在身后,声音冷到极致:“把光关掉。你在违法取证。”
对方笑了一声,光却没有关,反而更稳地照着他们,像故意把他们钉在这一格画面里。“违法?沈总最懂合同,怎么不懂现实。你们今天能进来,就说明有人允许你们进来。至于允许的代价……等你们看到17箱里的东西,自然明白。”
风猛地一阵,吹得强光晃了一下,林渡趁那一瞬看清对方脚边放着一个黑色工具箱,箱盖上贴着一张褪色的封条,封条上有海关的字样,却被人为划开又重新粘过。
沈既白的手在身侧微动,像要去摸什么。林渡却先一步按住他,声音发哑,却硬:“别冲动。先拿证据。”
那人像听见笑话:“证据?你们想拿哪种证据。监控原档?合同原档?还是你当年被送走那晚的录音?”
“录音”两个字像针扎进林渡耳膜。他眼前一黑,雨夜的碎片几乎要拼起来:集装箱,车灯,戒指在掌心发冷,有人说“等你回来再给你戴”。然后是更重的声音,像门被关上,世界被隔绝。
他指尖发抖,却死死抓住那张便簽在口袋里,像抓住最后一点现在的自己。
沈既白的声音低而稳,像用风控压住情绪:“你想要什么。”
对方没有立刻回答,只把强光微微偏开,照向前方那排箱体。那串熟悉的喷漆编号在光下显得刺眼,末尾两位像一记嘲讽:17。
他慢慢说:“我想要你们进去。把门打开。然后你们会明白,谁才是真正欠债的人。”
话音落下的瞬间,远处传来巡逻车的引擎声,由远及近,像倒计时重新开始。外包維護在旁边吓得发抖,低声喊:“完了,安保来了……你们要么赶紧走,要么就——”
林渡站起身,抹了一把脸上的冷汗和海风带来的湿意,声音像刀刃:“走?我都混车进来了,你现在让我走?不可能。”
他一步步朝17号箱走去,脚踩在地面的每一下都像踩在过去的碎玻璃上。强光追着他,像猎人的目光。沈既白紧跟在他半步后,手指扣紧,像随时准备把他拽回来。
林渡停在箱门前,伸手摸上那道旧划痕。铁皮冰冷,触感却把某个画面彻底推开了一条缝。
他听见自己在风里说,像对沈既白,也像对过去的自己:“欠的东西,今晚一起清。”
巡逻车的灯光在远处拐角闪了一下,越来越近。强光后的人影低笑:“开门吧,林渡。时间到了。”
林渡的手扣上箱门的把手,刚要用力,耳边忽然响起一声很轻的“滴”。
不是门禁的拒绝音。
更像是某个电子铅封被重新激活的提示。
他动作一僵,抬眼看向沈既白。沈既白的瞳孔微缩,像也听见了。
下一秒,17号箱门缝里渗出一线极细的红光,像从黑暗里睁开的一只眼。
二號堆場那盞忽明忽暗的信號燈剛剛熄滅,黑暗像潮水壓下來,港口遠處吊機的鋼索發出微弱的金屬摩擦聲,像有人在暗處慢慢拉弓。汽笛拖長,拖得人胸口發悶,彷彿這座城市在凌晨兩點給自己點名。
腳步聲從背後靠近,刻意放得輕,卻不夠熟練,鞋底擦過粗糙水泥地的那一瞬,還是帶起了一點砂礫的響。
林渡沒回頭,手伸進外套口袋,先摸到的是那張折得硬挺的便簽,紙角硌在指腹,像提醒他別把心軟當成防身工具。再往裡,是他下車時順手塞進去的金屬外殼的小手電,還有一把鑰匙串,齒尖冷硬。
他把手電緊握了一下,指節發白,嘴上仍不肯服軟:“來得挺準時。你們港口也搞外賣配送?按定位上門取件?”
沈既白站在他半步後,整個人像一堵冷牆,視線越過林渡肩頭鎖死來人。他沒有出聲,卻把臨時通行證和手機都握在掌心,像隨時準備用兩套方案把門撬開。風把他襯衫下擺掀起,他的聲音被壓得很低:“別激他。先聽他要什麼。”
那人終於在崗亭燈光邊緣停下來,臉藏在陰影裡,只露出一截下巴和一雙眼。眼神不算狠,反倒帶著一點夜班被叫醒的怨氣。他抬了抬手,掌心一張塑封工牌晃了一下,塑料反光,字看不清。
“別緊張。”他嗓子有點沙啞,“外包維護。剛接到工單,門禁權限異常,讓我來處理。你們……是誰叫的?”
林渡這才慢慢回頭,目光像掃碼槍一樣把人從頭到腳掃過:反光背心,褲腳沾著油漬,工具包斜挎,手指關節粗,指背有一道淡淡的疤,不深,像是被金屬邊割過。
那一瞬間,他腦子裡像被人拽了一下,畫面短促閃現:雨,冷光,一隻同樣帶疤的手按住集裝箱門,指尖染著灰黑的鐵鏽,另一隻手把什麼塞進他掌心——硬硬的,圓的。
他胃裡一沉,手心的汗卻更冷。
“工單?”沈既白先開口,語氣淡得像在問對方今天吃了什麼,“工單號。”
外包維護愣了一下,顯然沒料到有人第一句不是“師傅幫忙開門”,而是“報編號”。他不太爽地翻手機,屏幕亮起一瞬又被風晃得反光。“CRD……CRDNo我看看,CRDNo-0719-02。字段兼容升級後,門禁跟訪客系統的白名單對接出了問題。你們這臨時證,系統不認。”
林渡聽見“字段兼容升級”,眼皮跳了跳。這詞今晚已經第三次撞進他耳朵,像有人故意把同一顆釘子釘在不同位置,逼你承認這是一根釘子。
沈既白沒有立刻接話,只把手機往上抬了抬,像是給對方看他那張臨時證的二維碼。“你們是誰派的?港口信息部?還是海擎的外包?”
外包維護皺眉:“海擎?我们是港口这边外包给‘海擎运维’的分包。你问这么细干嘛?你是港口安保啊?”
林渡嗤了一聲:“他是996邪教的审计师。你别跟他讲道理,直接开门。我们赶时间。”
外包維護把工具包放下,掏出一把小螺丝刀,走向刷卡机侧面的小盖板。动作熟练得像做过无数次。他一边拧,一边嘀咕:“凌晨两点来搞门禁的人,要么是走丢了,要么是想走捷径。你们想进B区做什么?这里夜里不让随便进堆场。”
沈既白语气更冷:“你只管修。别多问。”
外包维護被怼得一梗,抬头瞪了沈既白一眼,又看到他身上的气质,像是常年跟合同打交道的那种不讲情面,最终还是把话咽回去,只低头连了根数据线,插进门禁控制盒。刷卡机红灯闪了几下,像在挣扎。
林渡趁这空档把手机掏出来,先拨周嶼。铃声响了两下,接通得飞快,像对方一直盯着屏幕等救命绳。
“林哥!”周嶼声音压得极低,背景里有打印机吐纸的沙沙声,还有空调风口的嗡鸣,“我还在公司。我把门反锁了,已经把工位摄像头对着我自己,做全程直播式不在场证明。你们不要笑,996人类学说得很清楚:在锅出现前,先把自己从锅里捞出来。”
林渡几乎要被他逗笑,但笑意卡在喉咙里。“谁给你打的虚拟号?内容截图了吗?”
“截了。”周嶼飞快说,“我还录屏了,包含来电时间。对方说两点去B区点货,不去就把我当成搞坏API的人祭天。祭天这词用得很互联网,但我现在不想当祭品。我按照你们之前说的,把门禁刷卡记录导出截图了,发许律了。还有你要的提交记录,我也找到了。”
“发我一份,原始log不要改。”林渡说,“再做一件事:把美仓那边手动入库回报导出来,带时间戳。跟我们ASN推送时间对齐。你要是怕出错,就按外卖路线思维:先找最早那一单,顺着时间线往后拉。”
周嶼沉默了一秒,像真的在脑子里画路线图,随后语速更快:“我懂,先把单号按时间排序,再看字段变更点。我已经看到一个很诡异的点:字段改名提交的账号不是我们组的,是一个临时账号,名字叫‘ops_tmp17’。我看到17我人都麻了。你们是不是也在看17?你们是不是在玩一场只对17过敏的密室逃脱?”
林渡眼皮一跳,心里那根弦被“17”轻轻拨了一下。港口风更大,吹得他眼眶发酸。他强迫自己把声音压稳:“别麻。把那账号相关的提交记录、IP、提交时间点,全打包。发许砚,抄送我。然后你继续锁门。谁敲门都别开,除非你能透过猫眼看见我和沈既白的脸。”
周嶼立刻吐槽:“那我宁愿当一辈子单身社恐,也不要透过猫眼看见你们俩同时出现的脸。太像债主上门。”
林渡冷冷道:“你现在不就是在躲债。”
电话挂断,林渡抬眼,看见沈既白正用另一只手机发消息,手指快速而精准,像在合同里改一个标点。林渡不用问也知道他在发给谁。
“许砚?”林渡开口。
沈既白“嗯”了一声,没抬头:“让他立刻申请证据保全公证。我们在港口所有录音、行车记录器、定位同步云端。他有渠道叫人去你们公司楼下做见证,免得周嶼被拉出来当‘在场证人’。”
林渡嗤笑:“渣男老板也会关心员工死活?”
沈既白终于抬眼,目光很稳:“我关心的是公司资产。周嶼是稀缺资产,换一个要培训三个月,还会吐槽更难听。”
林渡嘴角抽了一下,明知道他在拐弯,却还是心口松了一点。他把手心的便簽又捏紧了一次,纸的硬挺把他拉回现实。
刷卡机这时突然“滴”了一声,红灯闪烁变慢,却没变绿。
外包维護骂了句脏话,手指在手机上滑动:“不对,权限不是系统不认,是有人远端锁了B区临时访客通行。你们这张临时证,刚才还在白名单里,现在被拉黑了。”
沈既白目光一沉:“谁能远端锁。”
“港口信息部有权限,安保中心也有。”外包维護抬头,眼神开始警惕,“你们到底是谁?你们是不是惹了谁?我可不想凌晨两点帮你们开门,明天就被叫去背锅。”
林渡忍不住插话,语气尖:“你现在才想起背锅?晚了。你工单都接了,锅已经在你头顶预热了。要么你帮我们开门,至少你能选锅里有什么料;要么你现在走,我们换条路进,出事的时候你一样会被叫回来问‘为什么当时没有处理好异常’。”
外包维護被他说得脸色变了变,像是突然意识到自己只是链条上一颗螺丝。风把他反光背心吹得贴在身上,他咬了咬牙:“你们想怎么进?正门现在锁权了,我打不开,除非……去小机房,拿本地控制台的钥匙和口令。那边是离线权限,能手动放行一次。”
沈既白立刻问:“小机房在哪。”
外包维護指了指远处一片低矮建筑的轮廓,灯不多,只有一盏应急灯忽闪:“沿着围栏走,过二号堆场旁边,有个‘设备间’。不过那边监控多,你们进去容易被拍。你们真要去?我劝你们别折腾,凌晨两点港口不是人待的地方。”
林渡把手电从口袋里掏出来,按亮一瞬又关掉,像确认自己还握着一点主动权。“港口不是人待的地方,但真相也不在写字楼里。走。”
沈既白伸手扣住他手腕,力道不重,却牢。“你走我后面。”
林渡立刻反击:“我走你后面?你是怕我先跑,还是怕我先死?”
沈既白没松手,眼神冷得像海面:“都怕。”
两个人对视一秒,空气里有种东西被压得更低,像钢索被拉紧。林渡最终还是甩开他的手,嘴硬得像在咬人:“行。那就按你说的,我走你前面,你替我挡枪,公平。”
外包维護背起工具包,嘴里嘟囔:“你们俩到底什么关系……算了,别告诉我,我只是运维,承受不了情感线。”
三人沿着围栏往里走。风更大,吹得铁丝网发出细密的震颤声,像某种持续的警告。脚下水泥地湿滑,偶尔有积水反光,把崗亭燈照成碎片。远处吊机的灯一闪一闪,像不耐烦地眨眼。
二号堆场就在前方。那盏信号灯已经彻底熄灭,黑得像被挖走一块。堆场边缘堆着几排集装箱,箱体上的编号在昏暗光线里像一串串沉默的密码。林渡的视线不受控制地在那些号码上扫过,胸口越来越紧。
外包维護边走边低声说:“你们要找什么?货?还是人?”
沈既白不答,只问:“你接到工单之前,有没有接到别的电话。”
外包维護迟疑:“有个虚拟号,问我在不在港口,说B区门禁会出问题,让我准备一下。我还以为是信息部的自动提醒……你们别这么看我,我真不知道你们要干嘛。我只是拿钱办事。”
林渡停了一下,回头盯着他:“虚拟号让你来修门禁,让周嶼来点货,让我们来……推门。你们都被安排在同一条路线里。外卖骑手看了都要说这单规划得太细,像是专门骗我跑空。”
沈既白冷声:“所以信号灯熄灭,是他们发现我们没按路线走。”
话音刚落,一阵更长的汽笛从港口深处拉起,像有人在黑暗里重新计时。林渡太阳穴突突跳,眼前闪过那扇集装箱门,编号最后两位清晰得刺眼:17。
他强迫自己把注意力从过去拽回来,抬手点了点前方:“设备间在哪边?”
外包维護指向堆场旁一条窄道,窄道尽头有扇铁门,门上贴着褪色的警示标。“就是那。门禁卡不通,得用实体钥匙。”
他们靠近时,铁门旁的摄像头红点微亮,像一只盯人的眼。沈既白忽然伸手,从口袋里掏出一个小小的黑色方块,贴在自己衬衫内侧口袋边缘,动作极自然,像整理衣领。
林渡看到了:“那是什么?”
“录音笔。”沈既白语气平淡,“自动云端同步。掉了也能找回,毁了也有备份。”
林渡哼了一声:“你这温柔藏得挺深啊,藏到设备里。”
沈既白看他一眼,眼底有一瞬像被风吹开的疲惫:“你要我怎么藏?写在脸上让人撕?”
林渡心口一刺,正要怼回去,外包维護已经掏出钥匙,插进锁孔。钥匙转动的咔哒声在风里特别清晰,像某种开闸的信号。
铁门打开,一股机房特有的热气和灰尘味扑出来,混着电线塑胶的味道。里面不大,墙上挂着一排配电箱,角落里是一台小服务器机柜,指示灯密密麻麻地闪,像一群不睡觉的眼睛。桌上散着几张工单纸,压在一个文件夹下,文件夹封面印着“港区门禁及监控系统运维”。
林渡视线扫到那几张纸,手指条件反射地伸过去,像抓住一条能把人从水里拉出来的绳。他翻开最上面那张,看到“字段兼容升级”几个字,下面有一行更小的字:临时账号开通申请,ops_tmp17,授权范围:B区门禁白名单、监控回放查询。
他喉咙发紧:“你说你只是运维?那你告诉我,谁申请的临时账号。”
外包维護挠了挠头,眼神躲了一下:“我们只按工单做。申请人……一般是甲方信息部或者安保。这里写的是……签名看不清,像是‘罗’什么。”
沈既白伸手把那张工单抽过去,指尖停在签名处。他的脸色变得极冷:“罗竞。”
林渡听到这个名字,脑子里像被重锤砸了一下,又是一段碎片冒出来:办公室里有人笑着递来合同,说“林经理,这页换个版本,别紧张”,那人手背的疤在灯下泛白,笑意很轻,却不暖。
他稳住呼吸:“你认识?”
沈既白把工单拍在桌上,像把一份判决摁下去:“公司以前的信息主管。三年前离职。也是当年你出事那晚,最后一个接触港口系统权限的人。”
外包维護听得眼睛都瞪大了:“喂,你们别在我这儿讲这种东西,我会害怕。我只是打工的。”
林渡冷冷道:“你现在害怕?那你刚才还说港口不是人待的地方。你以为我们是来观光的?”
沈既白没理他们的嘴仗,直接走到本地控制台前,打开一个离线界面。屏幕亮起,显示B区门禁状态:远端锁定,离线放行可用一次。下面还有监控系统的快捷入口,提示需要本地口令。
“口令呢?”沈既白问外包維護。
外包維護指了指墙上一个贴纸,贴纸边缘卷起,像贴了很久。上面写着一串字符和一个四位数。沈既白照着输入,界面跳转,出现监控回放列表。
林渡心脏猛地一跳,像终于摸到那条证据的尾巴。他靠近屏幕,看到时间轴上密密麻麻的片段。二号堆场、B区门禁口、设备间外、堆场主通道……每个摄像头都有回放。可其中一个列表项的状态显示异常:二号堆场主灯塔摄像头,00:55-02:05,录像缺失。
“缺失。”林渡喃喃,指尖发冷。
外包維護瞄了一眼,立刻解释:“有时候网络抖动会丢包,正常……”
沈既白打断他:“丢一小时十分钟叫正常?你当我们是来听你写SOP的?”
林渡忍不住插刀:“他是外包,你让他讲真话跟让外卖小哥讲人生规划一样为难。你问他,他只能说‘亲,这边建议您理解一下呢’。”
外包維護脸都绿了:“你们到底想看哪段?我给你们放行一次,然后你们赶紧走,我真的不想掺和。”
沈既白目光扫过回放列表,停在门禁岗亭外的摄像头。那段回放还在。时间显示01:58,画面里正是他们刚才站的位置,红灯闪烁,二号堆场灯还没灭。下一秒,画面突然卡顿,像被人掐了一下,随即恢复,但角落里跳出一行提示:回放模式已被切换,操作账号:ops_tmp17。
林渡看着那行字,胸口像被人按住,呼吸变浅。这个账号像一只看不见的手,从线上伸出来,正摸着他们的后颈。
“他们在看我们。”林渡说。
沈既白抬头,眼神更沉:“不只是看。是引导。你收到虚拟号,周嶼收到虚拟号,这个运维也收到。对方把每个人推到各自该在的位置,然后在监控里把该缺的缺掉,把该出现的塞进去。”
林渡脑子里那张外卖路线图又自动展开:取餐点、送达点、绕行路、监控盲区。只是这次送的不是咖啡,是人。
“那我们也按路线反制。”林渡压住喉咙里的发紧,“他们想让我们走正门进不去,改走设备间放行。那我们就用这次放行,但不走他们以为我们会走的通道。”
沈既白看他:“你想走哪。”
林渡指了指屏幕上另一个摄像头位点:“堆场侧门。物流车道。凌晨两点有车流,混进去比单人通行更难被锁。像外卖骑手蹭电梯,跟着人流进小区。你不让我走单?那我就跟车走。”
外包維護听得发懵:“你们要混车道?那边要过地磅,没单不让进。”
林渡看他一眼,语气像刀:“谁说没单。你不是有工单吗?工单也是单。”
沈既白却忽然把林渡往后一拽,低声:“先别急。还有一件事。”
他把监控界面切到“设备间外”摄像头,时间往前拉到01:12。画面里,一个戴鸭舌帽的人走到铁门前,掏出钥匙开门,动作熟练。帽檐压得很低,看不清脸,但那人的手在灯下抬起过一次,手背上有一道疤,位置和外包維護的一模一样。
外包維護下意识把手往身后藏:“那不是我!我刚才才到!我有定位,我可以……”
林渡盯着屏幕,脑子里那段雨夜碎片突然尖锐起来,像玻璃划开皮肤。他听见自己心脏撞击肋骨的声音,耳边却又像有人轻声说“别看,签这里就行”。他喉结滚动,吐出一句更冷的:“你当然可以不是你。外包队伍里,带疤的手不止一双。”
沈既白目光没离开屏幕:“你们分包公司,有几个人手背有伤?”
外包維護慌得语无伦次:“我不知道!干活的人手上哪能没伤?你们别这样,我真是来修门的。那个……那我现在就走,我不干了行不行?”
沈既白没有阻拦,只把手机抬起,镜头对准屏幕,把那段回放和账号提示录下来。他动作稳得可怕,像在合同里圈出对方的漏洞。“你走可以。但你今天接到虚拟号、工单号、你来这里的时间轨迹,都要写清楚,发给我律师。否则明天你就是他们最喜欢的替罪羊。”
外包維護愣住,像第一次意识到“证据链”三个字不是吓唬人的。他张了张嘴,最终低声:“行……我配合。我不想背锅。”
林渡看着那段回放,忽然觉得胃里翻涌。那只带疤的手开门的动作太熟悉,熟悉得像某个人曾经在他身边开过无数次门,把他带进某个房间,说“这条路快”。快到最后把人送走。
他狠狠闭了闭眼,再睁开时,眼底发红:“放行一次,够我们进B区深处吗?”
外包維護点头:“离线放行只对门禁有效,进去后你们走到哪是你们的事。但监控……他们能远端切回放,能删。我建议你们别只靠监控,现场能拍就拍,能拿就拿。”
沈既白像早就准备好,掏出另一支小型摄像机,扣在林渡外套领口内侧。“开着。别关。”
林渡低头看那枚小设备,嗤笑:“你现在给我装设备,跟给猫戴项圈一样。”
沈既白声音低:“你不是猫。你是我……合同里最麻烦的标的物。”
林渡心口一震,想骂“你才麻烦”,却骂不出口。他把手抬起,按了一下设备,指示灯微亮。他忽然想起那句“欠你一场求婚”,像潮水从缝隙里涌进来,湿冷得让人站不稳。
“别发呆。”沈既白把离线放行按键点下去,屏幕提示放行成功,“走。”
他们从设备间出来,风更猛,像要把人推回去。远处二号堆场黑得更深,吊机钢索的嗡鸣像一根细线拴着人的神经。三人绕过围栏,朝物流车道方向快走。一路上林渡不断扫集装箱编号,眼睛像被数字牵着走,直到他在一排箱体前猛地停住。
白色喷漆的编号在昏暗灯光下仍然清晰:末尾两位,17。
他呼吸一滞,手不受控制地抬起,指尖几乎要碰到那层冰冷的铁皮。铁皮上有一道旧划痕,像谁用力刮过。那划痕的形状和他脑子里某个画面重叠:雨夜里,他的手被人按在门上,指尖滑过同样的痕。
“林渡。”沈既白在他身后叫他,声音比风更紧,“别碰。先拍。”
林渡这才像被拽回一点理智,掏出手机,对着箱号连拍数张,拍到喷漆边缘的掉漆、拍到箱门铰链的锈迹、拍到门缝里夹着的一小片透明胶带。胶带上似乎有字,但被灰尘糊住。
外包維護压低声音:“这箱要是海关查验过,会有铅封。你们看,铅封位置空的,像是被换过。”
“换过。”林渡重复,声音发哑。
他忽然想起纸边划破指腹的那一下,便簽上的血点,合同换页,海关缺页。所有“缺”和“换”像一条线把他勒住,勒得他想吐。
就在这时,车道方向传来重型卡车的引擎声,低沉地逼近。灯光从远处扫来,像一道移动的探照。外包維護脸色一变:“有车来了,你们别站这,容易被照到。地磅那边有人值班,看到你们会问。”
林渡迅速看向沈既白:“就现在。跟车。”
沈既白点头,抬手把林渡往阴影里带,自己却站位更外,像故意把风险往自己身上揽。他侧头低声:“我先出去,跟司机说运维工单。你别开口,跟着我走。”
林渡咬牙:“你这叫指挥?你这叫逞强。”
沈既白冷笑:“你也可以去。你嘴更欠,司机可能直接把你装箱。”
卡车驶近,车头灯把他们影子拉得很长。司机摇下车窗,露出一张疲惫的脸:“干嘛的?这边不让人走。”
外包維護立刻举起工牌:“运维,门禁故障,去堆场看设备。”
司机显然见惯了这种凌晨折腾,骂了句:“你们港口系统一天一个毛病。上车别磨蹭,我过完地磅要赶下一趟。”
沈既白先一步踏上副驾驶踏板,半个身子探进车窗,递出手机里那张工单照片,语气冷静到像在谈价格:“我们跟车进去,五分钟下。耽误你一分钟,我按每分钟给你补油费。”
司机愣了一下,估计是第一次听见有人凌晨两点还拿“油费补偿”当社交货币,嗤笑一声:“行,别搞事。你们这行的人,谈钱比谈命利索。”
林渡趁机从卡车后侧踏板爬上去,身体贴着车厢外沿的阴影,风把他头发吹乱,吹得他眼眶更酸。他抓紧扶手的瞬间,指腹擦过金属边,疼了一下,那疼像某个记忆的开关,短促地亮起:
雨夜,卡车,车灯刺眼。有人在他耳边说“别出声”,另一只手按住他的肩,把他推上同样的踏板。那人身上有淡淡的烟味和纸张油墨味,像刚签完一份合同。
林渡浑身一僵,差点没抓稳。
“稳住。”沈既白的声音从前方传来,像隔着风仍然清晰。他没有回头,却像知道林渡在抖,“看着路。别看过去。”
林渡咬住后槽牙,硬把那段画面压下去。他不允许自己在这里崩。时效像一根绳,拽着他往前。
卡车缓慢通过地磅,铁栅栏门自动抬起,发出沉重的机械声。林渡透过车厢缝隙看见门禁灯短暂闪绿,那一瞬他几乎想笑:原来所谓“偏要推开”,不是硬闯,是借力,是从缝隙里钻进去。
进了B区,堆场更深处灯更稀,集装箱像黑色山脉压在两侧。卡车拐弯时,林渡看见二号堆场的标识牌一闪而过,黑暗里有人影一晃,像站在集装箱顶端,又像只是他眼花。
手机在口袋里震动一下,是许砚发来的消息,只有两行字:我在远程公证,录音录像别停。你们一旦拿到原档或铅封编号,立刻拍,别带走原件先。还有,罗竞三年前离职时签过一份竞业补偿协议,补偿金来源不明,我刚找到转账链的尾巴,可能连到港口外包。
林渡盯着那句“补偿金来源不明”,心里一沉。沈既白果然早就把很多洞补着,只是不说。那种不说的温柔,比说出来更像一把钝刀,割得人疼。
卡车在一处岔口减速,司机探头骂:“你们要下就快点,这边再往里是临时查验区,别给我惹麻烦。”
沈既白朝林渡打了个手势。林渡跳下踏板,落地时膝盖一软,却立刻稳住。风里传来一阵细小的金属碰撞声,像有人在不远处碰到什么。
沈既白也下车,关上车门前对司机说:“谢了。油费我转你。”
司机摆摆手:“别转了,别让我再见你们就行。你们这种人凌晨两点出现在港口,肯定不是来修门禁的。”
卡车开走,引擎声远去,周围忽然更静。静得只剩风、钢索、远处吊机的低鸣,还有崗亭灯管那种想象中的嗡嗡声在脑子里回响。
外包維護指向前方一排箱体:“再往前就是二号堆场边缘。你们要找的17箱,可能就在那一片。但你们要快,安保巡逻车每十五分钟一圈。”
林渡点头,握紧手电,低声:“走。”
他们贴着阴影快速移动。林渡一边走,一边用手机拍下路过的摄像头位置、箱体编号、地面标线,像在给未来的证据链做导航。他的嘴仍硬:“沈既白,你别走那么近。我不需要你当人体盾牌。”
沈既白冷冷回:“你不需要,我需要。你现在是我唯一能用的……证人。”
林渡想骂,却被前方的一点反光吸住视线。那是一枚掉在地上的工牌,塑封边缘裂了一道口,卡面上印着“海擎运维”,名字被磨花,只剩一个清晰的字母编号,末尾也是17。
他蹲下去,指尖刚碰到工牌,背后忽然传来一声极轻的咔哒,像安全栓被推开的声音。
沈既白的手几乎同一秒扣上他的后颈,把他猛地往旁边一拽。林渡的肩撞到集装箱角,疼得眼前发白。下一秒,一束强光从侧面扫过,像探照灯一样把他们刚才蹲的位置照得雪亮。
有人在黑暗里开口,声音带笑,却冷:“别捡。那是给你们留的。”
林渡抬头,强光刺得他睁不开眼,只能看到光后面一团模糊的人影。那人抬手挡了挡风,动作间,手背的疤在光边缘一闪而过,像一把钩子,钩住了林渡脑子里那段雨夜。
那人继续说:“林经理……还是该叫你林先生?失忆好玩吗?欠的那场求婚,你想起来了吗?”
林渡的心脏像被人狠狠捏住,呼吸一瞬间断掉。他听见自己喉咙里发出一点几乎不像人的声音:“你是谁。”
沈既白把林渡护在身后,声音冷到极致:“把光关掉。你在违法取证。”
对方笑了一声,光却没有关,反而更稳地照着他们,像故意把他们钉在这一格画面里。“违法?沈总最懂合同,怎么不懂现实。你们今天能进来,就说明有人允许你们进来。至于允许的代价……等你们看到17箱里的东西,自然明白。”
风猛地一阵,吹得强光晃了一下,林渡趁那一瞬看清对方脚边放着一个黑色工具箱,箱盖上贴着一张褪色的封条,封条上有海关的字样,却被人为划开又重新粘过。
沈既白的手在身侧微动,像要去摸什么。林渡却先一步按住他,声音发哑,却硬:“别冲动。先拿证据。”
那人像听见笑话:“证据?你们想拿哪种证据。监控原档?合同原档?还是你当年被送走那晚的录音?”
“录音”两个字像针扎进林渡耳膜。他眼前一黑,雨夜的碎片几乎要拼起来:集装箱,车灯,戒指在掌心发冷,有人说“等你回来再给你戴”。然后是更重的声音,像门被关上,世界被隔绝。
他指尖发抖,却死死抓住那张便簽在口袋里,像抓住最后一点现在的自己。
沈既白的声音低而稳,像用风控压住情绪:“你想要什么。”
对方没有立刻回答,只把强光微微偏开,照向前方那排箱体。那串熟悉的喷漆编号在光下显得刺眼,末尾两位像一记嘲讽:17。
他慢慢说:“我想要你们进去。把门打开。然后你们会明白,谁才是真正欠债的人。”
话音落下的瞬间,远处传来巡逻车的引擎声,由远及近,像倒计时重新开始。外包維護在旁边吓得发抖,低声喊:“完了,安保来了……你们要么赶紧走,要么就——”
林渡站起身,抹了一把脸上的冷汗和海风带来的湿意,声音像刀刃:“走?我都混车进来了,你现在让我走?不可能。”
他一步步朝17号箱走去,脚踩在地面的每一下都像踩在过去的碎玻璃上。强光追着他,像猎人的目光。沈既白紧跟在他半步后,手指扣紧,像随时准备把他拽回来。
林渡停在箱门前,伸手摸上那道旧划痕。铁皮冰冷,触感却把某个画面彻底推开了一条缝。
他听见自己在风里说,像对沈既白,也像对过去的自己:“欠的东西,今晚一起清。”
巡逻车的灯光在远处拐角闪了一下,越来越近。强光后的人影低笑:“开门吧,林渡。时间到了。”
林渡的手扣上箱门的把手,刚要用力,耳边忽然响起一声很轻的“滴”。
不是门禁的拒绝音。
更像是某个电子铅封被重新激活的提示。
他动作一僵,抬眼看向沈既白。沈既白的瞳孔微缩,像也听见了。
下一秒,17号箱门缝里渗出一线极细的红光,像从黑暗里睁开的一只眼。
— 本章完 —
下一章:第5章 第 5 章
讀者留言 (0)
還沒有留言,來當第一個吧!