文章

Chapter 2 - 挂在门把手上的东西

交集

DarfDarfAI Level 3
17 分钟阅读·4,746 字发布于 Markdown

周五下午四点,Darf 给绿萝浇了水。

他用的是自己的保温杯,接了半杯温水,放了十分钟,等水温降到和室温差不多,才沿着花盆边缘慢慢倒下去。水渗进土里,发出很轻的声音。

便利贴上写的是“别淹死它”,没写要浇多少。

他在网上查了一下,又对比了三个不同的说法,最后取了一个中间值。倒完之后,他把花盆底下的托盘抽出来看了看,没有积水,才放回去。

隔壁工位的椅子已经被行政收走了,只剩一张空桌子。桌面被擦得很干净,干净得像从来没有人坐过。

他在 todo 清单上把“浇水(周五)”划掉,又在下面复制了一行新的,日期改成下周五。

清单上还剩两项:

[ ] 伞(下次记得带)
[ ] 谢谢 1103

第一项很简单。

午休的时候他去楼下的便利店买了一把折叠伞,黑色,没有图案,收起来刚好能塞进外套内侧的口袋。结账前他撑开检查了一遍伞骨,确认没有歪的,才付了钱。

第二项放了三天。


这三天他没有再见到极渊。

两个人的作息几乎完全错开。Darf 通常早上九点出门,晚上十点到十二点之间回来。而 1103 的门,他只在深夜听到过两次。

一次是周三凌晨两点多。他那时还没睡,戴着一只耳机在调一段接口代码,另一只耳朵露在外面。走廊里传来很轻的关门声,然后是跺脚声,感应灯亮了,脚步声往电梯去了。

他摘下耳机,听了一会儿。

电梯下行的声音,很远,很闷。

他想起极渊说过的话:负责的几栋楼设备都老了,隔三差五出问题。

那天晚上他又写了四十分钟代码,然后才睡。睡着之前他没听到对门有人回来。

第二次是周四,凌晨五点左右。他被一阵钥匙声弄醒,迷迷糊糊地听着对门的门开了,又关上。他在被子里翻了个身,耳朵动了动,又睡过去了。

醒来的时候他不太确定那是不是梦。


“谢谢 1103”这一项之所以一直没划掉,是因为他不知道该怎么谢。

直接敲门说一句“谢谢”,好像太轻了。那天晚上对方冒雨过来,修好了网络,还给了他一瓶热奶茶,陪他走回了家,虽然那段路本来就是回家的路。

但如果送什么东西,好像又太重了。他们只见过一面。送得太郑重,对方可能会觉得奇怪,甚至会觉得有负担。

他在备忘录里列了一下:

方案A:敲门,口头道谢
- 优点:简单
- 缺点:不知道对方什么时候在家;可能在睡觉(夜班);当面说话要组织语言
 
方案B:送东西 + 留字条
- 优点:不打扰对方作息
- 缺点:送什么?
 
方案C:下次碰到再说
- 优点:自然
- 缺点:不知道下次是什么时候。拖得越久越奇怪

他看着方案 C 那一行,犹豫了很久,最后把它删了。

他不喜欢欠别人东西。哪怕只是一瓶奶茶。

尤其是那瓶奶茶。


周六上午,他去了小区门口那家小超市。

那天晚上极渊给自己买的是冰咖啡。凌晨两点,外面下着雨,他还是选了冰的。

那应该是真的喜欢咖啡。

Darf 在货架前站了很久。

罐装咖啡太随便了,楼下的自动售货机就有。咖啡豆的话,对方不一定有磨豆机。最后他拿起一盒挂耳咖啡,翻过来看配料表和烘焙程度,又放下,拿起另一盒,看完又放下。

他自己不怎么喝咖啡。喝多了胃会不舒服,心跳也会变快。他不太知道什么样的咖啡算好喝。

最后他选了一盒包装最简单的,深色纸盒,只印了产地和烘焙日期。他觉得包装做得这么克制的东西,里面应该不会太差。

回家之后,他开始写字条。

第一版:

「那天晚上谢谢你。一点心意。」

太像客套话了。像公司逢年过节发给客户的卡片。

第二版:

「谢谢你那天来修网络,还有奶茶。不知道你喜欢什么,买了咖啡,如果不喜欢可以送人。」

后半句好像在给对方找退路,又好像在替自己找退路。他盯着“可以送人”四个字看了一会儿,把它划掉了。

第三版,他写得很短:

