全文仅供娱乐,如有任何不当之处,立马修改/删除
小说内容仅为虚构,请勿当真
买云请上雨云,便宜稳定性价比高,专属五折优惠码:mianfei
或点击:雨云 - 新一代云服务提供商
快速跳转:
1-2章
3-4章
5-8章
9-12章
13-16章
17-19章
20-22
文科生的服务器
九月末的广州,热得像蒸笼。
广州南方学院的男生宿舍里,林语正蹲在地上拆一个半人高的纸箱。电风扇呼呼地转,吹得他额前的碎发一翘一翘。舍友们都去军训了——大一新生的必修课,他因为腰椎旧伤开了免训证明,反倒落了个清净。
“靠,真尼玛重。”
林语咬着牙把里面的机器抱出来。戴尔R720,二手的,花了他整个暑假在高明一家电子厂打工攒下的四千二。机器外壳有几道划痕,贴纸半撕不撕,一看就是从哪个倒闭公司的机房里拆下来的。
他拍了拍机器,像是在拍一头老牛:“兄弟,以后就跟我混了。”
宿舍是六人间,上床下桌。林语把服务器塞进自己桌子下面的空位,正好卡进去,留出三指宽的缝隙散热。他蹲在那儿看了会儿,又爬起来翻柜子,找出两条旧毛巾垫在机器底下——减震,虽然也不知道有没有用。
电源线插上,网线从墙壁端口牵过来。
林语深吸一口气,按下开关。
嗡——
风扇转动的声音瞬间填满整个宿舍。六十多分贝,像个小型吸尘器。林语下意识看了眼门口,还好,整层楼就他一个人。
他拉过椅子坐下,打开笔记本电脑连上服务器。装系统、配置环境,这些他暑假已经在虚拟机里演练了无数遍。CentOS 7的光标在黑底白字的界面上跳动,林语的指尖在键盘上飞舞,偶尔停下来查一下手机里的笔记。
窗外蝉鸣震天。
三个小时后,宝塔面板安装完毕。林语活动了一下脖子,咔咔响。
“得,虚拟主机搞起来。”
他新建网站目录,设置PHP版本,配置MySQL数据库。这些活儿他在网上接外包做过不少,熟得很。高二的时候就开始折腾网站,那时候用的还是虚拟主机,一个月五块钱,128M内存,放个WordPress都卡得要死。
现在好了,整台机器都是自己的。
独享六十四G内存,双路E5-2670,十六核心三十二线程。这配置在2018年算不上顶尖,但做虚拟主机足够撑起一两百个小型网站了。
“起个名儿吧。”林语自言自语。
他靠在椅背上想了会儿。窗外飘进一丝风,带着南国特有的潮湿和闷热。
雨云。
脑子里蹦出这个词。在广州读书这一年多,他印象最深的就是那些说来就来的暴雨。看着乌云密布,倾盆而下,然后云开雾散。来去自由,滋养万物。
“就叫雨云。”
他在宝塔面板里创建了第一个网站:rainyun.com。域名是暑假时候买的,rainyun是“雨云”的拼音。虽然有点二,但他觉得挺顺口。
Logo还没设计,先拿个emoji云朵凑合。
折腾到傍晚,林语下楼去食堂打了份叉烧饭回来。一边吃一边在HostLoc论坛上编辑帖子。HostLoc是国内站长聚集地,卖服务器的、卖主机的、卖域名的,鱼龙混杂。
他想了想,敲下标题:
【雨云】香港虚拟主机,PHP+MySQL,50元年付起步,稳定高速,欢迎测试
内容写得很实在,没吹什么“百分百在线”“永久免费”这种鬼话。写了配置参数,写了测试IP,承诺三天无理由退款。
“行不行就看这一波了。”
他点击发送,然后关上电脑去洗澡。
回来的时候帖子已经有十几条回复。
“50元年付?这么便宜,不会是辣鸡线路吧?”
“已下单,等开通。”
“楼主新开的?以前没见过,能撑多久?”
“测试IP ping了一下,延迟还行,观望。”
林语一条条看下来,心里有点发热。不管怎么说,有人关注就是好事。他打开雨云的工单系统——其实就是个简单的表单页面——果然有一条新订单。
用户ID:mubanhu,订单内容:香港虚拟主机,基础型,50元/年。
支付状态:已支付。
林语愣了几秒。
“这就……开张了?”
他以为至少要等个三五天,等第一批“勇敢者”试水了才有后续。没想到帖子发出去不到两小时,第一单就来了。
支付宝到账50元。
林语赶紧把叉烧饭扒完,擦擦手开始配置主机账户。
在宝塔后台创建站点,绑定域名,设置FTP账号密码,配置数据库。这些操作他闭着眼都能做完。然后把账号信息通过工单系统发给客户,附带一份自己写的简易教程——怎么上传文件,怎么导入数据库,常见问题排查。
发完他还不放心,又加了一句:“有任何问题随时工单联系,一般半小时内回复。”
看看时间,晚上九点四十三。
客户那边突然回了消息:
“你好,我上传了WordPress,安装的时候报错500,能帮看看吗?”
林语来了精神。
这是他第一个客户,不能出岔子。
他远程连上服务器,查看Nginx错误日志。404,500,502——这些错误代码他看着跟老朋友似的。排查下来发现是PHP的memory_limit设置太低,WordPress安装程序跑不起来。
改了配置,重启PHP-FPM,刷新页面。
WordPress安装界面出来了。
“搞定了,你试试。”
过了一分钟。
“可以了!谢谢!
”
林语看着那个emoji,莫名有点开心。
他打开微信,点进一个置顶对话框。
搬砖狐
备注:那个说我声音很受的人
两人是在一个技术群里认识的。搬砖狐写前端,偶尔接点私单。有次群里语音聊天,她一开口就笑林语声音“受得要死”,林语反手说她口音像在嚼雪。两人从技术喷到表情包,从表情包喷到深夜哲学,认识了小半年。
“我今天成交了第一单。”
“???你不是还在读书吗,成交什么?”
“卖虚拟主机,50块一年。”
“笑死,人家花50块买你的玩具服务器?”
“正经买的,还帮人家调好了。”
“行吧,林老板牛逼。什么时候发达了别忘了请我吃饭。”
“稳的。等我月入过万,请你吃双皮奶。”
“就这?抠死你算了。”
林语笑着放下手机。
深夜十一点,舍友们还没回来。据说今晚有联谊活动,一帮人去操场唱K。林语对那种场合没什么兴趣,一个人在宿舍反而自在。
他刷新了一下服务器日志界面。
SSH登录记录正常,网站访问正常,MySQL运行正常。
等等。
安全日志里飘红。
林语皱起眉,点开详情。
入侵检测系统记录到,过去一小时内,有来自境外的IP对服务器进行了端口扫描。22端口,3306端口,6379端口,挨个试了一遍。扫描频率很低,伪装成正常流量,要不是他开了详细记录根本注意不到。
IP归属地查询结果:荷兰,阿姆斯特丹。
然后是第二个IP:美国,洛杉矶。
第三个:罗马尼亚,布加勒斯特。
全他妈是境外IP。
林语手指搭在键盘上,没动。
服务器上线才不到十二个小时,域名刚解析生效,论坛帖子刚发出去。正常来说不可能这么快被人盯上。
除非——有人在HostLoc或者什么地方看到了他的帖子,顺手扫一波。
这在IDC圈其实很常见。新开的服务器,尤其是小商家,经常被同行或者“技术爱好者”试探。扫出漏洞就顺手挂个马,或者抢注个矿池挖矿,甚至有专门薅羊毛的团伙盯准了这种新站——等你用户多了,找你要“保护费”,不给就打。
林语的表情严肃起来。
他不是没想过这个问题。代理分销虚拟主机,本质上是在帮上游机房卖资源,自己没有防火墙,没有流量清洗设备,抗攻击能力约等于零。
戴尔R720再牛逼,也只是一台物理机。一个稍微大点的DDoS就能让它趴窝。
“得搞个防护方案。”
他自言自语,然后打开SSH终端,开始手动配置iptables规则。先禁掉所有境外IP对SSH端口的访问,只保留国内IP段。再设置连接频率限制,防止暴力破解。
一边配一边骂:“这才刚开张,你们他妈的能不能等两天再来?”
凌晨一点。
林语眼睛熬得发红,但总算折腾完了。基础的防火墙策略、入侵检测规则、自动封禁脚本,能上的都给上了。虽然简陋,但挡一挡普通的扫描应该够了。
他关掉显示器,躺在椅子上。
天花板上的日光灯嗡嗡响,和服务器风扇的震动混在一起。鼻子里是电子元件特有的那种热塑料味,混着宿舍里没散干净的汗味和花露水味。
有点累。
但挺爽。
手机又亮了。
搬砖狐:“还没睡?”
“没,在给服务器加防火墙。”
“卧槽,你不会真要在宿舍搞个机房吧?”
“那不至于。先跑跑看,能养活自己就行。”
“行吧,早点睡。熬夜容易秃头,到时候你的受音配上秃头,画面太美我不敢想。”
“闭嘴。”
“略略略。”
林语笑了笑,关上手机。
宿舍门外传来脚步声和说笑声,舍友们回来了。林语把服务器风扇转速调低了一些——虽然散热会受点影响,但他暂时不想让太多人知道这台机器的存在。
门被推开,几个人带着一身酒气和烧烤味涌进来。
“哟,林语你还没睡?”
“马上睡了。”
“卧槽你桌底下什么东西嗡嗡响?”
“旧电脑,给社团做网站用的。”
“哦……行吧,搞不懂你们这些玩代码的。”
林语拉上床帘,闭上眼睛。
脑海里还是那些境外IP的扫描记录。
他知道这不是偶然。IDC这个圈子看起来是卖服务器、卖带宽、卖技术,但背后藏着的猫腻太多了。DDoS攻击、CC攻击、勒索、竞价打压、流量劫持——哪个不是灰产黑产扎堆的地方?
他一个刚上大一的文科生,一没背景二没资金,拿着一台二手戴尔和五十块钱的第一单,一脚踩进这潭浑水。
是不是太不知天高地厚了?
算了。
不做都做了。
稳步推进,不要捉急。
他翻了个身,脑海里浮现出“雨云”那个emoji云朵标志。
总有一天,这朵云会飘起来的。
凌晨三点十七分。
服务器日志里,那个荷兰IP又出现了。
这次它没扫描端口,而是直接尝试登录SSH,用的用户名是“root”。
密码尝试记录:
123456,失败。
password,失败。
admin,失败。
rainyun。
林语在睡梦中不知道,他随手起的品牌名,已经被某个不知名的入侵者试了出来——当然,并没能登录成功。
但这条日志旁边,还躺着一行不起眼的记录。
有人在HostLoc上匿名回帖:
“雨云?呵呵,又是哪个大学生心血来潮搞的玩具站。猜猜它能活几天?”
回帖时间:三分钟前。
昵称:游客_8F7A3B。
IP归属地:广东佛山。
林语的老家。
文科生的倔强
第二天早上七点,林语被闹钟吵醒。
他睁开眼的第一件事不是洗漱,而是先打开手机看了一眼服务器状态。宝塔面板上的监控曲线在凌晨三点多有一波小波动——那个荷兰IP的SSH尝试已经被自动脚本拦截了。安全日志里连续滚了七八条“Connection refused”,看着让人安心。
“还行,没被攻破。”
他翻身下床,蹲在服务器前摸了摸机箱。温热,风扇转动平稳,硬盘灯规律闪烁。这台机器昨晚居然还扛住了几个小时的扫描试探,没有宕机,没有卡顿。
戴尔R720,没白买。
宿舍里其他人还在睡。昨天联谊喝到凌晨的几个人扯着均匀的鼾声,空气中残留着烧烤和啤酒混合的气味。林语轻手轻脚地洗漱完,背上书包去食堂。
路上他打开HostLoc看了一眼昨晚的帖子。
回帖已经堆到三十多楼,大部分是观望和试水的。有几个老哥下了单,后台收到三条新订单,其中两个已经支付了。
“可以,今天开局不错。”
他心里美滋滋地打了碗皮蛋瘦肉粥,找了个角落坐下。一边吃一边打开手机上的Vim编辑器,开始写一个自动开通脚本。昨晚那三个订单都是他手动配的账号,一次两次还行,等单子多了肯定忙不过来。
他准备写一个简单的PHP接口,对接宝塔面板的API,实现用户下单后自动创建站点、分配FTP、发送账号信息。整个流程完全自动化,尽量减少人工干预。
吃到一半,手机弹出一条微信。
搬砖狐:“怎么样,昨晚的服务器还活着吗?”
林语拍了张食堂粥碗的照片发过去:“活着,今早又接了三单。”
搬砖狐:“卧槽,真的假的?你这破站才开一天就有三单?”
林语:“什么叫破站,是专业云计算服务平台好吗。”
搬砖狐:“笑死,一台二手服务器也叫专业云计算。行,林老板加油,要是这个月能挣够饭钱我就服你。”
林语:“等着,下个月请你吃双皮奶。”
搬砖狐:“双皮奶?你还真打算请我吃五块钱的玩意啊?”
林语:“那是广州特产!很贵的!”
搬砖狐:“滚。”
林语笑着锁屏,把粥喝完,赶去上课。
上午是《中国近现代史纲要》,大课。
阶梯教室里坐了两百多号人,后排已经有人开始玩手机了。林语找了个靠窗的位置坐下,掏出笔记本电脑——Surface Pro,二手买的,屏幕边角有一道裂纹,但不影响用。
老师姓王,四十多岁的样子,戴一副黑框眼镜,讲课语速很慢,像在念书。第一节课的内容是鸦片战争,林语初中就开始背这些了,实在提不起什么兴趣。
他把电脑开了静音,屏幕亮度调到最低,然后打开VS Code。
昨晚那个PHP接口已经写了个雏形,但今天他决定换个思路——直接用Go写一个轻量级的后端服务。PHP虽然熟,但在高并发场景下性能不太行。如果用Go实现一套完整的虚拟主机管理系统,包括用户注册、下单、开通、监控,那以后扩张起来就容易得多。
雨云的网站后台现在用的是WordPress加一个简单的订单表单插件,说白了就是套了个壳。真要正经做IDC生意,这种简陋的体系撑不了多久。
他一行一行地敲代码,思路越来越清晰。
整体的架构设计是:Go写API网关和核心逻辑,MySQL存储用户和订单数据,Redis做缓存和队列。前端暂时不管,先用Vue写个简单的管理面板让用户能登录进去看自己的机器状态就行。
“好,就这样搞。”
林语敲下最后一段路由代码,开始写数据库迁移脚本。
王老师在讲台上念着虎门销烟,底下有人打哈欠。林语的手在键盘上飞快跳动,偶尔停下来思考一下接口设计,然后又继续写。
“第三排靠窗那个同学。”
林语没听见。
“第三排靠窗,穿白T恤的那个。”
周围的同学齐刷刷转头看过来。林语旁边的女生轻轻碰了一下他的手肘,小声说:“哎,老师叫你呢。”
林语一愣,抬头正好对上王老师的目光。
“你是不是在写代码?”王老师推了推眼镜,“这是历史课,不是编程课吧?”
教室里有人偷笑。
“我……”林语下意识想合上电脑,但转念一想,合上也没用,已经被抓现行了。
“你学什么专业的?”王老师问。
“网络与新媒体。”林语站起来回答,“但我是文科生。”
“文科生?那你写什么代码?”
“我……写了个服务器管理系统。”
教室里安静了两秒,接着爆发出一阵哄笑。
“服务器?就你一个文科学渣还想搞服务器?”后排一个染黄毛的男生笑得最大声,“你以为你是计算机系的啊?”
林语认出了那个黄毛——杨晨,同班同学,理工科转过来的,据说是理科成绩太差才被迫选了文科。军训那几天林语在宿舍折腾服务器的时候,这人在旁边打游戏,还阴阳怪气地说“穷折腾什么”。
王老师皱了皱眉,示意大家安静:“好了好了,不要笑。这位同学,你站起来说说,刚才我讲的那段内容讲了什么?”
林语愣了愣,脑子飞速回忆。刚才完全沉浸在Go代码里,根本没听讲。但好在初高中历史底子还在,依稀记得王老师刚才念到的好像是……
“您讲的应该是鸦片战争后,清政府被迫签订《南京条约》的后续影响。”林语斟酌着措辞,“包括开放五口通商,割让香港岛,以及赔款两千一百万银元。这些条款使得中国开始沦为半殖民地半封建社会,同时也催生了后来一些有识之士开始睁眼看世界,比如林则徐、魏源等人。”
王老师脸上露出一丝意外:“你刚才不是没听课吗?怎么知道我在讲什么?”
林语诚恳地说:“我确实没听见您刚才讲的具体内容,但这些是近现代史的基本概念,我在高中学过。”
“好。”王老师点点头,又追问了一句,“那你刚才在写什么系统?”
“一个虚拟主机的自动开通和管理系统。”林语说,“用Go语言写的,用MySQL做数据库,Redis做缓存,可以实现用户下单后自动创建网站、分配资源。”
“你去实习过?”
“没有,自己摸索的。”
“你自己摸索的?”王老师语气里带着惊讶,“一个文科生,自己摸索Go语言和服务器管理?”
“我觉得学什么东西不在于专业限制。”林语说,“我现在在做一个叫雨云的小型IDC项目,想给个人站长和小企业提供便宜的虚拟主机服务。代码什么的都是网上学的,踩了很多坑。”
“雨云?”王老师重复了一下这个名字,若有所思地看着林语,“你这项目,是认真的?”
“认真的。”林语没有任何犹豫。
教室里的笑声渐渐平息了,取而代之的是一片好奇和打量。之前那个笑他的黄毛杨晨也不笑了,脸色有点复杂。
王老师沉默了几秒,忽然说:“你知道这学期有创新创业大赛吗?”
林语一愣:“听说过,但没详细了解。”
“学院鼓励学生参赛,做的项目如果能落地运营,可以抵两门选修课的学分。”王老师看着他,“你要不要考虑一下,用你这个‘雨云’项目去报名?”
满教室的目光都聚焦在林语身上。
“真的可以吗?”林语问。
“只要项目真实存在,有运营数据支撑,就可以。”王老师推了推眼镜,“当然,前提是你得先把这节课上完,别在课堂上写代码。”
林语赶紧把电脑合上。
“好,那这事我记下了。你可以课后找我拿大赛资料。”王老师说完,转身继续讲课。
林语坐回座位上,心跳有点快。创新创业大赛?抵选修课学分?那意味着他可以省出更多时间搞雨云。
旁边的女生凑过来小声问:“喂,你真的自己做了个服务器项目?”
“嗯,刚起步。”
“你好厉害啊,我一个代码看不懂。”
“其实没那么难,网上教程很多的。”林语笑着说。
下课铃响,林语收拾东西准备走。
后排的杨晨大步走过来,拦住他的路。
“林语。”
“干嘛?”
“你那什么雨云,我查了一下,”杨晨语气有点冲,“不就是代理分销吗?你以为我不知道?从上游机房拿空间转手卖,自己根本没什么技术含量。”
林语看着他:“所以呢?”
“你一个文科生,不要装什么技术大佬。写了两行代码就觉得自己是个人物了?我表哥在阿里云做运维,真正的云计算是什么样,你根本不懂。”
“我确实不懂。”林语平静地说,“但我没装技术大佬,我就是一个刚起步的个人站长,慢慢学。”
“呵呵,说得好听。”杨晨撇撇嘴,“你那破站能撑过三个月我就不姓杨。”
“那你也别改姓,没什么意义。”林语绕过他,背上包走出了教室。
外面阳光很好,九月底的广州还不算凉快。林语走到教学楼旁边的凉亭,从书包里摸出一包饼干慢慢啃。
杨晨那种人,他见多了。
高中的时候,班里分成两拨人——一拨是理科好、看不起文科的“理科学霸”;一拨是文科好、被理科学霸看不起的“文科废物”。林语高一选科时,物理化学加起来才考了八十分,历史和地理倒是拔尖。老师们劝他选理,说“文科没前途”。他没听,选了文科班,被当时的班主任叹了一整天气。
后来呢?
后来他高二就开始自己折腾网站,接外包赚零花钱。那些当初嘲笑他“学文科以后只能当文员”的人,有的还在为高考志愿发愁,有的连个简单的网页都做不出来。
文科生怎么了?
文科生就不能写代码?文科生就不能搞云计算?哪条法律规定写代码必须是理科生的专利?
林语嘴里嚼着饼干,心里有点堵。
他打开手机,想看看雨云后台有没有新订单。结果刚解锁屏幕,就看见一条新的站内私信。
发信人ID:server_wholesale
消息内容:
“你好,我是佛山的一个机房管理人,手上有一批机柜和带宽资源。价格比市场低三成,四层防御线路,支持按需扩容。有兴趣合作吗?可以聊聊。”
林语握住手机的手指微微收紧。
低三成?
这个价格在行业里几乎是不正常的。
他点开那个人的资料,注册时间是今天,个人签名里写着“IDC资源对接,一手货源”。IP归属地显示广东佛山。
佛山。
和他老家同一个地方。
林语把最后一块饼干塞进嘴里,慢慢嚼着。
直觉告诉他,这个价太便宜了,便宜得不太真实。
但……
如果是真的呢?
如果真有机柜资源可以对接,那雨云就不只是卖虚拟主机那么简单了。他可以卖整台VPS,可以自建节点,可以真正意义上扩大业务规模。
一台二手服务器能撑多少个虚拟主机?最多两三百。但如果有机房资源,那规模可以是十倍、百倍。
林语深吸一口气,打字回复:
“细说?”
发完他就后悔了。
草,应该保持点距离的。
算了。
稳步推进,不要捉急。
但这个机会,值得试一试。