[小说]雨云-从出生到上市 9-12章

全文仅供娱乐,如有任何不当之处,立马修改/删除
小说内容仅为虚构,请勿当真
买云请上雨云,便宜稳定性价比高,专属五折优惠码:mianfei
或点击:雨云 - 新一代云服务提供商

快速跳转到对应章节请看第1-2章帖子的开头

第9章 夜色与吉他

凌晨两点,林语终于关掉了编辑器。

他的眼睛酸得像灌了沙子,脑子里全是IP段和C段封禁规则的逻辑。他揉了揉太阳穴,站起身,走到窗边,推开窗户。

广州十月的夜风带着闷热和潮湿,从城中村的小巷子里穿过来,吹在他的脸上。他深吸一口气,感觉清醒了一些。

宿舍里,三个室友都睡了。陈胖子打着呼噜,声音忽高忽低,像一台不稳定的服务器风扇。林语笑了笑,轻手轻脚地走到阳台,把门带上。

阳台很小,只能站两个人,晾衣架上挂着几件T恤,在夜风中轻轻晃动。

他从角落里拿起那把包浆的雅马哈吉他,在琴箱上轻轻敲了两下,灰尘扬起来,在月光下飞舞。

这把吉他是他高中毕业那年买的,花了两百块,从二手市场淘来的。那时他刚写了几首民谣,觉得自己可以当个流浪歌手。后来来了广州,大学宿舍的床太小,吉他只能放在阳台吃灰。

他拨了一下弦,声音在深夜的空气里显得格外清脆。

“太久没弹了,音都跑了。”他自言自语,开始拧弦钮。

调音大概花了十分钟。他没有打开手机上的调音软件,全凭耳朵。文科生的耳朵总归是比理科生敏感一点,他曾经在宿舍里这么吹过,被陈胖子骂“装逼”。

调完音,他坐在阳台的小凳子上,把吉他在腿上放好。

弹什么好呢?

他想了想,手指开始在琴弦上游走。

那是《南方姑娘》的前奏。

这首歌他弹了无数遍,从高中弹到大学,从没谈过恋爱弹到有了搬砖狐。他一直觉得,赵雷唱的就是他自己——一个小镇青年,来到大城市,抱着吉他,写着自己的故事。

但今天弹着弹着,他忽然觉得不那么像了。

因为赵雷写的南方姑娘,是别人。

而他写的,是自己的代码。

是雨云。

是那些凌晨三点还在亮着的屏幕。

他停下来,手指在琴弦上顿住。

脑子里忽然冒出一个旋律——不是别人的歌,是他自己的,很久以前写过的一段旋律。

那是他高三那年写的,词已经记不太清了,只记得副歌大概有这么一句:“我想要的未来,不太远也不太近,就在手边,在键盘的缝隙里。”

他试着弹了两个和弦,觉得有点生涩,又调整了一下。

然后,他开始哼唱。

没有词,只有旋律。

哼着哼着,鼻音在夜色里飘散开,像雨后的雾气。

他闭上眼睛,脑子里全是今天的事。

攻击、封禁、追踪、蓝速网络、佛山、陈经理……

那些画面像是放幻灯片一样,一幕一幕地闪过。

他咬了一下嘴唇,手指加了点力气,琴声忽然变得有点硬。

像是在发泄。

但很快,他又松弛下来。

哼唱的旋律,慢慢地变了调子。

从低沉,变成了平静。

从愤怒,变成了释然。

他睁开眼睛,看着楼下的街道。

城中村的凌晨两点,很安静。偶尔有一辆电动车开过去,车灯在巷口扫一下,然后消失。

远处是高架桥,车流的喧嚣隐约传来,像是背景白噪音。

他放下吉他,拿起手机,打开了博客后台。

他的个人博客,域名是“www.linyus.cn”,用了两年多了,在上面写写技术文章,偶尔发点生活感悟。访问量不大,每天大概几十个IP,大都是同行和网友。

他想了想,新建了一篇文章。

标题:《为了无法计算的损失》

他打了两行字,又删了。

又打了两行,又删了。

最后,他干脆直接写:

“今天,雨云又被攻击了。

这次,是专业选手。

他们有资源,有时间,有设备,还在佛山租了机房。

而我只有一台服务器,一个备用节点,和一个被蚊子咬到半夜还不肯睡的脑子。

看起来,差距很大。

但我觉得,所有可以被计算的损失,都不是真正的损失。

真正的损失,是你觉得你输了,就真的输了。

所以,我要建一个最硬的壳。

不是为了利益。

是为了那些无法计算的损失。

——林语

凌晨两点,写于广州。”

他读了一遍,觉得有点中二,但不想改了。

他点了“发布”。

然后,他把吉他放回原位,伸了个懒腰,准备回宿舍睡觉。

他不知道的是,他的室友陈胖子,刚才被他弹琴吵醒了。

陈胖子迷迷糊糊地摸到手机,打开相机,对着阳台上的林语拍了一段十秒的视频。

然后,他发到了班级群里。

配文:“林老板在阳台弹吉他唱歌,文艺得一塌糊涂,我草。”

凌晨两点四十,班级群里,居然有人秒回。

“卧槽,真的假的?”

“林语弹吉他?他不是理科生的脑子吗?”

“人家文科生。”

“我日,这背影有点帅啊。”

“天亮了我得当面嘲笑他。”

“录视频的兄弟,明天记得找林老板收版权费。”

陈胖子看着群消息,嘿嘿一笑,翻身又睡了。

而林语,完全不知道这事。

他躺在床上,脑子里全是那篇文章的标题——“为了无法计算的损失”。

他觉得,这句话,说得真好。


第二天早上七点,林语被闹钟吵醒。

他迷迷糊糊地摸到手机,看了一眼时间。

七点零五。

他正准备继续睡,忽然想起什么,打开了博客后台。

他的文章,点击量已经涨到了两百多。

他愣了一下。

雨云的官网访问量,都没有这么高过。

他往下翻,看了一眼评论区。

有十几条评论。

大部分都是同行:

“林总加油,IDC这行太难了。”

“被攻击是常态,顶住。”

“老铁,需要帮忙直接说,我有几个干净的节点。”

“可惜我在北京,不然去佛山帮你堵那傻逼。”

“写得好,为了无法计算的东西打码。”

他一条一条看完,心里暖暖的。

正准备退出后台,发现底下还有一条新评论。

他点开一看,愣了一下。

昵称:“搬砖狐”

头像:一只卡通狐狸,手里举着一个扳手。

评论内容:“有点东西,但还不够瑟。”

林语嘴角一抽。

“还不够瑟”?

这姑娘到底在想什么。

他正想回复,手机忽然震了一下。

是搬砖狐的微信消息。

“看了你的博客了。”

“嗯。”

“写得很装逼。”

“谢谢。”

“但不够瑟。”

“……”

“改天我教你怎么写。”

“不用了,谢谢。”

“对了,今天中午有空没?”

“有。”

“那行,我去学校找你,带你去吃一家新的酸菜鱼。”

“好。”

“对了,你那把吉他是雅马哈的吗?”

“嗯,二手淘的。”

“音色还行吗?”

“还凑合吧,弹久了,手感还行。”

“改天弹给我听一下。”

林语愣了一下。

他没想到搬砖狐会说要听他弹吉他。

“行啊,改天录个视频发你。”

“好。就今天中午吧。”

“中午?”

“你不是带了吉他来学校吗?”

林语愣了一下。

他确实没有带吉他。

但他说不出拒绝的话。

“行。”

“好,中午见。”

林语放下手机,看了一眼阳台上的吉他的方向。

他深吸一口气,决定中午带吉他过去。


上午九点,林语去上课。

他一进教室,就发现气氛有点不对。

几个同学用异样的眼神看着他,嘴角还挂着笑。

