免费 Discord 机器人 24/7 托管
本页内容
搜索免费的 Discord 机器人托管,你会找到一大堆。真正难找的是能让机器人每个月的每一个小时都在线的免费托管——而这恰恰是人们输入“24/7”时真正想要的东西。
这是两种不同的说法,而网上这一领域的大部分失望,都来自把两者当成一回事。本指南逐一介绍真实可用的选项,直白地告诉你哪些能在无人值守的情况下保持在线,哪些会悄悄停掉,以及区别在哪里。不贬低任何服务商,也不编造数字:平台限制会变,所以下文描述的是每个选项的实际行为,而不是它本月的套餐页面怎么写。
简短回答
是的,你可以免费运行 Discord 机器人。但几乎没有哪个免费选项能在你不操心的情况下让它全天候在线。真正做到的只有一种:一台你自己拥有并一直开着的机器。其余选项都是用在线时间换账单上的那个零——让机器人休眠、按用量计量,或者按计划重启。
整篇指南用三行就说完了。剩下的内容是讲清楚每个选项分别属于哪种情况,让你心里有数地做选择。
| 选项 | 免费? | 无人值守也能在线? | 最先出问题的是什么 |
|---|---|---|---|
| 你自己的电脑或 Raspberry Pi | 是 | 是,只要有电有网 | 停电、更新后重启、你的精力 |
| 开发者平台的免费套餐 | 是 | 否 | 平台让进程休眠,或每月额度用完 |
| 免费云虚拟机(Oracle Always Free 等) | 是 | 通常可以 | 先得抢到一台,然后自己管理它 |
| CI 运行器(GitHub Actions) | 是 | 否 | 单个任务的时长限制,以及服务条款 |
| 付费机器人托管 | 否——每月 €0.89 起 | 是 | 没有需要你操心的事 |
如果你的机器人是一个正在积极开发的周末项目,免费套餐就是合适的工具,你可以就此打住不用往下看了。如果已经有其他人在用它,请继续读——下面这些故障方式正是会找上你的那些。
“免费”不再 24/7 的四种方式
免费套餐不会随机出问题。它们会以四种具体方式出问题,知道自己碰上的是哪一种,就能立刻判断能不能解决。
1. 平台让你的进程休眠
托管平台会从看起来不活跃的任务上回收资源。陷阱就在这里:在 Web 平台眼里,Discord 机器人看起来完全不活跃。它向 Discord 的 gateway 建立一个出站 WebSocket 连接,然后等待。没有任何数据到达端口,没有处理任何 HTTP 请求,流量图纹丝不动。你的机器人可能整晚都在响应命令,但按照平台监控的每一项指标,它什么都没做。
2. 冷启动没有东西来唤醒
休眠对网站来说无伤大雅:下一位访客的请求会唤醒它,访客多等一秒而已。可没有人会给 Discord 机器人发 HTTP 请求,所以没有任何东西能唤醒它——它就这么一直停着。这正是各种 keep-alive 技巧存在的全部原因:在机器人上加一个小型 Web 服务器,再用一个外部服务永远 ping 它。这招管用,直到 ping 服务停了、平台改了休眠规则,或者你读了条款发现自己一直在跟条款对着干。
3. 文件系统不归你长期保留
在很多免费套餐上,应用重新部署或重启时磁盘会被重置。如果你的机器人把等级、经济系统、警告记录或各服务器的设置写进代码旁边的 JSON 文件,那个文件就是看起来像永久存储的临时存储。它能撑好几天,足够让你信任它,然后一次重启就把它清空。凡是必须在重启后保留的数据,都应该放进数据库,而不是磁盘上。
4. 每月额度用完
有些免费套餐根本不是基于休眠的——它们每月给你一定的使用额度。持续运行的机器人会持续消耗这份额度,于是在周期中途停掉,等计量重置后才恢复。三周的在线时间作为业余项目完全够用。但那不是 24/7。
无需保持唤醒,也无需 ping:HytHost 机器人托管让你的 Discord 机器人持续运行,每月 €0.89 起,并带自动重启。
查看机器人托管Replit:在那里开发机器人,别把它留在那里
Replit 把编辑器和运行环境装进了浏览器的一个标签页里,用来写机器人确实很舒服——从空文件到机器人在你的测试服务器里回复消息,全程什么都不用安装。很多人的第一个能用的机器人就跑在 Replit 上,其中不少后来发展成了正经项目。
问题出在结构上,而不是抠门:Replit 是围绕你正在使用的工作区打造的。关掉标签页后让进程继续运行是一项单独的付费功能,免费工作区在你停止使用后就会停下来。这是一个前后一致的产品决策——它是开发环境,不是托管平台——但这意味着“我合上笔记本机器人就下线”是设计好的行为,而不是需要解决的 bug。
这就引出了你会在几十篇教程里看到的 keep-alive 模式:给机器人加一个最小的 Web 服务器,再把一个免费的在线监控服务指向它,好让总有东西在请求那个页面。它确实能撑一阵子。但它在各个方向上都很脆弱——监控服务失效,规则变了,你最后维护的是这个变通方案而不是机器人本身。在它之上搭建任何东西之前,先去读 Replit 的最新文档,看看免费套餐如今包含什么,因为这类内容恰恰最容易被修改。
Render 和 Railway:正经平台,但免费版不合适
Render 和 Railway 都是正规的部署平台——git push,自动构建,自动运行。它们的付费套餐完全适合放 Discord 机器人。人们栽跟头的地方是免费入门档,原因有两个,值得分开说。
Render:你的机器人是错误类型的服务
Render 的免费方案是围绕 Web 服务设计的——也就是响应 HTTP 请求的东西——没有请求到达时就会把它们停掉。Discord 机器人不是这种东西。它是一个维持出站连接的后台 worker,永远收不到能让它保持唤醒的 HTTP 流量。所以不匹配的问题不在于套餐是否大方,而在于工作负载跟产品的形态对不上。免费套餐是否提供后台 worker,正是那种会变的细节,所以请查看 Render 自己的文档,而不是两年前的教程。
Railway:按用量计费,所以月中就会停
Railway 按用量计量,并给你一份可消耗的额度。没有休眠,也不需要 ping——它就一直运行,直到额度用完,然后停到下一个周期。作为试用部署的方式,它干净又可预期。但作为“24/7 托管”,它内置了一个硬性停止点,而这个停止点会在月中你没注意的时候到来。当前的数字请看他们的定价文档。
两者都值得了解,这里也没有批评任何一方。如果你喜欢它们的工作流程,老实的做法是使用你喜欢的那个平台的付费套餐——而不是硬逼免费版表现得像付费版。
Oracle Always Free、GitHub Actions 和“免费 VPS”
还有三个经常被提起的选项,按你应该信任它们的程度从高到低排列。
Oracle Always Free:云服务里最接近免费 24/7 的方案
这个是真的。Oracle 的 Always Free 套餐包含不会休眠的小型虚拟机——一台持续运行的普通 Linux 主机,这确实就是你想要的。老实说有两个问题。第一,最难的是抢到一台:某个区域的免费容量经常不可用,办法是换个区域或者等待。第二,你刚刚变成了系统管理员——系统更新、防火墙、让机器人开机自动重启的服务单元,还有你自己的备份。如果你想学这些,这是个公平的交换;如果你只是想让机器人在线,那就不划算了。在依赖它之前,请阅读 Oracle 最新的 Always Free 条款,包括他们认为闲置的实例会怎样处理。
GitHub Actions:不是托管服务,也不允许当托管服务用
Actions 是一个 CI 系统:仓库里发生某件事时它就运行一个任务,而任务有最长运行时间。你可以把定时任务串起来,模拟一个常驻进程,也确实有人这么做。不这样做的理由有两个。实际层面,你得到的是一个按时间表死掉又重启的机器人,每次都有一段空档。规则层面,GitHub 的条款把 Actions 限定在与该仓库自身软件相关的工作上——常驻运行的机器人不在这个产品的用途范围内,把你的社区建立在随时可能被关掉的东西上,根基不稳。把它用在它最擅长的事上:每次 push 时测试机器人的代码。
“免费 VPS”:看它们不肯告诉你什么
这类服务分两堆。有些是普通的试用——真实的机器、真实的时间限制、需要绑卡。没问题,只要你知道时间在倒数。其余的则宣传永久免费的服务器,却对具体细节含糊其辞,这本身就是信号:如果一家服务商不肯以书面形式写明 CPU、RAM、网络和可接受使用政策,那就是答案。一台超售且没有明确限制的机器不会大张旗鼓地崩溃;它只会变慢,你的机器人回复迟缓,而你永远不知道原因。
你自己的电脑或 Raspberry Pi:唯一真正免费的选项
这就是那个说到做到的选项。你已经拥有的硬件,开着机,运行你的机器人。没有东西让它休眠,没有东西计量它,也没有额度会用完。如果你有一台闲置的机器和稳定的网络,这就是真正的免费 24/7 托管,本指南不会假装不是。
你付出的代价不是钱,但值得老老实实说清楚:
- 电费,整月,每个月。一台一直开着的台式电脑会在电费单上占实实在在的一笔;Raspberry Pi 则可以忽略不计。按你自己的电价算一算——任何给你报具体数字的人,都是在猜你的电价。
- 家里网络的可靠性就成了机器人的在线率。路由器凌晨 3 点重启,运营商出了一小时故障,电闪了一下。每一次都是一段空档,而你要等到服务器里有人提起才知道。
- 你的精力。Windows 更新偏偏挑最糟糕的时刻重启,或者进程悄无声息地挂掉而没有任何东西把它拉起来。在家庭环境里,你就是监控系统。
有两件事决定了这套方案是顺利运行还是反复让你头疼:
- 让它自己重启。在终端里手动启动的机器人,第一次崩溃或重启时就结束了。把它设置成开机自动恢复的服务——正是这一步,把“在家托管”和“运行到出事为止”区分开来。
- 用 Raspberry Pi,而不是你的日常电脑。它几乎不耗电,没有风扇吵你,而且——最重要的是——你不会拿它干别的,所以你做的任何事都不会把机器人搞垮。记住 SD 卡迟早会磨损,所以重要的东西要放在有备份的地方。
Python 或 Node.js 机器人的免费 24/7 托管
这个问题通常会带上一门语言:discord.py 机器人的免费 24/7 托管,或者 discord.js 机器人的。老实说,语言对免费主机能否让你的机器人保持在线几乎没有影响。休眠、冷启动、会重置的磁盘和每月额度,作用的都是进程,而不是它用什么写的。同一个免费套餐上的 Python 机器人和 Node.js 机器人,会在同一时刻、因为同一个原因下线。
语言真正起作用的,是那些决定主机到底合不合适的细节:
- 是否提供运行环境,版本是多少?discord.js 跟随 Node.js 的当前版本,discord.py 需要较新的 Python。只提供旧版运行环境、或只提供两者之一的免费套餐,在谈在线时间之前就已经把自己排除了。把主机支持的版本和库本身的要求对比一下。
- 依赖会在全新磁盘上重新安装。在文件系统会重置的主机上,每次重启或重新部署后都要重新安装机器人的库——Node.js 和 Python 都一样。这会拉长每次重启后的空档,而一旦某个依赖安装失败,机器人就根本回不来。
- 语音功能需要的不止是库。无论哪种语言,音乐机器人都需要在库之外配备原生组件——Opus 音频库、加密库和 FFmpeg——而很多免费平台既不提供,也不允许安装系统软件包。纯文字机器人不受影响。
- keep-alive 技巧长得不一样,失败的方式却一样。Python 教程在机器人上加一个小型 Flask 服务器;Node.js 教程则用 Express。无论哪种,它存在的唯一目的就是制造请求,防止平台让进程休眠,而它失效的原因和上文所述完全相同。
内存是两者的另一个区别:同样的机器人逻辑,作为 Node.js 进程和作为 Python 进程占用的 RAM 并不相同,而音乐机器人比两者都用得多。不过大多数命令和管理类机器人,在两种语言下都能轻松控制在几百兆字节以内,所以对典型的机器人来说,这不是决定性因素。
什么时候值得付费,以及只需多少钱
这里有一条清晰的界线,而且它和机器人规模大小无关。当机器人不再只属于你、而成为别人依赖的东西时,就该付费了。在那之前,宕机对你来说不过是耸耸肩。在那之后,宕机让你失去的正是你做这个机器人的初衷。
你已经越过这条线的四个迹象:
- 别人比你先发现机器人挂了。
- 这个月你已经不止一次手动重启它。
- 丢失它的数据——等级、经济系统、配置——会真的造成影响。
- 你花在维护 keep-alive 变通方案上的时间比开发机器人还多。
这个决定之所以容易,是因为价格。机器人是轻量级工作负载:一个管理或命令机器人用几百兆字节的 RAM 就绰绰有余,所以你买的不是性能,而是它能运行并持续运行这一点。HytHost Discord 机器人托管每月 €0.89 起,进程崩溃后会自动重启,数据库在重启后依然保留,并提供 99.9% 在线率 SLA——价格大约相当于一台台式电脑本来就要花的电费。
如果你想了解把代码部署到主机上的具体操作——启动命令、依赖、不把令牌放进仓库——那是另一项工作,有它自己的指南:如何 24/7 托管 Discord 机器人。
无需保持唤醒,也无需 ping:HytHost 机器人托管让你的 Discord 机器人持续运行,每月 €0.89 起,并带自动重启。
查看机器人托管常见问题解答
免费托管是真实存在的;但能在无人值守时保持在线的免费托管要少得多。真正做到这一点的唯一选项,是你自己拥有并一直开着的硬件,例如 Raspberry Pi。开发者平台的免费套餐在设计上就不一样——它们会让不活跃的进程休眠,或按月计量用量——所以放在上面的机器人会在周期中的某个时刻停掉,而不是持续运行。
通常是因为平台看不到任何活动。Discord 机器人维持着一个到 Discord 的出站连接,不接收任何传入的 HTTP 请求,所以会让不活跃服务休眠的平台认为它什么都没做。其他常见原因是每月用量额度在周期中途用完,或者进程崩溃后没有配置任何自动重启机制。
区别很小。无论机器人跑在 discord.py 还是 discord.js 上,免费主机都会以同样的方式让进程休眠、重置磁盘和计量用量,所以两种语言的机器人会因为同样的原因下线。语言只影响适配性:主机是否提供库所需的运行环境版本,能否安装 FFmpeg 等语音依赖,以及重启后重新安装依赖要花多长时间。
它很适合用来编写和测试机器人。Replit 是开发环境,关掉工作区后让进程继续运行是一项付费功能而不是默认行为——所以留在免费套餐上的机器人会停下来。在那里开发,再放到专为长期运行进程打造的地方运行,就是让两种工具各尽其用。
它不是为此设计的,效果也不好。Actions 运行有最长时限的 CI 任务,所以用这种方式托管的机器人会按计划重启,每次都有一段空档。GitHub 还把 Actions 限定在与仓库自身软件相关的工作上,而常驻运行的机器人不属于此类。它非常适合在每次 push 时测试机器人的代码。
有可能,而且发生的方式很容易被忽略。在很多免费套餐上,服务重新部署或重启时文件系统会被重置,所以写在代码旁边的 JSON 文件是临时存储,却能连续好几天表现得像永久存储。凡是必须在重启后保留的数据——等级、经济系统、各服务器的设置——都应该放进数据库,而不是那块磁盘上。
很便宜,因为机器人是轻量级工作负载。大多数命令和管理类机器人用几百兆字节的 RAM 就能轻松运行,所以价格买的是持续在线,而不是性能。HytHost Discord 机器人托管每月 €0.89 起,包含崩溃后自动重启、数据库以及 99.9% 在线率 SLA。
可以,对大多数机器人来说,就是复制文件再加一条启动命令。代码不用改:同一个 Discord.js 或 discord.py 项目以同样的方式运行。变化在于令牌改放到启动变量里,而不是平台的密钥设置中,持久化数据则从本地文件迁移到数据库。分步操作请看关于 24/7 托管 Discord 机器人的指南。
这篇指南对你有帮助吗?