全文仅供娱乐,如有任何不当之处,立马修改/删除
小说内容仅为虚构,请勿当真
买云请上雨云,便宜稳定性价比高,专属五折优惠码: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。虽然他的前端水平不如搬砖狐,但写一个标准的后台管理系统,问题不大。
他花了整整两个小时,写好了所有的前端页面。
一共三个页面:
-
仪表盘:显示CPU、内存、磁盘使用率,以及当前在线用户数。
-
服务器管理:显示用户名下的所有服务器,每个服务器卡片显示IP、状态、配置和到期时间。可以点击“重启”、“关机”、“重装系统”三个按钮。
-
财务中心:显示账户余额、订单记录、续费入口。
界面风格简洁,和“笨重的紫砂壶”完全不同,主打一个轻量级。
他测试了几遍流程,确认所有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这种六位数的密码,爆破器跑几分钟就出来了。”
看来,他需要系统的安全知识。
他在笔记本上写下一行字:
“安全学习计划:
- OWASP Top 10
- Go安全最佳实践
- 自动化代码审计工具”
写完,他把笔记本合上,打开编辑器,继续写控制面板的代码。
这时,手机忽然震了一下。
林语拿起来,看到是搬砖狐的消息:
“我刚吃完饭回来,你修好了?”
“嗯,修好了。你帮我再测一次?”
“现在?”
“现在。”
“行,等下。”
林语等了大概五分钟,手机又震了。
搬砖狐的消息是:“我测试了,这次OK了。没有问题。”
林语松了一口气:“谢了,帮了大忙。”
“客气啥,你那个面板前端写的不错,就是后端的代码有点受。”
“受?”
“就是不够瑟的意思。”
林语:“……”
他忍不住笑了出来。
这姑娘,是真的会。
他正要回复,搬砖狐又发了一条消息:
“对了,我刚才测试的时候,顺手做了一份渗透测试报告,发你邮箱了。你自己去看看吧。”
林语愣住了。
渗透测试报告?
他赶紧打开邮箱,果然看到一封新邮件,标题是:“雨云控制面板渗透测试报告(内测阶段)”
邮件正文:
“测试目标:雨云控制面板(内测版)
测试时间:2021年10月XX日
测试人员:a_bug_hunter(搬砖狐)
测试结论:面板前端质量优秀,后端安全性较差,存在多个安全隐患。具体如下:
- CSRF漏洞(已验证)- 已修复
- XSS存储型漏洞(未验证)- 已修复
- SQL注入(测试未发现,建议再加一层参数校验)
- 项目管理权限提升漏洞(测试未验证,建议关注)
建议:
- 所有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元的转账。
他回了一句:“收到,谢谢刘总。”
群里立刻有人回复:“恭喜林老板!”
“恭喜恭喜,第一笔企业订单!”
“林老板越来越强了!”
林语看着这些评论,心里暖洋洋的。
他想了想,在群里回复道:“迎男而上,男是商海的男。”
群里有人接话:“卧槽,林老板这个梗我接不住。”
“林老板你是懂谐音梗的。”
“学到了,以后遇到困难,我就说迎男而上。”
林语看到这些回复,嘴角扬起了一些笑意。
忽然,手机又震了一下。
他拿起来一看,是搬砖狐的微信消息。
“连公司都没有还敢迎难而上,佩服。”
林语愣了一下,然后笑出了声。
他回复道:“你这是在嘲讽我,还是在夸我?”
“都有。不过,你那个合同签了,以后就有底气了。加油。”
林语回复道:“好。等我公司信息同步了,我就正式上线。”
“这才像话。行了,别熬夜了,赶紧睡。”
“好。”
林语关掉手机,躺在床上。
他知道,这笔订单虽然没赚到钱,但至少让雨云迈出了第一步。
他闭上眼睛,脑海里浮现出王老师说的“不合规”和刘总压价的场景。
他暗暗下定决心——
“总有一天,我要让雨云变得足够大,大到谁也不敢轻易压价。”
窗外,远处的高楼大厦灯火璀璨,仿佛在向他招手。
他嘴角扬起,沉沉睡去。