他疑惑地扫了一圈,发现陈胖子正举着手机,对着他笑。

“林老板,你可火了。”

“啥?”

陈胖子把手机屏幕转过来。

是班级群,他的视频正在被轮播。

视频里,他在阳台弹吉他,哼唱,鼻音在夜色里飘散。

陈胖子打了一行字:“林老板的演奏会,票价一张陈泡泡,先到先得。”

底下是十几个“哈哈哈”的回复。

林语:“……”

他深吸一口气,一脸平静地坐到座位上。

“陈胖子,你完了。”

“嘿嘿嘿,林老板,你今天中午请客,我就不发朋友圈了。”

“你威胁我?”

“我这是给你机会表现。”

“滚。”

陈胖子笑嘻嘻地收回手机。

林语假装淡定地打开课本。

但他的嘴角,不自觉地扬了一下。

他没想到,自己弹吉他的视频,居然会在班级群传一圈。

更没想到,他看起来,居然还挺文艺。

他想起搬砖狐说的那句“有点东西,但还不够瑟”,忍不住笑了一下。

也许,他应该好好练一下吉他。

至少,不能让搬砖狐失望。


中午十一点半,林语提前下课,去宿舍拿吉他。

他打开琴包,调好琴弦,把吉他装进去,背在背上,走出宿舍。

他给搬砖狐发了条消息:“我下课了,在哪见?”

“北门,那家新开的酸菜鱼店。”

“好,到我。”

他背着吉他,走到北门。

远远地,他看见搬砖狐站在酸菜鱼店门口,穿着一件宽松的白T恤和牛仔短裤,扎着高马尾,手里拿着一杯奶茶。

她看到林语背着吉他,眼睛一亮,露出一个坏笑。

“哟,林老板今天带家伙了?”

“说好的,录视频。”

“行,先进来吃饭,吃完再说。”

她带着林语走进店里,找了一个靠窗的座位坐下。

酸菜鱼端上来,热气腾腾,金黄的汤底,雪白的鱼片,翠绿的香菜。

林语吃了两口,觉得味道确实不错,忍不住竖了个大拇指。

“怎么样?”搬砖狐问道。

“可以,比上次那家好吃。”

“那必须的,我找的可都是根据地。”她得意地笑了笑。

吃了一会儿,她忽然放下筷子,看着林语。

“你那篇博客,我认真看了。”

“嗯。”

“写得有点意思。”

“谢谢。”

“但我还是觉得不够瑟。”

林语:“……”

“你觉得什么样的才算瑟?”

“至少得加上一句‘为了无法计算的损失,也要为了无法计算的快乐’。”

林语愣了一下。

他沉默了几秒,嘴角轻轻勾起。

“你说得对,改天我加上去。”

“这就对了。”搬砖狐满意地点点头,端起奶茶喝了一口。

吃完饭,搬砖狐拉着林语走到学校后门的一片小广场上。

广场不大,有一些石凳和花坛,人不多。

她找了一张长椅坐下,拍了拍旁边的位置。

“来,弹一个。”

林语把吉他拿下来,调好音,坐在她旁边。

他想了想,决定弹那首《南方姑娘》。

前奏响起,搬砖狐就安静下来。

她没有说话,只是靠着椅背,目光落在远处的树梢上。

林语的指尖在琴弦上流动,声音在午后的阳光中显得清澈。

他弹着弹着,忽然觉得搬砖狐的安静让他有点不习惯。

他停下来,转头看了她一眼。

搬砖狐正看着他,眼睛里有光。

“谈完了?”

“嗯,第一段。”

“继续。”

林语笑了笑,继续弹下去。

这一次,他弹的是自己的那首未完成的歌。

没有歌词,只有旋律。

他闭上眼睛,脑子里全是那些凌晨的代码、攻击、封禁,还有昨夜的阳台。

搬砖狐没有说话,就这么静静听着。

一曲终了,她拍了拍手。

“不错,有进步。”

“谢谢。”

“你之前说过,你还会写歌?”

“写过一些,不太成熟。”

“改天写一首完整的,我帮你填词。”

林语愣了一下。

他看着搬砖狐,对方的眼睛亮晶晶的,像是有星星。

他点了点头。

“好。”


下午两点,林语回到宿舍。

他把吉他放好,打开电脑,开始检查今天的服务器状态。

数据库正常。

节点负载正常。

备份任务正常。

他松了一口气,正准备继续写进销存系统的维护功能时,手机忽然震了一下。

是邮件提醒。

他打开一看,愣了一下。

是博客后台的通知。

“您的文章《为了无法计算的损失》收到了5个收藏和12个赞。”

他点开评论区,发现又多了几条评论。

其中一条,来自一个陌生的ID:

“加油,雨云的小老板。这里是中国云计算的新阵地。”

他看着这条评论,心里忽然涌上一阵说不出的暖意。

他回复了一个字:“嗯。”

然后,他继续写代码。

他的脑子里,忽然响起中午搬砖狐说的话。

“为了无法计算的损失,也要为了无法计算的快乐。”

他笑了笑,在代码里加了一行注释:

// 为了无法计算的快乐

他敲下回车键。

窗外,广州的秋阳正好。

第10章 不够瑟

林语盯着屏幕上的那行注释,愣了几秒。

// 为了无法计算的快乐

他在心里默念了一遍这句话,居然觉得确实比之前那句顺耳不少。

他笑了笑,继续写代码。

进销存系统的维护功能其实不算复杂,张老板那边反馈的基本都是小bug,比如库存数量显示多了一位小数、导出Excel时日期格式乱码之类。林语花了一个小时就全部修完了,发了个更新包过去,附了一句“有什么问题随时找我”。

消息发出去不到三分钟,手机就响了。

张老板的微信语音。

林语愣了一下,接起来。

“喂,张老板。”

“小林啊,你这个系统我用着还行,就是那个打印功能能不能调一下?我这边打出来的单据,打印纸的格式对不上,总是偏了半厘米。”

林语嘴角一抽。

张老板这个人,既不懂技术,又特别在意细节。

“张老板,打印功能那个是直接调用浏览器的打印接口,纸张大小可以在打印设置里调的。”

“我不会调啊,你能不能调好了发给我?”

“这个得在您那边设置,我这边远程调不了的。”

“那你能不能写个参数,让我这边一点就自动调好的?”

林语沉默了两秒。

“张老板,那个我得重新开发一个打印模块,不是简单调参数的事。”

“那行,我给你加五百块钱,你帮我做一下。”

林语想了想,确实缺钱。

“行,我周末加个班,下周给您发过去。”

“好好好,小林你是真靠谱,以后我朋友有网站也找你做。”

“好的好的,张老板再见。”

挂了电话,林语深吸一口气。

一个打印模块,加五百块,这钱说多不多,但够他交一个月的话费和电费了。

他正准备开始写打印模块,忽然想起一件事。

搬砖狐的博客。

他之前听她说过,她有一个个人博客,域名和她的技术方向有关,但一直没问过具体地址。

他打开微信,找到搬砖狐的对话框。

林语:“你的博客地址是什么?”

消息发出去,不到十秒就回了。

搬砖狐:“你要干嘛?”

林语:“拜读一下你的大作。”

搬砖狐:“我的博客都是些技术水文和抽象文化,怕你看不懂。”

林语:“我是文科生。”

搬砖狐:“那更看不懂了。”

林语:“……”

搬砖狐:“给你发了,自己慢慢品鉴。”

她发了一个链接过来,域名是"https://wiki.rainyun.space/bagua/banzhuanhu.html”。

林语点了进去。

页面一加载,他就愣住了。

这个博客的首页,不是什么标准的博客样式,而是一个动态的Canvas背景,画面上是一只像素风的狐狸,正在一个由代码雨构成的世界里穿梭跳跃。

