EQVPS

如何在 VPS 上 24/7 托管 Discord 机器人(systemd)

在 VPS 上让 Discord 机器人 24/7 在线:安装运行时、把机器人令牌放进 env 文件、并用带 Restart=always 的 systemd 服务包装它,使其挺过崩溃和重启。含 Node 和 Python 的复制粘贴。

免费的机器人托管在容器休眠或服务在事件中途关闭之前都能用。一个带 systemd 的 3 美元 VPS 才是真正让机器人保持在线。这是操作指南;关于更完整的走查和音乐机器人说明,请看 在 VPS 上托管 Discord 机器人面向 Discord 机器人的 VPS 用例。不需要专用 IP——Discord 机器人只发出出站连接,所以 NAT 套餐(每月 3 美元起) 是理想选择。

1. 安装运行时和你的机器人(Node 示例)

apt update && apt install -y curl git
curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
apt install -y nodejs
git clone https://github.com/you/your-bot.git /opt/bot
cd /opt/bot && npm ci --omit=dev

2. 把令牌放进 env 文件

cat >/opt/bot/.env <<'EOF'
DISCORD_TOKEN=your_token_here
EOF
chmod 600 /opt/bot/.env

3. 带 Restart=always 的 systemd 服务

# /etc/systemd/system/discordbot.service
[Unit]
Description=Discord Bot
After=network.target

[Service]
WorkingDirectory=/opt/bot
ExecStart=/usr/bin/node index.js
EnvironmentFile=/opt/bot/.env
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now discordbot
journalctl -u discordbot -f

Restart=always 正是让它 24/7 的关键——凌晨三点一个未处理的 reject 会重启,而不是让机器人死着。(更多见 创建 systemd 服务。)

改用 Python?

同样的模式——一个 venv 和 discord.py,让 unit 指向 venv 的 Python:

ExecStart=/opt/bot/.venv/bin/python bot.py

备注

Nano 每月 $3,大约一分钟拿到 root,无 KYC,用加密货币付款——便宜到一个机器人项目结束时可以随手丢弃。Telegram 机器人 也是同样的模式。

常见问题

如何让 Discord 机器人 24/7 在线?

把它放到 VPS 上,用带 Restart=always 的 systemd 服务包装它,这样它崩溃后重启、开机自启。在终端里或用 nohup 运行会在断开或重启时死掉;systemd 让它保持存活并把日志写到 journalctl。Node 和 Python 的复制粘贴 unit 在下方。

Discord 机器人需要专用 IP 吗?

不需要。Discord 机器人通过 websocket 向外拨号连接到 Discord 的网关——没有任何入站连接到达你的服务器。NAT 套餐(每月 3 美元起)完美又便宜。只有当机器人同时对外提供入站 web 请求时你才会想要专用 IP。

能用的最便宜套餐是哪个?

Nano(每月 $3——2 vCPU,1 GB)能跑一个典型的 discord.js 或 discord.py 机器人,甚至同时跑好几个。机器人只占几十兆内存。例外是音乐机器人——音频流媒体想要多一点 CPU 和带宽,所以升级到 Micro/Small。

如何安全存储机器人令牌?

放在只有 root 能读的环境文件里(chmod 600),通过 systemd unit 的 Environment 或 EnvironmentFile 加载。绝不要把令牌硬编码进源码或提交到 git——泄露的令牌能让任何人控制你的机器人。

你们要身份证件或银行卡吗?

不要。注册用邮箱,用 USDC 或 USDT 付款——无文件、无卡。大约一分钟拿到 root。

评论

暂无评论。来做第一个吧。

发表评论

评论在显示前会经过审核。