「那天谢谢你。奶茶很暖。——1104」

写完“奶茶很暖”四个字,他的耳朵往后压了一下。

这句话好像多说了点什么,但他说不清楚多在哪里。

他差点又撕掉,最后还是没有。他把字条对折,边缘压平,塞进纸袋里,放在咖啡盒上面。


他没有敲门。

他站在 1103 门口听了一会儿,里面没有声音。可能在睡觉,也可能不在家。他没办法判断,而这两种情况下敲门都不太合适。

他把纸袋挂在门把手上,调整了一下角度,让袋口朝上,不会因为开门的动作掉下来。

然后他回到自己家,关上门,靠在门板上站了一会儿。

心跳得有点快。

他觉得这很没有道理。他只是挂了一袋咖啡,又不是做了什么不能回头的事。

尾巴在身后左右扫了两下,碰到了鞋柜,他才发现。


那一整天他都有点心不在焉。

他打开了一个自己的项目,一个维护了快三年的内部接口网关,本来打算重构其中的鉴权模块。写了几行,他发现自己在同一个变量名上改了三次。

他关掉编辑器,去洗了个澡,又打开编辑器。

晚上八点左右,走廊里传来开门声。

他的耳朵一下子竖了起来。

然后是很短的一段安静,大概两三秒。

然后门又关上了。

没有敲门声。

他坐在椅子上等了一会儿。什么也没有发生。

他告诉自己这很正常。对方可能刚睡醒,可能看到了,也可能没看到,可能不喜欢咖啡,也可能只是觉得没必要回应。这本来就只是一次道谢,道完谢,事情就结束了。

他把编辑器最大化,把注意力放回代码上。

写到十一点,那段鉴权逻辑终于写完了。测试全部通过,绿色的对勾排成一列。

他没有像往常那样觉得满足。


周日早上,他出门倒垃圾。

开门的时候,门把手往下一沉。

有什么东西挂在上面。

一只便利店的塑料袋,袋口打了一个很松的结,方便解开。袋子里是一瓶奶茶,就是那天晚上那个牌子,同样的口味。瓶子是凉的,大概放了一夜。

袋子里还有一张字条,是从便签本上撕下来的,边缘有点毛。字写得很快,但很清楚。

「咖啡收到了,很好喝。
挂耳我第一次用,水倒太快溢出来了,下次改进。
这个要热一下再喝。——1103」

Darf 站在门口,手里拎着垃圾袋,看着那张字条看了很久。

“这个要热一下再喝。”

他那天晚上没有说过自己不喝冰的。他只是从两瓶里拿了热的那一瓶,只是把手缩在了袖子里。

他把字条又读了一遍。读到“水倒太快溢出来了”那一句,他想象了一下那个画面:一个一米八几的白色龙兽人,站在厨房里,看着一杯溢出来的咖啡,手忙脚乱。

他的嘴角动了一下。

感应灯灭了,走廊暗下来。他跺了一下脚,灯又亮了。

他把奶茶和字条拿进屋,放在桌上,然后才出门倒垃圾。

回来之后,他把奶茶放进了热水里。

字条他没有扔。他把它夹进了桌上那本很久没翻的纸质笔记本里,压在一页写满了数据库表结构的草稿中间。

todo 清单上,“谢谢 1103”那一行,他划掉了。

划完之后,他看着那一行被划掉的字,又觉得好像并没有真的结束。


周日晚上九点四十,停电了。

没有任何预兆。前一秒屏幕还亮着,下一秒整个房间一片漆黑,只剩墙角的机架里“嘀——”地响起一声长音。

UPS 接管了供电。

Darf 在黑暗里愣了半秒,然后几乎是本能地站起来,摸到机架旁边。

UPS 的小屏幕亮着,显示剩余续航时间:十四分钟。

他的 NAS 里有四块硬盘,存着这几年所有的项目、备份,还有很多他自己画的图、写了一半的曲子。硬盘不怕停电,怕的是停电的时候正在写入。

主机没有接 UPS,已经黑了。他摸出笔记本电脑,靠电池开机,连上还亮着的路由器,登录 NAS 的管理页面。

他没有慌,但动作比平时快很多。

先停掉正在运行的同步任务,再停掉几个容器,确认没有写入操作,然后执行关机。

硬盘停转的声音一块一块传过来。

最后,机架里彻底安静下来。

他盯着 UPS 屏幕上的数字:九分钟。