狐狸的动作流畅得离谱,跳跃、翻跟头、躲避障碍物,每一帧都像是手绘的动画。

页面底部是一个极简的导航栏,只有三个入口:“博客”、“作品”、“关于”。

林语滚动了一下页面,发现每一个模块都是独立的小交互组件。博客列表是用卡片形式展示的,鼠标悬停时卡片会翻转,显示文章的摘要和标签。作品页面则是一个瀑布流布局,里面放着她用Vue写的小工具、Chrome插件、甚至是几个前端小游戏。

他点开一篇技术文章,标题是《用Vue3写一个会动的猫娘,超简单》。

文章内容写得很详细,步骤清晰,还附带了完整的代码示例和在线演示链接。

林语看完,默默地关掉了。

他感觉自己被碾压了。

这姑娘的前端水平,比他高了一个量级。

他又点开“关于”页面,里面是一张搬砖狐的自拍——她坐在电脑前,戴着一副黑框眼镜,素颜,戴着耳机,看起来像是正在听歌。

底下是一段自我介绍:

“搬砖狐,全栈前端开发者,喜欢折腾好玩的东西,偶尔写写博客。目前在广州摸鱼,目标是成为全栈工程师。擅长Vue,不太会PHP。喜欢Homo文化,不喜欢加班。唯一的技能是用CSS画一切。毕生梦想是用前端技术做出一个大项目。”

林语看完,轻笑了一声。

这姑娘确实有两下子。

他正想翻一下她的其他文章,忽然发现页面的右上角有一个小小的按钮,上面写着“暗号”。

他好奇地点了进去。

页面跳转,出现了一个奇妙的文字游戏界面,屏幕上是一段对话:

“会员制餐厅已为您准备好了今天的菜品。”

“您选择:A. 食雪 B. 不吃 C. 再来一份”

“正确答案:C. 再来一份”

林语:“……”

他还想继续看,但转念一想,还是退出了。

这些抽象文化,他可能真的看不懂。

他关掉浏览器,深吸一口气,开始专注在自己的项目上。

现在最重要的,是那个用Go写的在线控制面板。

这是雨云未来的核心。


下午三点,林语开始写控制面板的最后一个核心功能:用户前端。

这个前端不需要太复杂,但要足够简单易用,能让用户快速查看服务器的状态、重启、重装系统等操作。

他用的技术栈很简单:Vue3 + Element Plus + Axios。虽然他的前端水平不如搬砖狐,但写一个标准的后台管理系统,问题不大。

他花了整整两个小时,写好了所有的前端页面。

一共三个页面:

  1. 仪表盘:显示CPU、内存、磁盘使用率,以及当前在线用户数。

  2. 服务器管理:显示用户名下的所有服务器,每个服务器卡片显示IP、状态、配置和到期时间。可以点击“重启”、“关机”、“重装系统”三个按钮。

  3. 财务中心:显示账户余额、订单记录、续费入口。

界面风格简洁,和“笨重的紫砂壶”完全不同,主打一个轻量级。

他测试了几遍流程,确认所有API都能正常调用,然后打开HostLoc,发布了一个帖子:

“【内测通知】雨云自研控制面板即将上线,诚邀10位用户参与内测。”

帖子内容简单明了:注册雨云账号,申请加入内测,就能优先体验全新的在线控制面板,支持在线重启、重装、查看服务器状态等功能。

他留了自己的邮箱,要求用户发邮件申请。

帖子发出去不到十分钟,他的邮箱就被塞爆了。

最早回复的,是风之旅人。

“林总,我要内测,我雨云的老用户了,必须给我一个名额。”

第二个是老陈运维:

“林总,我们公司有三台服务器在你那,给我一个名额,我帮你测测稳定性。”

然后是其他几个老客户,加起来一共十二个申请。

林语挑了一台性能最好的节点,部署了控制面板的前端和后端,然后把内测地址和账号密码发给了这十二位用户。

第一批内测用户,选定了。


晚上七点,林语开始正式测试。

十二个用户陆陆续续登录了面板。

第一个反馈的是风之旅人:

“林总,面板用着还挺顺,界面好看,比紫砂壶强了不知道多少倍。”

林语嘴角微微上扬,回复道:“感谢支持,有任何问题和建议,随时提。”

第二个反馈的是老陈运维:

“林总,我试了一下重启功能,挺快的,不过有个问题,重装系统那个弹窗,能不能加一个二次确认?我怕手滑点错了,把客户数据弄没了。”

林语觉得这个建议很有道理,立刻加了一个确认弹窗,让用户输入“yes”才能触发重装。

第三个用户反馈了一个功能问题:“林总,有没有一键换成IP的功能?我那台机器老是被攻击,换个IP就能缓解一下。”

林语想了想,这个功能倒是不难实现,但需要配合后端流量调度。他回复道:“这个功能后面会加,现在先集中精力把核心功能做好。”

很快,时间就到了晚上十点。

大部分用户都测试完了,反馈基本正面——界面简洁、操作流畅、功能齐全。

林语心里挺高兴。

他辛苦写了一个月的代码,终于有了第一版可用的产品。

虽然还不完美,但至少,是一个能用的产品。

他正准备关掉电脑去睡觉,忽然收到一封邮件。

发件人的ID是“a_bug_hunter”。

邮件标题是:“【漏洞报告】控制面板存在跨站请求伪造漏洞,可获取管理员权限。”

林语的心跳猛然加速。

他点开邮件,里面写得很详细:

“林总你好,我是你面板的内测用户。我刚才测试了一下,发现用户端的API接口有一个漏洞。在更换服务器IP的接口里,后端没有对请求来源做校验,攻击者可以通过构造一个特殊的HTML页面,诱导管理员点击,从而触发更换用户名下任意服务器的IP的操作。

更严重的是,如果你把管理员的Session写在Cookie里,而且没有设置SameSite属性,攻击者甚至可以拿到管理员的登录态,直接调用所有管理接口。

我已经复现了这个漏洞,并成功更换了风之旅人那台服务器的IP。这是他现在的IP地址:x.x.x.x,你可以去后台核查。我没有做任何其他操作,放心。

建议你立刻下线面板,修复这个漏洞。修复方法:为所有写操作加上CSRF Token验证,并且设置Cookie的SameSite属性为Lax或Strict。

——a_bug_hunter。”

林语看完这封邮件,后背瞬间冒出一层冷汗。

他立刻打开后台,查了一下风之旅人的服务器IP。

果然,IP地址被改了,变成了邮件里写的那个陌生地址。

他心里一阵凉意。

这个漏洞,太致命了。

如果被攻击者利用,可以直接更换雨云所有客户的服务器IP,造成服务中断、数据丢失。

更可怕的是,如果攻击者拿到了他的管理员Session,可以直接修改所有服务器的配置、密码,甚至删除数据。

他果断关掉了面板的服务,把前端的nginx配置改成了403。

然后,他打开服务器的终端,检查了后端API代码。

他确实没有设定CSRF Token验证的机制,也没有设置Cookie的SameSite属性。

这个bug,完全是他在赶工期时遗漏的。

他深吸一口气,坐直了身体。

这件事情,让他从内测的喜悦中清醒过来。

原来自己的代码,还有这么大的漏洞。

而且,那个报告漏洞的用户,居然真的动手验证了——把风之旅人的服务器IP改了。

这个操作,虽然证明了漏洞的存在,但也暴露了一个问题:如果这个漏洞落在攻击者手里,后果不堪设想。

他需要感谢这个“a_bug_hunter”,但同时也要反思,自己在开发的时候,为什么没有考虑这些安全问题。

他点开邮件,准备回复感谢,忽然注意到邮件底部附了一行小字:

“帮你一把,下次写代码别这么受。——搬砖狐”

林语愣住了。

他盯着屏幕上的那行字,看了好几秒。

搬砖狐?

她怎么会在这里面?

