Mayx's Home Page
by mayx
其实我感觉大学生活也挺好的。
去年我进入大学后加入了一个专门研究云计算以及网络(名义上)的社团,不过那时候我才是大一新生,加入后没有权限。到了第二年,我成功的进入了管理层,这次我就可以好好的看看这个社团有什么有意思的东西了。
首先,社团内有专属于自己的网络,社团办公室内有一个交换机是连接所在教学楼的网络的。另外还有一个树莓派,看起来好像是一次都没有用过,系统也是全新的RPiOS。
除此之外,社团内有一台机架式服务器,看起来好像好长时间没有用了,第一次启动直接报内存错误,我只好把内存条拆出来擦了擦才能正常开机。
我以前觉得服务器应该配置相当高,不来个双路TR3990X,再整个一堆上TiB的内存根本不能称作服务器。不过这台垃圾服务器改变了我的想法。这是一台主板型号为S5500HCV的服务器,有双路CPU和4条4GiB的内存条,硬盘500GiB还是机械的。仔细看了看这双路的CPU怎么加起来才8个核心,而且还不支持超线程?这配置还不如我新买的笔记本电脑,然后大小还特别大,比一般的机箱大得多,而且开机速度又慢,风扇还不支持调速,真是有够垃圾的。
不过垃圾就垃圾吧,毕竟还是个服务器,最起码还能支持24/7工作制,365天全年不断电应该是可以保证的。既然有了这样的资源,我觉得应该搞点什么在服务器上面,不然这么大的东西闲置也挺浪费的。
最开始我是打算装ESXi的,因为自从有Hyper-V之后我基本上就没用过VMWare了,而且这俩还是互斥的。以前看到ESXi之后挺想在我的Hyper-V虚拟机里装一个,可惜ESXi这个系统实在是太垃圾,安装必须要网卡驱动然后它支持的驱动还特别少,所以这次有了真正的服务器自然是想试一下装个ESXi玩玩。
首先我装的是ESXi7,打开后结果又是没有显卡驱动,所以我只好下ESXi6试试看,打开之后确实可以装了,但是装好之后却没办法引导了,这就很奇怪,所以我只好放弃安装ESXi的想法。
之后我就想着要不然就正常的安个服务器操作系统吧,Ubuntu用的多了,干脆安个CentOS好了。不过安CentOS有不少坑,因为我安装没办法用光盘装,一般都是先录到U盘里再装,但是不知道为啥,CentOS的引导是用的是卷标名,然后U盘只能用11位的卷标名,安装程序就没法引导。
除了这个坑之外还有一个就是8和8-stream版本的不同。因为直接把整个CentOS下下来很麻烦我就直接下的是网络安装版的。安装程序我下的是8-stream的,但是我当时不知道用哪个源,结果搞成了8的源,装到一半就出错退出了,很难受,之后仔细检查才发现原来是版本搞错了。
安好之后就是如何管理服务器的问题了,虽然直接用SSH或者用自带的Cockpit也挺不错,显得很专业,但是我觉得麻烦就直接用了某删库塔面板了,反正是在内网里也没谁会攻击,而且安装配置确实方便,想做的事情一键就能搞定。
虽然这个服务器挺垃圾,但是至少要比一般的云服务器强,同配置的云服务器要不少钱我肯定是不会租当然也没用过。所以像什么Gitlab之类的我可以随便装,反正有16GiB内存也不担心。
另外就是网页服务器的环境了,面板确实方便,轻轻松松就能装一个博客、论坛加网盘了。既然网站建好了,就要考虑如何访问的问题了。
正常情况下我们用的网络都是经过路由器的,然后就会有NAT就没法从外面访问里面的服务。一般情况下解决这个问题就是用内网穿透,比如frp之类的。不过我们的网站不太适合暴露到外网上,毕竟开了一大堆服务,又没有防火墙,密码还超级简单,万一服务器被外面的人攻破了学校内网估计也得凉。
不能暴露在外网的话至少学校内网能访问也不错啊,不过服务器前面连了一个路由器,经过了一次转换,然后就没办法在学校内访问了。还好路由器可以设置DMZ主机,把服务器的内部IP设成静态的然后开DMZ主机就能解决这个问题了,另外路由器连接的校园内网也没有NAT,所以在校内就可以直接运行了。
虽然通过上面的方法可以让大家访问服务器,但是有一个问题就是动态IP的问题。我可以改在社团的路由器,但是不能改学校的交换机,所以IP地址没办法固定,虽然也可以直接在服务器上改成固定IP,但是我担心这样会造成IP冲突之类的问题。这种情况就很麻烦,因为好多网站内链都是带站点地址的URL,我建的网站都是通过引擎建的,改又不好改,这就很麻烦。
这个问题比较好的解决方案就是使用域名,域名解析的结果不一定必须是一个外网地址,内网地址同样可以解析。这样我回头可以买个域名然后解析,如果发生断电之类的问题导致IP改变我就可以直接改一次就行了。DDNS也是个不错的解决方案,不过这种事发生次数不多所以就懒得搞了。
虽然建了网站,但是平时也没有人访问……而且就算有人访问服务器运行网站服务程序基本上没什么压力,这样服务器运行基本上就是空转了。既然我打算让它持续运行肯定不能让它空转,我肯定要搞点啥利用好这个运算资源。挖矿是个不错的选择,但是我不屑于去做,不如搞点为人类发展做出贡献的事情,像World Community Grid这样的志愿计算项目就挺不错。
于是我就在上面安装了BOINC,这种程序虽然会占用大量的运算资源但是它的运行优先级很低,所以网站运行完全没有影响,这样就能合理的运用好这些计算资源了。