你笔记本上的一个 Discord 机器人,在你合盖那一刻就死了。测试没问题——但对一个你服务器真正依赖的机器人就没用。把它搬到一台 VPS 上,它就保持在线:它熬过你的 wifi 掉线、你睡觉时不停、并自己重连 Discord。
这是整套——一个极简机器人、一个让它保活的服务,以及怎么不交证件就付款。
为什么用 VPS,而不是你的笔记本
一个 Discord 机器人需要一条到 Discord 网关的稳定、常开连接。笔记本会睡眠、为更新重启、换网络——每一次,机器人都掉线,成员会注意到。一台 VPS 全天候保持一条稳定连接。那就是人们把机器人从个人机器上搬走的全部理由。
多大规格——以及你怎么付款
一个 Discord 机器人很轻。它持有一个 websocket、对事件做反应,所以机器大多在等:
- 1 GB 内存、1–2 核 覆盖大多数机器人——甚至相当忙的。
- 只有当机器人自己挑大梁时才往上升:图像生成、本地模型、给很多服务器的音频、大数据库。
两个实用的抉择:
- NAT 就够。 机器人只发出出站连接到 Discord,所以带端口转发 SSH 的 NAT 套餐就行——不用独立IP、不用开入站端口。只有当你还跑一个 Web 面板或接收 webhook 时,才加公网 IP。
- 无需KYC、加密付款。 用一个邮箱注册、用 Base 或 Ethereum 上的 USDC 或 USDT 付款——不用卡、不用文件。银行卡也能用,但 on-ramp 有约 $27 的最低额,所以对便宜套餐,一次充一小笔余额更顺。
它是纯 CPU、从德国的单一数据中心运行——对机器人完全没问题,如果你需要 GPU 或某个特定地区,知道一下也好。
一个极简机器人
SSH 进去、装 Python,放进一个小的 discord.py 机器人:
sudo apt update && sudo apt install -y python3-venv
mkdir ~/bot && cd ~/bot
python3 -m venv venv && source venv/bin/activate
pip install -U discord.py
# bot.py
import os, discord
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
@client.event
async def on_ready():
print(f"online as {client.user}")
@client.event
async def on_message(m):
if m.author == client.user:
return
if m.content == "!ping":
await m.channel.send("pong")
client.run(os.environ["DISCORD_TOKEN"])
从 Discord 开发者门户拿 token(你的应用 → Bot → Reset Token),如果你的机器人读消息,就在那里启用 Message Content intent。
用 systemd 保活
在 SSH 会话里跑 python bot.py,意味着你一断开机器人就死。一个 systemd 服务修好这个——它崩溃时重启、熬过重启:
# /etc/systemd/system/discordbot.service
[Unit]
Description=Discord bot
After=network-online.target
[Service]
User=botuser
WorkingDirectory=/home/botuser/bot
Environment=DISCORD_TOKEN=your-token-here
ExecStart=/home/botuser/bot/venv/bin/python bot.py
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now discordbot
sudo journalctl -u discordbot -f # 看日志
那就是“一个我手动跑的脚本”和“一个自己跑起来的机器人”之间的差别。
诚实的注意事项
- 看好 token。 把它放在服务文件里(只有 root 可读)或一个环境变量里、以非 root 的
botuser跑、永远别提交。如果泄露,立刻在开发者门户里重置它。 - 语音更重。 一个给很多服务器推流的音乐/语音机器人,比一个文本机器人需要更多 CPU 和带宽——扩容前先配置并测试。
- 盯住机器人做什么,不只是托管。 托管很便宜;如果你的机器人在循环里调付费 API,成本就出现在那儿。
在这之内,一个跑在自己服务器上的 Discord 机器人就是保持在线——这正是全部重点。挑一个套餐、用加密货币付款,几分钟内让它上线。如果你还跑别的机器人,同样的 systemd 套路让任何进程保活。
开箱即用的配置: 见 面向 Discord 机器人的 VPS——推荐套餐加一分钟的加密部署。
评论
暂无评论。来做第一个吧。