他赶紧打开搬砖狐的博客,找到她的ID,确认了一下。

没错,“a_bug_hunter”这个ID,在搬砖狐的博客里出现过——是她炫耀自己“全网最强漏洞猎人”的身份。

他忍不住笑了出来。

这姑娘,居然用自己的用户身份,潜入了他的内测?

而且,她一上来就找到这么大的一个漏洞,还动手验证了。

她到底是怎么做到的?

他正想着,手机忽然震了一下。

搬砖狐的微信消息:

“怎么样,被吓到了?”

林语嘴角抽搐了一下,回复道:

“确实被吓到了。你什么时候申请内测的?”

“下午你发帖子的时候,我就申请了。”

“你怎么知道是我的邮箱?”

“我在HostLoc上关注了你,你一有帖子我就看到了。”

“……”

“你的面板前端正交做的还行,就是后端的安全性差了点。我帮你测试了一下,发现了四个小问题,全在邮件里写了。你自己去修吧。”

林语愣住了。

四个小问题?

他点开邮件仔细看了看,邮件正文里只提到了一个漏洞。但他往下翻,发现邮件底部还有一行小字:

“还有三个小Bug,我测试的时候顺手做成演示了,你自己复盘去吧。”

林语:“……”

他心里一阵复杂。

既感激,又有点被碾压的感觉。

他深吸一口气,回复道:

“谢谢,帮我大忙了。”

“客气,就当是我对你那篇博客的回礼。写得很受,很文艺,我喜欢。”

“……”

“对了,你那个吉他的视频,陈胖子发朋友圈了,我看到了。”

林语:“……”

他完全不知道,昨天晚上陈胖子居然还发了朋友圈。

他点开朋友圈一看,果然,陈胖子在凌晨发了九宫格,其中有一张是他在阳台弹吉他的侧脸,配文是:“林老板的爱情故事,正在谱写中。”

底下是十几个人的点赞,还有几条评论:

“卧槽林语还会弹吉他?”

“为爱发电呢?”

“被攻击还能弹吉他,心态真好。”

“这侧脸,有点帅啊。”

林语:“……”

他放下手机,揉了揉太阳穴。

这陈胖子,真是坑死他了。

但他转念一想,又忍不住笑了。

搬砖狐看他弹吉他的视频,居然还来帮他找Bug。

这姑娘,确实有点意思。

他重新打开编辑器,把CSRF Token验证的逻辑加了进去。

然后修改了Cookie的SameSite属性。

最后,他手动审计了一遍所有API接口,确认没有其他的漏洞。

修复完成,已经凌晨一点了。

他看了看时间,准备去睡觉。

躺下之前,他看了一眼搬砖狐的微信头像——那只举着扳手的狐狸,笑得得意洋洋。

他嘴角不自觉地扬了扬。

心里默默说了一句:“下次,我一定不写漏洞代码了。”

他关掉灯,闭上眼睛很快就睡着了。


第二天早上,林语是被手机铃声吵醒的。

他迷迷糊糊地摸到手机,看了一眼,是风之旅人的电话。

“林总,你那个面板怎么下线了?我昨天还一直用的。”

林语坐起来,清了清嗓子:“风哥,面板出了点安全漏洞,我临时下架修复了,预计今天下午重新上线。”

“安全漏洞?严重吗?”

“不算严重,被一个用户发现了,已经修复了。感谢您的关注。”

“那行,修好了通知我一下,我继续帮你测。”

“好的好的,谢谢风哥。”

挂了电话,林语起床洗漱。

他准备今天把面板的修复版本部署上去,同时把昨晚的漏洞日志整理一份,发给搬砖狐,请她帮忙再次审查。

中午十二点,他完成所有修复工作,重新上线了控制面板。

这次,他给面板加了一层额外的安全防护——在管理后台所有写操作的API接口里,都加入了签名算法。每一个请求都必须附带一个由服务端签发的Token,并且Token的有效期只有三十分钟。

同时,他还为每个用户分配了一个独立的API密钥,确保即使一个用户的密钥泄露,也不会影响其他用户的数据。

一切准备就绪,他在HostLoc上发了一条公告:

“雨云控制面板已修复安全漏洞,现已重新上线。感谢用户‘a_bug_hunter’的指正,感谢所有参与内测的用户的支持。我们将继续努力,为用户提供更稳定、更安全的产品服务。”

这条公告发出去没多久,搬砖狐的微信消息就到了:

“算你懂事,把功劳给我了。”

“这是事实。”

“行吧,你这次表现还行。不过提醒你一句,你的后端是用Go写的吧?Go的并发模型有一个经典的坑,你后面注意一下。”

林语愣了一下。

“什么坑?”

“goroutine和channel的配合使用,如果你在处理多个请求时,共享了同一个变量,可能会导致数据竞争。建议你在每个handler里都做资源隔离,或者直接用读写锁。”

林语认真地看完,回复道:“好的,我后面注意。”

“这就对了。对了,你昨晚弹吉他的视频,我发到我的博客上了,你猜评了多少条?”

林语:“……”

“快说,多少条?”

“我猜,没多少。”

“错,有七条。”

“都是什么?”

“有两条是夸你侧脸帅的,有三条是嗑CP的,还有一条问你是不是雨云的小老板。”

“那最后一条怎么说?”

“最后一条是我回复的:是的,他就是那个含泪处理提现的狗老板。”

林语:“……”

他忍不住笑了出来。

这姑娘,是真的会。

他放下手机,继续写代码。

窗外的阳光透过窗户洒进来,照得他眼睛有点晃。

他抬头,看了一眼窗外的广州CBD。

远处的高楼大厦里,那些大厂的logo闪烁着光芒。

他忽然想到,也许有一天,雨云的logo也能挂在那里。

不是为了装逼,而是为了证明,一个文科生,一个穷学生,一群“够瑟”的人,也能在互联网行业,做出真正有价值的东西。

他笑了笑,转回头专注地敲下最后几行代码。

面板重新上线后,十二个内测用户陆续登录测试,反馈比第一次更好。

漏洞修复后的面板,稳定性和安全性都有了极大的提升。

风之旅人甚至发了一个帖子,夸雨云的面板“比某些大厂的还好用”。

林语看到这个评价,心里挺高兴的。

他把搬砖狐的博客地址,加到了浏览器的收藏夹里。

放在第一个位置。

然后他在注释里又加了一句:

// 为了那些给我们找Bug的人

这一次,他的嘴角,是真的笑了。

窗外的阳光,落在屏幕上,闪亮得像星星。

他从座位上站起来,伸了个懒腰。

下周,他需要把打印模块做完,还要继续完善控制面板的功能。

雨云的路,还很长。

但这条路,他走得很坚定。

因为他知道,有人正在看着他。

一个举着扳手的狐狸。

一个会帮他找Bug、也会看他弹吉他的姑娘。

他登录博客后台,准备写下今天的日志,却看见搬砖狐发了一条新的评论:

“写得还不够瑟,不过比昨天好了。”

他轻笑着,回复道:“慢慢来,还有的是机会。”

然后他关掉页面,拉过键盘,继续敲起代码。

键盘哒哒哒的声音,像是对着命运的号角。

而他的心里,有一团火。

烧得正旺。

第11章 狐狸留下的漏洞

林语关上电脑屏幕,看了一眼窗外的天色。

广州的黄昏来得突然,金色的光从高楼间隙里斜射进窗户,刺得他眯起眼睛。

他刚才在代码里加了那行注释——

// 为了那些给我们找Bug的人

这句话让他心情莫名地好了起来。

他拿起手机,看到搬砖狐的微信头像安静地躺在消息列表里,最后一条消息是一个多小时前发的了。

他想了想,还是回了一句:“面板我已经修复了,你要不要再帮我测一遍?”

等了大概三分钟,没有回复。

