Lawtee News

哪吒探针风波之后,如何用 AI 自建服务器探针避免服务器被一锅端

昨天,玩服务器的朋友圈子里,发生了一场史诗级的“大地震”。哪吒探针这个被无数人广泛使用的开源服务器监控工具(探针),突然爆出了严重漏洞。短短几个小时,各种技术论坛里边一个个熟悉的头像纷纷哀嚎。
<img src="https://lawtee.com/article/simple-server-monitor/1.webp" alt="论坛截图" loading="lazy" decoding="async"
        width="1080"
        height="652"

    >
</a>
有的朋友上百台服务器一夜被黑,全被攻击者拿去“挖矿”;有的服务器后台应用被攻破,被逼着全部业务数据重建;有的因为服务器被攻击者滥用,已经被托管服务商封禁服务。 看这这些密密麻麻的惨剧,我坐在电脑前,后背一阵阵发凉。虽然我幸运地没有第一时间中招,但也立马就把自己机器上的探针服务给停掉了。 服务是停了,但一个极为现实的麻烦摆在眼前。 毫无疑问,服务器探针对于个人管理多台服务器而言,具有很强的便利性。也正是如此,像哪吒探针这种应用,早就脱离了单一探针面板属性,向着集成远程控制、批量脚本执行、甚至终端管理等功能的庞然大物演进。然而,安全领域的常识告诉我们,代码越多,功能越复杂,可能存在的漏洞就越多。一旦面板的主控端失守,所有被监控的受控端服务器就会像多米诺骨牌一样,瞬间全军覆没。 关掉哪吒之后,看着手里分布在不同国家的五台服务器,我陷入了沉思。没有了监控,我不可能每天挨个登录去敲命令检查。但我又绝对不敢再用任何带有远程控制功能的第三方工具了。 我需要一个纯粹、极简、只有被动上报数据功能、绝不留任何控制后门的监控页面。既然市场上找不到完全放心的,我决定自己造一个。 虽然我平时写代码只限于改改配置文件,几乎是个编程小白,但我决定把这次自救的希望,全部寄托在网页版的免费 AI 身上。结果出乎意料地顺利,只花了不到一个小时,我就上线了一套完全属于自己的专属监控系统。 下面我想用最通俗的大白话,跟大家分享一下我是怎么指挥 AI 当我的免费顶级打工人,动嘴不动手地把这套安全防线搭起来的。

第一步:先跟 AI 把架构聊明白

很多人一打开 AI,第一句话就是让它写个服务器监控代码。相信我,这是你无休止报错、调 Bug 的开始。AI 就像一个技术高超但没有大局观的程序员,你必须先给他定好规矩、卡死边界。 我是这样开启对话的。我打开时下最热门的 Deepseek 网页版,开局就说:我有五台 Linux 服务器,每三十秒要自动汇报一次硬件占用和网络延迟。我的硬性要求是必须极简,不要登录功能,不要远程控制,绝不给黑客留后门。同时我的服务器都是最小化安装的,不希望安装任何笨重的大型软件。你能不能帮我设计一套最省心、最轻量的方案? Deepseek 并没有立刻甩给我一堆看不懂的代码,而是顺着我的限制,帮我组合了一套极其务实的轻量方案。 在客户端,也就是被监控的服务器上,拒绝任何复杂语言,直接用系统自带的 Shell 脚本。每三十秒抓一次数据,用完就走,不占一点内存,做到真正的零依赖。 在服务端,也就是接收数据的中心服务器上,直接用最基础的 PHP 文件,只要有网页环境就能跑。数据存储则抛弃沉重的数据库,选择单文件的 SQLite,它就像一个不需要安装的绿色版 Excel,数据往里一丢就完事。最后,前端展示直接引入一个免费的 Chart.js 画笔,自动把网络波动画成好看的折线图。 因为一开始就把资源和边界卡死了,后面的开发过程顺利得不可思议。

第二步:像产品经理一样给 AI 挑刺

在接下来的实现过程里,我连专业的代码编辑器都没打开。全程就是拿着鼠标,在网页对话框里玩复制粘贴。遇到任何数据不对劲或者页面不好看的问题,我绝不自己改代码,而是把看到的现象描述给 Deepseek,让它去修改。 比如第一版脚本跑起来后,网页上的 CPU 占用率经常莫名其妙飙到百分之百。我直接质问 Deepseek:另一台机器明明闲着,为什么监控老是100%?Deepseek 马上解释说之前用 top 命令抓的是瞬时数值,容易误判,并建议改用 vmstat 命令抓取一段时间的平均值。我回了句可以改吧,替换上去后,曲线立马四平八稳。 再比如网络延迟图上总总是有很多断开的空缺。我问 Deepseek 为什么线是断开的。Deepseek 分析后告诉我,可能是单次测试刚好遇到偶发丢包,导致数据变空了,建议改成一次发两个包取平均值,虽然会多花两秒钟,但图表会更平滑。我说没问题立刻重写。重新部署后,断点彻底消失。 在整个高频迭代的过程中,你根本不需要懂技术原理。你只需要看结果、挑毛病,让 AI 给出选择题,你来做决定。