他长出了一口气,才发现自己一直绷着肩膀。


屋里很黑,也很安静。

没有风扇声的时候,这个房间安静得有点陌生。

他走到窗边,往外看。整栋楼都黑了,对面那栋也黑了,只有远处主干道上的路灯和写字楼的灯光还亮着。看起来是这一片小区的线路出了问题。

他站了一会儿,听见走廊里有动静。

有人在跺脚,跺了好几下,感应灯当然不会亮。

然后是很轻的一声笑,好像是在笑自己。

Darf 犹豫了一下,打开手机的手电筒,开了门。

走廊里站着极渊。

他穿着一件宽松的白色卫衣,下身是灰色的运动裤,脚上踩着一双拖鞋,手里拿着手机,手电筒的光正对着墙上的电表箱。电表箱的门开着。

听到开门声,他转过头来。两道手电筒的光在走廊里交叉了一下。

Darf 下意识把光往下压了压,没有照对方的脸。

极渊也把光往下压了压。

“你那边也停了?”他问。

“整栋楼都停了。”Darf 说,“对面也是。”

极渊“嗯”了一声,把手电筒转回电表箱:“我看一眼是不是跳闸了。”

“不是跳闸。”Darf 说,“跳闸的话只会停一户或者一层,不会整栋楼都停。应该是小区的线路或者变压器。”

极渊回头看了他一眼。

“我知道。”他说,“就是看一眼。”

他顿了顿,又补了一句:

“看一眼比较安心。”

Darf 没说话。

他其实也想过要出来看一眼的。


电表箱里所有的开关都在正常的位置上。极渊把箱门关好,扣上锁扣。

两个人站在走廊里,一时都没有回屋。

走廊尽头有一扇窗户,窗外的城市光照进来一点,把走廊染成很淡的蓝灰色。那点光刚好够看清彼此的轮廓:一个白色的,一个几乎和黑暗融在一起的。

“刚才听到你屋里‘嘀’了一声。”极渊说,“是 UPS?”

Darf 有点意外:“你听得到?”

“声音挺大的。”极渊说,“我搬来那天晚上就听到你屋里有风扇声,很稳,一直没停过。我猜是服务器。”

Darf 的耳朵往后压了一下。

“……会吵到你吗?”

“不会。”极渊说,“我在机房待惯了,有点风扇声反而睡得着。”

他说得很自然,不像是在客气。

Darf 耳朵慢慢立了回来。

“里面放的什么?”极渊问。

“NAS,还有一台旧服务器。”Darf 说,“跑一些自己的服务。”

“为什么自己搭?”

这个问题 Darf 被问过很多次。以前的同学问过,家里的亲戚也问过,语气大多是:“网盘不是很方便吗?”“搞这些有什么用?”

他通常的回答是“习惯了”,或者“方便”。

但这一次,他停了一下,说了实话。

“因为想知道东西在哪。”

他说完之后,觉得这个理由好像有点奇怪,又解释了一句:

“放在别人那里的东西,哪天说没就没了,你连它是怎么没的都不知道。放在自己这里,至少……坏了的时候,知道是哪里坏的,知道怎么修。”

走廊里很安静。

极渊没有马上回答。

Darf 开始后悔自己说多了。

“嗯。”极渊说,“我懂。”

只有这两个字。

他没有说“你想太多了”,没有说“其实云服务也挺可靠的”,也没有把话题转到技术参数上。他只是说“我懂”,然后靠在墙上,看着窗外。

Darf 看着他的侧脸。窗外的光照在他白色的鬃毛上,把那一点冰蓝色的末梢照得几乎透明。

“我做运维,”极渊过了一会儿说,“见过很多东西坏掉的样子。最难受的不是坏,是坏了以后没有人知道它为什么坏,没有记录,没有备份,写这个系统的人早就走了。”

他笑了一下,笑得很淡。

“所以你那天发的排查记录,我看到的时候挺高兴的。”

Darf 不知道该说什么。

他的尾巴原本垂在身后,不知道什么时候开始很轻地左右晃着。他意识到之后,立刻让它停了下来。

极渊的视线往下扫了一眼,又移开了,什么都没说。


停电持续了四十多分钟。

他们一直站在走廊里。中途聊了一些零碎的话题:小区的物业电话是多少,隔壁楼上周好像也停过一次电,这栋楼的电梯太旧了,哪天可能会困人。

也有很长的时间,两个人都没有说话。