又等了五分钟,还是没有。

林语放下手机,决定不打扰她了。也许她在忙,也许她已经睡午觉了。

他打开终端,开始仔细审查自己刚才提交的修复代码。

CSRF Token验证他已经加上了,用的是每个Session随机生成的Token,强制在写操作的API请求中校验。

Cookie的SameSite属性改成了Strict模式,确保跨站请求无法携带Cookie。

他还给所有管理后台的接口加了一层请求签名机制——每个请求需要附带一个由服务端签发、有效期30分钟的Token,并且每个Token只能使用一次。

这样一来,即使攻击者截获了一个请求,也不能重放攻击。

他检查了一遍所有接口,确认代码逻辑正确,然后开始部署新版本。

面板重新上线后,他在HostLoc上更新了公告,感谢了“a_bug_hunter”的反馈。

这条公告发出去之后,群里几个老用户开始讨论:

“卧槽,雨云这么快就修复了?”

“那个a_bug_hunter是谁?这么牛逼?”

“林老板的速度可以啊,从发现漏洞到修复,不到24小时。”

“果然是稳步推进,不要捉急的典范。”

林语看着这些评论,心里有点得意。

但更多的是一种警惕——这次漏洞,让他意识到自己在安全方面的知识还很薄弱。

他之前觉得,自己写的Go代码,跑在服务器上,没人能轻易攻破。

但搬砖狐只用了一个最简单的CSRF漏洞,就拿到了管理员权限。

这让他想起KK之前提醒他的那句话:“你的密码太弱了,rainyun这种六位数的密码,爆破器跑几分钟就出来了。”

看来,他需要系统的安全知识。

他在笔记本上写下一行字:

“安全学习计划:

  1. OWASP Top 10
  2. Go安全最佳实践
  3. 自动化代码审计工具”

写完,他把笔记本合上,打开编辑器,继续写控制面板的代码。


这时,手机忽然震了一下。

林语拿起来,看到是搬砖狐的消息:

“我刚吃完饭回来,你修好了?”

“嗯,修好了。你帮我再测一次?”

“现在?”

“现在。”

“行,等下。”

林语等了大概五分钟,手机又震了。

搬砖狐的消息是:“我测试了,这次OK了。没有问题。”

林语松了一口气:“谢了,帮了大忙。”

“客气啥,你那个面板前端写的不错,就是后端的代码有点受。”

“受?”

“就是不够瑟的意思。”

林语:“……”

他忍不住笑了出来。

这姑娘,是真的会。

他正要回复,搬砖狐又发了一条消息:

“对了,我刚才测试的时候,顺手做了一份渗透测试报告,发你邮箱了。你自己去看看吧。”

林语愣住了。

渗透测试报告?

他赶紧打开邮箱,果然看到一封新邮件,标题是:“雨云控制面板渗透测试报告(内测阶段)”

邮件正文:

“测试目标:雨云控制面板(内测版)
测试时间:2021年10月XX日
测试人员:a_bug_hunter(搬砖狐)
测试结论:面板前端质量优秀,后端安全性较差,存在多个安全隐患。具体如下:

  1. CSRF漏洞(已验证)- 已修复
  2. XSS存储型漏洞(未验证)- 已修复
  3. SQL注入(测试未发现,建议再加一层参数校验)
  4. 项目管理权限提升漏洞(测试未验证,建议关注)

建议:

  • 所有API写操作增加CSRF Token验证(已修复)
  • 用户输入做XSS过滤(已修复)
  • 数据库操作全部使用参数化查询(建议完善)
  • 增加管理员操作日志审计功能
  • 定期进行安全审查”

林语看完这封邮件,心里一阵感动。

这份报告,做得比他在学校里写的任何作业都要认真。

一个素未谋面的网友,居然花时间给他做了一个完整的渗透测试。

而且,她是从内测申请页面进去的,她完全可以猜到雨云的内部架构,但她没有利用这个权限做任何坏事,而是主动向他报告了漏洞。

他想了想,回复道:“报告收到了,很详细。谢谢你。”

搬砖狐秒回:“不客气。不过我要提醒你一句,你那个后端代码,真的有点受。”

林语:“……”

“不是受,是不够瑟。”

“那怎么样才算够瑟?”

“你把你那个面板前端,做成全自动化的,后端一键部署,用户什么都不用管,就叫够瑟。”

“……”

林语盯着屏幕,久久没有回复。

全自动化的,后端一键部署?

他想到了一个想法——如果雨云不只是卖虚拟主机,而是卖完整的云服务器呢?

他之前一直在做虚拟主机,主要是因为成本低、资源要求小、管理简单。

但如果他推出VPS产品呢?

VPS用户拥有独立的root权限,可以自由安装软件、配置环境,而且资源隔离性更好。

虽然管理复杂度会增加,但利润空间也大得多。

他仔细算了一下成本:

一台性能较好的服务器,放在佛山的企业级机房,每个月租金加上带宽成本,大概需要两千元左右。

如果把这台服务器分成十台VPS,每台配置2核CPU、2GB内存、40GB SSD、5M带宽,每台每月卖99元,一个月收入是990元。

扣除成本,每台服务器的毛利大概在六百元左右。

如果是二十台VPS,毛利就能到两千多。

虽然利润率不如虚拟主机高,但胜在稳定——VPS用户续费率很高,因为数据迁移成本高。

而且,VPS可以吸引企业用户。

他越想越兴奋,立刻打开终端,开始写VPS产品的代码。


第二天早上,林语是被电话铃声吵醒的。

他从床上爬起来,看了一眼手机——陌生号码,归属地佛山。

他接起来,客气地问:“您好,请问是?”

“你好,是雨云科技的林总吗?”

声音是个中年男人,语气比较客气。

林语一愣,雨云科技?他什么时候注册了公司?

但他还是淡定地回道:“是我,请问您是?”

“我是佛山南海区一家小公司的老板,姓王。我在HostLoc上看到你发的帖子,想了解一下你们的VPS产品。”

林语心跳加速了。

VPS?他昨晚才确定了想法,还没正式发布呢,怎么就有人问了?

但他还是装出一副老成的样子:“哦,我们的VPS产品还在内测阶段,不过您可以跟我说一下您的需求。”

“我们要做企业官网的,需要一台稳定一点的服务器,配置不用太高,2核4G就行,带宽别太差。”

林语脑海里立刻浮现出价格方案。

2核4G,40GB SSD,10M带宽,月费大概可以定到169元。

他开口报了个价:“王老板,我们的VPS月费是169元,支持支付宝、微信支付,后台可以自助管理,您随时可以部署。”

“169元?质量如何?”

“我们用的都是企业级SSD,机房在广州核心节点,延迟很低。而且我们支持一键部署PHP、Nginx、MySQL这些常见的环境,省去您运维的麻烦。”

王老板沉默了一下,问道:“能开发票吗?”

林语愣住了。

开发票?

他现在连公司都没有注册,哪儿来的发票?

但他不能直接说不行,要不然这单生意就黄了。

他想了想,说道:“可以的,不过我们最近在换财务系统,发票可能会有延迟,大概一周内能开出来。您方便先试用吗?试用期内不满意,随时可以退。”

王老板:“一周内能开出来?”

“能,我们开了票就给您发电子版。”

“那行,先给我来一台试用一下,用三天,没问题下周定一年。”

林语挂了电话,心跳得很快。

一年?

一年就是169乘以12,总共2028元。

这对他一个人运营的雨云来说,是一笔不小的收入。

但问题是,他没有公司,开不了发票。

他坐在床上沉思了一会儿,忽然想到了一个人——风之旅人。

风之旅人在广州做运维,认识不少公司老板,说不定他有办法。

他立刻打开微信,给风之旅人发了一条消息:

“风哥,问您个事。我一个朋友想开发票,但他没有公司,您认识能做代开发票的公司吗?”

