把台式机作为服务器在家里云部署

把台式机作为服务器在家里云部署
天翼本文由Deepseek辅助完成:D 语言模块太废了
Deepseek写的有点尬但是比我写得好
Part1.前言
家中有一台2015年的台式电脑,在2020年中考结束后,我更换了除机箱和电源外的所有硬件,CPU换成了R5 3600,GPU是RX 480,内存2x8G。这台机器始终有个顽固的毛病——开机时常卡在VGA自检灯,由于初高中课业繁重,大学后又习惯了使用笔记本电脑,这台台式机逐渐被冷落在角落,故障也就一直搁置未修。
转折发生在大学校园网的资费政策:IPv4流量需要付费,而IPv6却完全免费。我曾尝试租用纯IPv6的VPS,但低价服务器要么位于香港,要么远在北美,访问国内服务时延迟高得令人抓狂。直到某个深夜,看着家中积灰的台式机,突然灵光一闪——何不将这台闲置设备改造成代理服务器?这个想法如同电路板上的跳线火花,最终在寒假里点燃了我的家庭服务器改造计划。
Part2.故障排查
大二寒假一回家,我就迫不及待地开始折腾这台台式。结果开机一看,好家伙,自检灯这次直接卡在DRAM上了。我第一反应就是内存条出问题了,于是开始各种排列组合:单插A槽、单插B槽、双通道轮着试,连橡皮擦金手指这种土方法都用上了,可DRAM灯就是死活不灭。
眼瞅着快过年了,我也懒得继续折腾,干脆把其中一根内存条拔了,就留一根凑合吧。反正笔记本能玩,服务器的事就先放放吧,毕竟人生苦短,及时行乐嘛。
谁知道过完年我又手痒想继续搞,结果这次开机直接卡在VGA自检了。这下可把我整懵了,赶紧找懂行的朋友问了下。他一句话点醒了我:“显卡松了?“我这才注意到显卡确实把PCIe插槽压得有点变形。试着用手把显卡往上托了托,还就点亮了!
那之前DRAM的问题又是咋回事?我顺手把之前拔掉的那根内存条插回去试试,果不其然,又卡在DRAM自检了。这下总算破案了:显卡太重导致PCIe接触不良,外加一根内存条确实有问题。毛病不少,不过好歹找到原因了。
Part3.重装系统
毕竟这么多年了,尽管我其实还是会偶尔给它开一下机,但是众所周知固态硬盘断电时间太久会丢数据,再加上这么久没用过那肯定没啥对我用得上的资料,那就直接重装系统了。
考虑到我回学校之后不太想用图形界面来控制主机,大概率是用SSH,那就装Linux好了。我选了个自己之前用的系统-LinuxMint。
过程很快,安装过程就跳过了。
Part4.安装软件
其实想重新利用这台主机还考虑到我想要做一些网页服务和CS2服务器,CS2服务器使用SteamCMD安装,以下是SteamCMD安装/更新CS2参数,仅参考:
1 | ./steamcmd/steamcmd.sh +force_install_dir ./cs2/ +login anonymous +app_update 730 |
网页服务我决定使用1Panel来帮助我完成大部分的工作,使用
1 | sudo 1pctl user-info |
可以查看1Panel的端口
通过1Panel安装了MySQL,gitea,hero,AList等服务,我打算利用AList将我的主机作为NAS使用
由于1Panel使用容器安装各类服务,需要将实体路径挂在到容器里面
Part5.自动开机
开学后需要面临的问题是我无法实体按键开关机,那我就需要一个办法来远程开关机。关机好说,SSH连接到主机后进行关机即可。 但是开机就有点麻烦了,我主要考虑的是利用BIOS设置中的Restore after AC power loss搭配智能插座(正好还能看看功率)来进行远程开机。
我在小米之家购买了米家智能插座3,可以查看功率和设置自动化任务,我设置了一个自动化任务是当检测到功率小于1W时自动断电,这是为了我不需要手动关闭智能插座,而是在SSH中执行关机命令就可以自动关闭智能插座了。
Part6.获取IP
除了开关机问题,我还担心我在返回学校后运营商分配的IPV6地址会变更,这样我就无法连接到主机了。
一开始,我想了一个比较麻烦的办法:用ToDesk连接到主机后使用中继服务器来连接到图形界面获取IP,但实际试了几次之后我发现这实在是太蠢了!我都连接到图形界面了就为了看个IP?于是我放弃了这个方法。
那我只好写一个脚本来获取IP了。我的主机预期会直接连接到公网,也就是在一些IP查询网站查询到的IPV6就可以直接连接到主机了。
我决定先写一个获取IP的脚本,python在linux方便安装,那就使用python就好了
1 | import subprocess |
利用邮箱发送IP
1 | #下面四行导入依赖的包 |
最后在systemd配置开机启动,on-failure时重启,间隔5s,完成!

