跳到内容
Discord

安装 Discord 服务器

本指南介绍如何在 Discord 开发者门户创建应用和机器人、保护令牌、邀请到社区服务器,并在 Linux VPS 上 24 小时托管(systemd、pm2 或 Docker)。预计 30 到 45 分钟;小型机器人使用入门级 VPS 即可。

最后更新:2026/10/9

本指南介绍如何在 Discord 开发者门户创建应用和机器人、保护令牌、邀请到社区服务器,并在 Linux VPS 上 24 小时托管(systemd、pm2 或 Docker)。预计 30 到 45 分钟;小型机器人使用入门级 VPS 即可。

分步安装

  1. 为 Discord 账号启用两步验证,并安装当前 LTS 版本的 Node.js(或 Python)。

  2. 在 discord.com/developers/applications 创建应用(New Application)。

  3. 在 Bot 标签页生成令牌(Reset Token),仅复制一次到密码管理器或 .env 文件。

  4. 仅启用实际用到的 Privileged Gateway Intents(Presence、Server Members、Message Content)。

  5. 用“机器人邀请链接”工具生成邀请链接(bot + applications.commands scope,最小权限)。

  6. 打开链接,选择服务器(需要“管理服务器”权限)并授权。

  7. 编写最小机器人(discord.js),用 .env 中的令牌在本地测试。

  8. 准备 Linux VPS:非 root 用户、防火墙、Node.js(参见“准备 VPS”指南)。

  9. 部署代码,把令牌放入 .env 文件(chmod 600),用 systemd、pm2 或 Docker 运行机器人。

  10. 配置社区服务器:角色、频道、权限、Webhook 与管理。

前提条件

需要 Discord 账号(启用 2FA)、您拥有或管理的服务器,以及 Node.js LTS(或 Python):请核对所安装 discord.js 版本要求的最低版本。托管方面:Linux VPS(小型机器人通常 1 vCPU 加 512 MB 到 1 GB 内存即可,视代码调整)。切勿分享机器人令牌,它拥有机器人的完全控制权。

创建应用和机器人

  • discord.com/developers/applications → New Application → 名称 → Create。
  • General Information:复制 Application ID(公开的 client_id)。
  • Bot → Reset Token → 复制令牌(仅显示一次)。
  • 令牌一旦泄露(公开 Git 仓库、截图等),立即执行 Reset Token。

保护令牌(.env)

切勿把令牌写进代码。使用被 Git 忽略、仅当前用户可读的 .env 文件。示例(虚构值):

echo 'DISCORD_TOKEN=ChangeMe!' > .env
chmod 600 .env
echo '.env' >> .gitignore

Privileged Intents

  • Server Members Intent:成员加入/离开事件与完整成员列表。
  • Message Content Intent:读取消息文本(只用斜杠命令则不需要)。
  • Presence Intent:成员在线状态。
  • 超过一定服务器数量(撰写时 Discord 政策为 100)后,这些 intent 需要验证机器人:请查看最新政策。

邀请机器人

邀请链接格式如下(虚构 client_id,permissions = 3072:查看并发言)。用权限计算器求得整数,再用专用工具组装链接:

https://discord.com/oauth2/authorize?client_id=123456789012345678&scope=bot%20applications.commands&permissions=3072

最小机器人(discord.js)

安装:npm init -y && npm install discord.js dotenv。index.js 文件(最新 API 见 discordjs.guide):

require('dotenv').config();
const { Client, Events, GatewayIntentBits } = require('discord.js');

const client = new Client({ intents: [GatewayIntentBits.Guilds] });

client.once(Events.ClientReady, (c) => console.log(`Logged in as ${c.user.tag}`));

client.login(process.env.DISCORD_TOKEN);

用 systemd 托管

文件 /etc/systemd/system/discord-bot.service(调整 User 和路径,用 “which node” 确认 node 路径)。然后执行:sudo systemctl daemon-reload && sudo systemctl enable --now discord-bot;日志:journalctl -u discord-bot -f。

[Unit]
Description=Discord bot
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=botuser
WorkingDirectory=/home/botuser/bot
EnvironmentFile=/home/botuser/bot/.env
ExecStart=/usr/bin/node index.js
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

用 pm2 托管

pm2 会在进程崩溃时重启。“pm2 startup” 会输出一条需用 sudo 执行的命令,使 pm2 随系统启动。

sudo npm install -g pm2
pm2 start index.js --name discord-bot
pm2 save
pm2 startup
pm2 logs discord-bot

用 Docker 托管

下方 Dockerfile(Node 版本需符合 discord.js 要求)。构建并运行,令牌通过 env 文件传入:docker build -t discord-bot . && docker run -d --restart unless-stopped --env-file .env --name discord-bot discord-bot

FROM node:lts-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev
COPY . .
USER node
CMD ["node", "index.js"]

配置社区服务器

  • 角色:按职能创建角色(管理员、版主、成员)并授予最小权限;机器人的角色必须位于其管理的角色之上。
  • 频道:建立分类(欢迎、规则、综合、支持、语音),按分类而非单个频道设置权限。
  • Webhook:要发布游戏服务器状态,请用“Webhook 嵌入构建器”制作嵌入。
  • 管理:验证等级、AutoMod、审核日志;在服务器设置中为版主启用 2FA 要求。
  • 曝光:在 game-rank.com/jeux 登记您的游戏服务器以便被发现。

故障排除

  • “TokenInvalid” / “An invalid token was provided”:令牌错误、多余空格或已被重置。请通过 Reset Token 重新复制。
  • “Used disallowed intents”:在 Bot 标签页启用对应特权 intent,或从代码中移除。
  • “Missing Access” / “Missing Permissions”:机器人在该频道无权限,或其角色在层级中过低。
  • 斜杠命令不显示:邀请时缺少 applications.commands scope,或命令未注册(部署);请用正确链接重新邀请机器人。
  • 机器人在 VPS 上掉线:查看日志(journalctl -u discord-bot -f),检查可用内存以及是否设置了 Restart=on-failure。

常见问题

Discord 机器人免费吗?
在开发者门户创建机器人是免费的,只有托管(VPS 或常开的电脑)可能每月花费几欧元。
令牌泄露了怎么办?
立即在 Bot 标签页点击 Reset Token,更新 .env,重启机器人并检查服务器审核日志。
systemd、pm2 还是 Docker?
systemd 最轻量且内置于 Linux;pm2 适合同时管理多个 Node.js 进程;Docker 隔离环境并使部署可复现。三者都能在崩溃后重启机器人。
托管机器人需要开放端口吗?
不需要:机器人自己向 Discord 发起出站连接。仅需保持 SSH 端口可访问以便管理(除非对外提供网站)。

Discord 服务器工具

Discord
Discord免登录
创建带嵌入的 Discord Webhook 消息:实时预览、JSON 和 curl 示例。本站不会发送任何内容。
Webhook嵌入打开
文档
Discord
Discord免登录
在 Discord 权限整数与复选框之间互相转换,使用官方位值。
权限机器人打开
文档
Discord
Discord免登录
生成机器人的 OAuth2 邀请链接:client_id、scope、权限、预选服务器。
OAuth2机器人打开
文档