风之旅人回得很快:“你想开发票?”

“嗯,有个客户要包年,但要求对公开发票。”

风之旅人沉默了几秒,回复道:“你这胆子挺大啊,没注册公司就敢接企业单?”

林语:“……”

他确实有点心虚。

但转念一想,他的服务已经稳定运行快一个月了,客户满意度很高。如果能解决发票问题,雨云就能真正开始商业化运营。

“我不是接大单,就是一台VPS,一年的费用2000多块。对方是小公司的老板,不会查得很严。”

风之旅人回复:“那不如这样,你直接注册一个公司。一人的有限公司,注册资金3万就行,找代办大概一千多块,一周就能办好。”

林语愣住了。

注册公司?

他从来没想过这个选项。

但他又一想,这确实是个一劳永逸的办法。

有了公司,就能开发票,以后也能接更多企业客户。

而且,他也需要一个合法的身份来开展业务。

他回复道:“风哥,代办注册公司的事,您有推荐的吗?”

“我认识一个,在番禺那边,我之前用过,很靠谱。你要的话我把联系方式推给你。”

“好,谢谢风哥!”

“不客气。对了,你的面板做得确实不错,我现在还在用。你要注册公司了,以后生意肯定能做起来的。”

林语心里一暖,道了声谢。

他关掉微信,打开浏览器,开始查一人有限公司的注册流程。


下午,林语按照风之旅人给的推荐,联系了那家代办公司。

对方是个三十多岁的广州本地人,说话很爽快:“林老板是吧?风哥跟我打过招呼了。你要注册一人有限公司,对吧?”

“对。”

“注册资本写多少?”

林语想了想,说:“3万。”

“行。人员的话,你一个人当股东、法人、执行董事,再找一个监事就行。监事不能由你自己担任,你认识人吗?”

林语想了想——他认识的女生里,只有搬砖狐最靠谱。

虽然他们没见过面,但他觉得她肯定愿意帮忙。

他说:“我找一个朋友当监事,她在外地。”

“没问题,现在注册不用到场,只要她提供身份证复印件和手机号就行。”

林语挂了电话,立刻给搬砖狐发了一条微信:

“问你一个事。”

“什么事?”

“我想注册一个公司,需要一个人当监事。你愿意吗?”

搬砖狐秒回:“监事?当监事不干活吧?”

“不干活,就挂个名。”

“行,身份证复印件和手机号发你。”

“谢谢!”

“不客气,但你要抵债。”

“……”

林语嘴角抽搐了一下,还是回复道:“怎么抵?”

“等你公司注册下来,多请我吃几顿酸菜鱼。”

林语忍不住笑了。

他回复道:“成交。”


三天后,代办公司发来消息:“林老板,你的营业执照已经办下来了。广州市润雨科技有限公司,注册资金3万元整,法人是你,监事是搬砖狐的身份证复印件上传的。”

林语看到这个消息,心里一阵激动。

他终于有了自己的公司。

虽然只是一个小小的公司,但至少,他有了合法的身份。

他立刻在微信上告诉了搬砖狐:“公司注册下来了。”

搬砖狐秒回:“叫什么?”

“广州市润雨科技有限公司。”

“润雨?就是你那个雨云的名字?”

“对,我准备把公司和品牌统一起来,以后就叫广州润雨科技有限公司。”

“牛逼。那我现在是监事大人了?”

“是的,监事大人。”

“那监事大人有什么特权吗?”

“以后你吃酸菜鱼,我请客。”

“可以,这个特权够了。”

林语笑了笑,继续办下面的事。

他需要去银行开对公账户,然后申请税务登记,再去刻公章、财务章、法人章。

这些手续,代办公司都帮他办了,他只需要去确认几个签字就行。

一周后,所有的证件都办齐了。

他拿到了营业执照、公章、财务章、法人章,还有银行开户许可证。

他第一次觉得,自己真的在创业了。

之前,他只是一个在宿舍里写代码的学生,雨云只是他一个人搭起来的虚拟主机平台。

但现在,他有公司了,有对公账户了,能开发票了。

他给王老板打了个电话:“王老板,发票可以开了。您方便把开票信息发我吗?我让财务开好发您。”

王老板:“这么快就好啦?”

“嗯,公司注册下来了,可以正常开票了。”

“那就行。开票信息我发你微信,开好发票我直接打钱。”

挂了电话,林语心里的石头终于落地了。

他打开编辑器,继续写VPS产品——现在,企业客户已经找上门了,他必须把产品推出来。


晚上,林语在家里开了个小型庆祝会。

说是庆祝会,其实就是他买了三瓶啤酒、一包花生米、一盒鸡爪,一个人坐在阳台上,对着窗外的高楼大厦喝。

他给搬砖狐发了视频邀请。

对方接起来的时候,林语看到她正坐在电脑前,屏幕上是一行行代码。

“你在干嘛?”

“写代码。你呢?”

“庆祝公司成立,喝了点酒。”

搬砖狐愣了一下,然后笑出声:“就你一个人?那也太惨了吧?”

林语笑了笑:“没办法,我一个人创业。你又不在这里。”

“那是你自己选的路。不过,你那个公司注册下来,以后是不是要招人了?”

林语想了想,说:“暂时还没这个打算。我一个人还能撑一段时间。”

“你一个人做,恐怕撑不了多久。”搬砖狐的语气变得认真起来,“你现在的业务,只有虚拟主机和控制面板。如果VPS推出的话,运维量会翻倍。你一个人管理几十台服务器,迟早会出问题。”

林语沉默了几秒。

她说的没错。

他现在只有一台服务器在跑虚拟主机,维护起来还算轻松。

但如果VPS推出去,他至少需要租十台以上的服务器,分别部署在不同的机房。

到时候,他一个人肯定忙不过来。

但他现在没钱招人。

他说:“我知道。但现在我还不能招人。等业务稳定了再说。”

搬砖狐点点头:“那行。你别硬撑。有什么需要帮忙的,找我。”

“好。”

挂了视频,林语继续喝着啤酒,望着远处的灯火。

他心里有一个想法——明天,他就要发布VPS产品了。

虽然只有他一个人,但雨云的路,总算有了方向。

他关掉灯,躺在沙发上,闭上眼睛。

耳边,还能听到窗外高架桥上的车声。

但他已经不再觉得孤独了。

因为他知道,有一只举着扳手的狐狸,正在另一个城市的电脑前,默默地支持着他。

他嘴角扬起,很快就睡着了。


第二天早上,林语醒来的时候,发现自己已经关了灯,手机电量掉到了10%。

他看了一眼时间——早上七点半。

他赶紧爬起来,洗漱了一下,然后打开电脑。

今天,他需要完成VPS产品的部署和上线。

他打开控制面板的后台,开始新建一个“云服务器”产品类别。

他需要设计产品页面、定价策略、部署流程。

这个新产品,他命名为“雨云VPS-基础型”。

配置:2核CPU、2GB内存、40GB SSD、5M带宽。

月费:99元。

年费:直接打八折,只要950元。

他想了想,觉得这个定价还算合理——比国内的云盾便宜百分之三十,但对于个人站长和企业来说,配置已经够用了。

他写了一个产品介绍页面,把VPS的优势、配置、价格都列在上面,还附了一张截图。

然后,他把产品上线,在HostLoc上发了一个新帖子:

“雨云VPS正式上线,基础型仅需99元/月,企业级SSD+高防机房,支持更换系统、一键部署环境。欢迎使用内测优惠码:FOX2021(前20名享受首月五折)”

帖子刚发出去,很快就有十几个人回复:

“卧槽99元?云盾同配置不是199吗?”

“林老板这价格给力啊!”

“五折优惠码FOX2021已用,已下单。”

“我也下单了,期待。”

“已付款,等待开通。”

