−25%

Windows 年繳方案適用,至 10 月 31 日。 檢視方案

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

備註

  • 多個機器人? 為每個機器人複製一份 unit(discordbot-a.service……),或用 Docker 的 --restart unless-stopped 把每個跑在容器裡。
  • 音樂機器人? 加上 ffmpeg 並升級到 Micro/Small——音訊編碼是這裡唯一想要 CPU 的東西。所有方案流量不計量,所以流媒體不會推高帳單。

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。

評論

目前還沒有評論。歡迎成為第一位。

發表評論

評論在顯示前會經過審核。