第三步:利用多个 AI 对代码进行审计加固

因为被先前的漏洞吓过,功能跑通后,我立刻使用多个 AI 对目前代码展开了安全层面的审计。 当然,像 ChatGPT 开局就说,我这个项目跑的都是毫无价值的数据,内容全是 CPU 占有率、内存占有率、网络延迟数据这类东西,属于典型无价值目标。跟哪吒探针那些自带 WebSSH 权限以及双向长链接的目标相比,毫无攻击必要,也很难进行攻击。最多就是主控机本身漏洞导致问题,但也不可能传导到其他服务器上去。
<img src="https://lawtee.com/article/simple-server-monitor/2.webp" alt="ChatGPT审计" loading="lazy" decoding="async"
        width="1080"
        height="907"

    >
</a>
听了 ChatGPT 的分析,我悬着的心放下一大半。确实,这个“休闲探针”纯粹是被动上报,客户端没有开任何监听端口,主控端也根本没有向客户端下发命令的通道。就算主控机被人黑了,黑客顶多也就只能看到几台机器的 CPU 占用率,根本没办法通过它横向移动去感染我的其他服务器。 不过,为了做到万无一失,我又把代码丢给了 Claude,让它从具体的代码层面帮我找补漏洞。 Claude 果然更细腻,一眼就看出了隐患。它提醒我:虽然数据没价值,但如果你的接收端文件被坏人盯上,疯狂往里灌垃圾数据,依然会把你的单文件数据库撑爆。而且,如果数据库文件能被别人直接下载,也可能会暴露你各台服务器的自定义名称。 既然找出了漏洞,接下来的安全加固依然是动嘴不动手,全由 AI 搞定。 针对数据库可能被下载的问题,我让 AI 帮我写了一段 Nginx 的封锁规则,直接把存放 SQLite 数据库的目录给彻底封死。现在外部任何人只要尝试在浏览器里输入数据库的网址,直接就会返回 403 禁止访问。 而针对接口被恶意灌数据的问题,Deepseek 告诉我,既然我的域名套了 Cloudflare 的免费防护,那就别在服务器上折腾了,直接去 Cloudflare 边缘加一条网络防火墙规则(WAF)。 作为一个从没配过防火墙的小白,我直接让 AI 把表达式写好。它连子域名和路径的过滤都帮我考虑到了。我拿着这段表达式,去 Cloudflare 后台鼠标点了几下粘贴进去,设置成:只允许我指定的几台服务器 IP 访问这个接收文件,其他人一律拦截。 测试了一下,除了我自己的几台服务器,外部任何人只要敢窥探这个上报接口,直接被拦截在网络边缘,连源站服务器的边都摸不到。 最后,Deepseek 还贴心地帮我做了一个客户端一键安装脚本。在其他几台被监控的机器上,根本不需要用 root 最高权限去跑这个监控。脚本会自动创建一个最低权限的专用系统用户,把它注册成系统服务,哪怕监控脚本本身出问题,也绝对连累不到整台机器的安全。

一点个人感想

如今,这个被我戏称为“休闲探针”的小东西已经平稳运行了一段时间。 每三十秒自动刷新一次,几台服务器的健康状况、网络延迟、月度流量一目了然。页面很朴素,没有那些开源大项目花里胡哨的功能,但它带给我的安全感是无与伦比的。 第一是完全把控,每一行代码都是我和 Deepseek 一句句聊出来的,清清白白,没有任何隐藏后门。第二是极度轻量,没有任何笨重依赖,哪怕是最便宜的陈年老机器,也能毫无压力地秒开页面。 这次自建探针的经历,彻底刷新了我对个人生产力的认知。在过去,一个不懂编程的普通人要想自己写一套带数据库、带前端图表的分布式监控系统,门槛高得像看天书。但在今天,技术实现的门槛已经被 AI 彻底铲平了。 阻碍你做出一个工具的,不再是你一双手会不会写代码,而是你的一颗脑袋能不能把自己的需求描述清楚。把 AI 当作一个二十四小时在线的技术搭档,大胆地去造真正属于你自己的轮子吧。 最值得一提的是,现在 Deepseek V4 Pro 的性能已经非常够用,过程中我除了发现一次因 Deepseek 知识库中 CDN 静态资源链接信息过时未能加载出对应元素外,整个过程不管改多少遍,改多少次,它每次对话都会完整输出完全可运行的 1000+ 行代码,几乎没出现 Bug,这种体验真是非常爽。相比之下,ChatGPT 和 Claude 网页版还是喜欢藏着掖着,只给需要改动的部分,让用户自己去改。有时候需要改动的位置一多,平白增添负担。