“前排围观,等我发财了也买。”

林语看着这些评论,心里很高兴。

他正要回帖感谢大家,手机忽然震了一下。

他拿起来一看,是王老板的电话:“林总,发票我收到了。没问题,我现在打钱给你。”

很快,他的支付宝收到一笔2028元的转账。

林语看着那个数字,心跳加速了。

这是他接到的第一笔企业订单。

虽然金额不大,但代表着一个重要的开始——

雨云,现在不是一个人的玩票了。

它有了第一个企业客户。

他深吸一口气,把手机放回桌上,继续处理VPS的开通工作。


中午,林语收到了搬砖狐的消息:

“我看到你发帖子了,VPS产品上线了?”

“嗯,刚上线的。”

“定价还行。不过你那个优惠码叫FOX2021?”

“对啊,致敬你帮我测漏洞的付出。”

搬砖狐秒回:“不够瑟。”

林语:“……”

“你下次起优惠码,叫‘为了无法计算的快乐’试试。”

林语忍不住笑了:“行,下次一定。”

“对了,你那个控制面板,现在能自动部署VPS了吗?”

“暂时不能,还是需要手动操作。我在写自动部署脚本,但还没写好。”

“你写的部署脚本,用的什么语言?”

“Go。”

“可以。Go写部署脚本性能好。需要帮忙吗?”

林语想了想,说:“暂时不需要。等我遇到卡壳的地方再来找你。”

“行。对了,你那个‘为了无法计算的损失’的博客,现在阅读量多少了?”

林语打开博客后台,看了一下统计:“四千多阅读量了。”

“四千多?那你发了几天了?”

“上周发的,大概五天左右。”

“算不错了。我第一次写的博客,发了一周才一百多阅读量。”

“你写的什么?”

“介绍Vue源码的。太硬核了,没人看。”

林语:“……”

他想了想,认真回复道:“你写的技术文章,应该很多人喜欢才对。你那个动态像素狐狸的博客首页,就很有特色。”

搬砖狐沉默了几秒,才回复:“算你会说话。”

林语笑了。

他知道,这只狐狸脾气温和,但也很好说话。

只要他认真夸她一句,她就会开心。


晚上,林语坐在电脑前,处理完当天所有的VPS开通工单。

他统计了一下——今天一共开通了六台VPS,加上之前虚拟主机的十二个用户,现在雨云一共服务了十八个付费客户。

按照最低配置99元计算,他这个月的毛利,大约在两千元左右。

扣除服务器成本、带宽费用、代办费用,实际到手大概还有一千多元。

虽然不够交房租,但他心里已经有了完整的商业计划。

他打开OneNote,写下接下来的计划:

“1. 自动部署脚本完成
2. 增加一台高防服务器(防止攻击)
3. 秋天开始推双十一活动
4. 研发雨云自动备份系统
5. 研究企业客户直销渠道”

写完之后,他关闭笔记本,躺在床上。

窗外的月光透过窗帘的缝隙照进来,落在他的脸上。

他闭上眼睛,脑海里浮现出今天王老板打钱的那一幕。

一个企业的老板,因为信任他,直接付了一年的款。

这种信任,比什么都有力量。

他翻了个身,心里默默想——

“雨云,你会做大的。”

“总有一天,你会挂上那个大厦的logo。”

“为了无法计算的快乐。”

他笑着,沉沉睡去。

第12章 无证之愁

第二天早上,林语是被手机震动吵醒的。

他迷迷糊糊摸到手机,看到是风之旅人发来的消息:“林老板,我有个朋友想买你的VPS,但他公司要求必须能开对公发票,你那边能开吗?”

林语揉了揉眼睛,清醒了一下,回复道:“能开,我公司已经注册下来了。”

“那就行。我让他直接找你。”

过了十分钟,一个叫“广深网络科技-刘总”的微信号加了他好友。

林语通过验证,对方直接发了条消息:“林总你好,我是风之旅人的朋友,听说你这边在做云服务器?”

“对,我现在有VPS基础型,2核2G,5M带宽,99元一个月。”

“价格确实便宜。但我这边有个问题——我们公司是新成立的,财务要求必须跟有正规资质的供应商合作。你公司叫什么名字?”

“广州市润雨科技有限公司。”

对方沉默了几秒:“这家公司……我去天眼查上搜了一下,怎么查不到?”

林语愣住了。

他赶紧打开天眼查APP,输入“广州市润雨科技有限公司”,结果显示——

“暂无相关企业信息。”

他反复确认了好几遍,甚至换了“润雨科技”等关键词,都没有任何结果。

他立刻给代办公司打电话:“喂,我的公司为什么在天眼查上查不到?”

对方解释道:“林老板,公司刚注册下来,工商信息同步到三方平台需要时间,一般需要7-15个工作日。你现在查不到是正常的,你等下周再查就有了。”

林语松了口气,转告刘总:“刘总,公司刚注册,工商信息还没同步到天眼查,下周就能查到了。”

刘总回复道:“那我下周再联系你,到时候签合同开发票。”

挂了电话,林语总觉得哪里不对劲。

他想了想,还是决定让代办公司加急处理信息同步。

但对方告诉他:“这得等,不是我们能控制的。”


下午,林语正在写自动部署脚本,收到了王老师的微信:“小林啊,你跟风之旅人他们合作的学工系统,目前进展怎么样了?”

林语回复道:“王老师,进度还可以。前端框架已经搭好了,后端接口也在写。预计月底能完成初版。”

“那就好。对了,我这边有个事想跟你聊聊——学校现在在推大学生创新创业项目,你有兴趣参加吗?”

林语的耳朵竖了起来。

创新创业项目?那意味着可能拿到学校的政策支持,比如办公场地、启动资金、甚至导师指导。

“有兴趣。王老师,有什么条件吗?”

“条件倒是不复杂。你需要有一个在校学生的身份,最好是注册了公司的。我这边可以帮你申请一个大学生创业孵化基地的工位,免费的。”

林语的心跳加快了。

免费的办公工位!他现在的“办公室”就是宿舍的书桌,有个正经的工位,对他来说简直是雪中送炭。

“王老师,我需要准备什么材料?”

“你先写个创业计划书,把雨云的项目介绍一下。然后我帮你挂靠到信息学院的创新创业项目里。挂靠成功后,你就可以使用孵化基地的工位了。”

林语连连答应,立刻打开Word,开始写创业计划书。

他花了整整两个小时,把雨云的商业模式、市场定位、竞争优势、团队构成、财务预测都写了一遍。

写完发给了王老师,对方回复道:“内容不错,我明天下课帮你问问。”


第二天下午,王老师发来消息:“小林,我帮你问了信息学院的创新创业指导老师,但他拒绝了。”

林语心里一沉:“为什么?”

“他说你这个项目‘跟信息技术有关,但不够技术创新’。而且他说你的项目没有专利、没有论文、没有产学研合作,挂靠上去‘没有亮点’,可能影响学校创新创业项目的评审。”

林语愣住了。

他的雨云,虽然没有专利,没有论文,但它是实打实的产品,实打实的用户,实打实的收入。

可现在,因为这些“硬指标”,他被拒之门外。

他沉默了几秒,回复道:“王老师,那有没有其他办法?比如挂靠别的学院?”

“我也问过其他学院的老师了。他们都说你这个项目‘不符合本学院的专业特色’,建议你找商学院或者计算机学院。但这两个学院的创新创业项目都已经满员了。”

林语感到一阵无力。

原来,哪怕你有产品、有用户、有收入,没有“合规”的帽子,你就是进不了学校的大门。

他第一次深刻地明白——自己不是大学生创业者,只是一个在校学生,在体制的缝隙里艰难求生。

他叹了口气,回复道:“谢谢王老师,我再想想办法吧。”