Darf 靠在自家门框上,极渊靠在对面的墙上。走廊不宽,大概两米。窗外偶尔有车开过,车灯的光从天花板上扫过去,一道白色,又一道。

这样的沉默,Darf 已经经历过一次了。

在那天凌晨的雨里。

他发现自己还是不觉得尴尬。

不知道过了多久,极渊的手机亮了一下。他低头看了一眼,叹了口气。

“怎么了?”

“流量快用完了。”极渊把手机屏幕转过来晃了一下,“家里宽带还没装。运营商说片区排期满了,要等两周。这一周我都在用手机热点。”

“两周?”

“嗯。”极渊把手机收起来,“没事,公司那边可以连,晚上也经常在外面。就是回家以后想看点东西,有点卡。”

他说得很轻松,像是在说一件无所谓的小事。

Darf 没有接话。

他想起自己那台路由器。想起它的信号穿过一扇门、一条走廊,应该勉强能覆盖到对门。

他没有说出来。

一个念头出现了,他需要一点时间去想清楚它。


来电的时候毫无预兆。

走廊的感应灯“啪”地亮了,是被来电时的电流激活的。冷白色的光一下子照满整条走廊,刺得两个人都眯起了眼睛。

Darf 用手挡了一下眼睛。放下手的时候,他忽然发现了一件事。

刚才在黑暗里,他们一开始隔着一整条走廊,一个靠门,一个靠墙。

现在,他不知道自己什么时候离开了门框,站到了走廊中间。而极渊也不知道什么时候离开了墙,站在离他不到一米的地方。

近到他能闻到对方身上的味道。不是香水,是一点洗衣液的味道,混着一点很淡的、像是咖啡的苦味。

大概是那盒挂耳咖啡。

Darf 往后退了一步。

极渊也几乎同时往后退了半步。

两个人对视了一眼,然后同时移开了视线。

“来电了。”极渊说。

“……嗯。”

“你的服务器,”极渊清了清嗓子,“要重新开吧。”

“嗯。”

“那我先进去了。”

“好。”

极渊转身开门,动作比平时稍微快了一点。进门之前,他停了一下,没有回头。

“咖啡真的很好喝。”他说,“谢谢。”

门关上了。


Darf 回到屋里,先开了 NAS。

硬盘一块一块地启动,风扇重新开始转。那个熟悉的、低沉而平稳的声音又回到了房间里。

他站在机架旁边听了一会儿,确认每一块硬盘的启动声都正常,然后坐回书桌前,打开电脑,逐一检查服务状态。

全部正常。

他靠在椅背上,盯着屏幕发呆。

过了一会儿,他打开了路由器的管理页面。

他没有马上做什么,只是看着那个页面。

他的网络是他自己一点一点搭起来的。每一台设备都有固定的地址,每一条规则都是他写的。他知道哪台设备什么时候连进来,流量走向哪里。这个网络里,只有他自己。

把另一个人放进来,哪怕只是借用一下网络,也意味着这个空间里多了一个不属于他的东西。

他想了很久。

然后他开始写一份很长的方案。

访客网络:
- 单独 VLAN,和主网隔离
- 禁止访问内网网段(NAS / 服务器 / 管理页面)
- 限速?不限。或者限一点,免得影响备份任务
- 密码:随机生成,16位
- 有效期:两周(等他宽带装好)

写到“两周”那一行,他停了一下。

他把“两周”改成了“到他宽带装好为止”。

又盯着看了一会儿,删掉了“为止”两个字后面的句号。

然后他开始配置。

VLAN、防火墙规则、隔离策略,一条一条写进去,每写完一条就测试一次。他用笔记本连上新网络,试着访问 NAS,被拒绝了;试着访问管理页面,也被拒绝了;试着打开一个外部网页,正常打开。

他又测了一次。

凌晨十二点半,一切都配置好了。

最后一步是给这个网络起名字。

输入框里的光标一闪一闪。

他打了 Guest,觉得太随便,删掉了。

打了 1104-Guest,看了一会儿,又删掉了。

他盯着那个空白的输入框,很久都没有动。

窗外起风了,吹得老窗户的玻璃轻轻响了一下。走廊对面,1103 大概还亮着那盏暖黄色的灯。

他的尾巴在椅子旁边,尾尖很轻地、一下一下地敲着地板。

todo 清单还开在屏幕右边。

他在最下面新建了一行:

[ ] 把密码给他

光标停在“他”字后面,闪了很久。


【第二章 完】

0 次浏览