王老师回复道:“小林,你别灰心。实在不行,你可以先把公司注册下来,等公司的运营时间长了,再看看有没有机会跟学校合作。”

林语想了想,觉得王老师说得对。

他现在最重要的事,是把公司彻底做合规——有对公账户、有税务登记、有稳定的开票能力。

他打开电脑,继续写自动部署脚本。

但心里,却始终压着一块石头。


晚上,林语在雨云用户群里发了一条消息:

“各位,有个事跟大家说一下。雨云现在注册了公司,能开正规发票了。但公司在第三方平台的公示需要时间,所以暂时不能在企查查、天眼查上查到。请各位老板放心,下周就能查到了。”

群里很快有人回复:

“林老板,你这个公司叫什么名?”

“广州市润雨科技有限公司。”

“我搜一下……确实查不到。”

“正常的,新公司嘛。我公司注册的时候也是等了两周才显示。”

“林老板稳,期待你做大做强。”

林语看着这些回复,心里稍微好受了一些。

但他知道,这只是一个开始。

真正的困难,还在后面。


那天晚上,林语躺在床上,翻来覆去睡不着。

他想到自己创业以来遇到的种种困难——服务器被攻击、客户拖欠尾款、被陈经理造谣、被学校创新创业项目拒之门外。

每一道坎,都让他觉得自己快要撑不住了。

但他知道,自己没有退路。

他翻了个身,拿起手机,打开微信,给搬砖狐发了条消息:“睡了吗?”

对方秒回:“还在写代码。怎么了?”

“没啥,就是睡不着。”

“又遇到问题了?”

林语想了想,把事情简单说了一下:“我今天想挂靠学校的创新创业项目,被拒绝了。”

“为啥?”

“因为我没有专利、没有论文、没有产学研合作。”

搬砖狐沉默了几秒:“你那个雨云,有用户,有产品,有收入。这些东西不比论文强?”

“但学校不认。”

“那就别靠学校了。你现在自己有公司,虽然还没完全合规,但至少能开票了。你先把公司跑起来,等业务做大了,学校自然回来找你。”

林语觉得她说得有道理。

他回复道:“你说得对。我不纠结了。”

“这就对了。赶紧睡觉,明天继续写代码。”

“好。”

林语放下手机,终于闭上了眼睛。


第二天早上,林语起来的时候,发现自己的手机震动了一下。

他拿起来一看,是风之旅人发来的消息:“林老板,刘总那边怎么说?他跟你签合同了吗?”

林语回复道:“还没。他要求公司能在企查查上查得到,现在查不了,说要等等。”

“那你公司什么时候能查到?”

“代办说大概一周到两周。”

“一周?那刘总他那边等不了。他这边有个项目,月底前需要采购一批服务器,下周就要确定供应商。”

林语的心沉了一下。

这意味着,如果他的公司信息不能在下周之前同步到天眼查,这笔订单就黄了。

他想了想,回复道:“风哥,你能不能帮我跟刘总说说,先以个人身份签约?等我公司信息同步了,再补对公合同和发票。”

“我试试。”

过了半小时,风之旅人回复道:“林老板,我跟刘总谈了。他说可以个人签约,但有个条件——价格要再压一成。”

林语愣住了。

现在的价格是99元一个月,一年950元。如果再压一成,就是855元一年,比原价少了近95元。

对于他来说,这个价格基本上不赚钱了,甚至还要倒贴一点服务器成本。

但他知道,这笔订单对他来说很重要。

不仅因为它是第一笔企业客户订单,更因为它的口碑效应——如果连“广深网络”这样的正规公司都用了雨云,那其他企业客户也会跟着来。

他咬了咬牙,回复道:“行,855元一年,个人签约。下周公司信息同步后,补开对公发票。”

风之旅人回复道:“够意思。我让刘总直接打钱给你。”

挂了电话,林语心里五味杂陈。

一方面,他拿下了一个企业客户,这对于一个刚起步的小公司来说,是一个很不错的成绩。

但另一方面,他也深刻地体会到了“没有合规资质”的痛苦——如果他有完整的公司信息,这笔订单根本不会被压价一成。

他坐在电脑前,沉默了很久。

然后,他在雨云用户群里,发了一条消息:

“兄弟们,我签下了一个企业客户。但被压价了一成,因为是个人签约,没有对公资质。”

群里立刻热闹起来:

“林老板,个人签约也行?这不违规吧?”

“不违规,只是没有对公发票,企业不能抵扣税。”

“林老板,你也别太委屈自己。价格低就低点,当积累口碑了。”

“对,林老板加油,等你做大了,谁还敢压你的价?”

林语看着这些评论,嘴角扬起了一丝苦笑。

他回复道:“谢谢大家。我会努力的。”


晚上,林语一个人坐在阳台上,给搬砖狐打了个视频电话。

对方接起来的时候,还是那副熟悉的画面——屏幕里是搬砖狐的脸,背后是写满代码的电脑屏幕。

“你今天怎么样?”搬砖狐问。

林语把事情原原本本说了一遍。

搬砖狐听完,沉默了几秒,然后说道:“你那个价格,还能赚钱吗?”

“不赚钱。但是能保住客户。”

“那也挺好。至少证明雨云的产品有竞争力。”

林语苦笑了一下:“你说得对。但这个过程,真的太累了。”

“累?你才刚开始。真正的创业,哪有那么容易的。”

林语看着她,忽然觉得她说话的语气很像一个资深创业者。

“你好像很懂的样子?”

搬砖狐嗤笑一声:“我虽然没创业,但我看过很多创业失败的案例。有些人倒在融资失败,有些人倒在产品不接地气,有些人倒在团队内讧。你现在的困难,只是创业路上最普通的一道坎。”

林语愣了一下:“所以你是在安慰我?”

“不,我是说你运气好。你至少还有一个愿意陪你熬夜写代码的狐狸。”

林语忍不住笑了:“你这是在夸自己?”

“当然。我不夸自己,谁夸我?”

挂了视频,林语的心情好了很多。

他走进房间,打开电脑,继续写自动部署脚本。

他知道,哪怕是赚不到钱的订单,也要把它做好。

因为雨云的路,才刚刚开始。


夜更深了。

林语关上电脑,伸了个懒腰。

他拿起手机,看到雨云用户群里,刘总发了一条消息:“林总,钱已经打到你支付宝了,855元,一年整。你下周记得补开发票。”

林语点开支付宝,果然看到了一笔855元的转账。

他回了一句:“收到,谢谢刘总。”

群里立刻有人回复:“恭喜林老板!”

“恭喜恭喜,第一笔企业订单!”

“林老板越来越强了!”

林语看着这些评论,心里暖洋洋的。

他想了想,在群里回复道:“迎男而上,男是商海的男。”

群里有人接话:“卧槽,林老板这个梗我接不住。”

“林老板你是懂谐音梗的。”

“学到了,以后遇到困难,我就说迎男而上。”

林语看到这些回复,嘴角扬起了一些笑意。

忽然,手机又震了一下。

他拿起来一看,是搬砖狐的微信消息。

“连公司都没有还敢迎难而上,佩服。”

林语愣了一下,然后笑出了声。

他回复道:“你这是在嘲讽我,还是在夸我?”

“都有。不过,你那个合同签了,以后就有底气了。加油。”

林语回复道:“好。等我公司信息同步了,我就正式上线。”

“这才像话。行了,别熬夜了,赶紧睡。”

“好。”

林语关掉手机,躺在床上。

他知道,这笔订单虽然没赚到钱,但至少让雨云迈出了第一步。

他闭上眼睛,脑海里浮现出王老师说的“不合规”和刘总压价的场景。

他暗暗下定决心——

“总有一天,我要让雨云变得足够大,大到谁也不敢轻易压价。”

窗外,远处的高楼大厦灯火璀璨,仿佛在向他招手。

他嘴角扬起,沉沉睡去。