如何搭建 Lavalink 服务器
本页内容
Lavalink 是一个面向 Discord 音乐机器人的独立音频服务器。机器人向它发送指令——播放这首、跳过、调节音量——而 Lavalink 承担繁重的工作:获取曲目、编码音频,并将其推流到语音频道。机器人本身保持轻量,一台 Lavalink 服务器即可服务多个服务器(guild)。
本指南将搭建 Lavalink 4,进行安全配置,添加 YouTube 插件并将机器人连接上去——无论是在你自己的机器上,还是使用 Lavalink 托管。
Lavalink 的运行要求
- Java 17 或更高版本。Lavalink 推荐使用最新的 LTS 版本。
- Lavalink 4.2 或更高版本。自 2026 年 3 月起,Discord 只允许端到端加密语音(DAVE 协议),而 Lavalink 4.2.0 是首个支持它的版本。旧版服务器已无法在 Discord 中播放音频。
- 机器人中的客户端库需支持相同版本——当前的 lavalink-client、Shoukaku、Wavelink、lavalink.py 等均已支持。如何选择请参阅如何制作 Discord 音乐机器人。
- 一台持续运行的机器,因为 Lavalink 一停,音乐也就停了。
下载并启动 Lavalink
- 从 GitHub 的最新发行版下载
Lavalink.jar,放入一个空文件夹。 - 在同一文件夹中创建
application.yml(见下一节)。 - 在该文件夹中启动:
java -jar Lavalink.jar
当日志显示已启动时,Lavalink 即准备就绪。在 Linux 服务器上,Lavalink 文档建议将其作为 systemd 服务运行,以便在崩溃和重启后自动恢复;官方也发布了 Docker 镜像。
配置 application.yml
一个带 YouTube 插件的最简 Lavalink 4 配置:
server:
port: 2333
address: 0.0.0.0
lavalink:
plugins:
- dependency: "dev.lavalink.youtube:youtube-plugin:1.18.2"
snapshot: false
server:
password: "a-long-random-password"
sources:
youtube: false
soundcloud: true
bandcamp: true
twitch: true
vimeo: true
http: true
local: false
plugins:
youtube:
enabled: true
allowSearch: true
password——务必修改。示例配置自带youshallnotpass,这是公开的密码;任何找到你服务器的人都能用默认密码使用它。port——默认为2333;机器人连接的就是这个端口。sources.youtube: false——内置的 YouTube 源已被弃用。插件会取代它,其文档要求必须关闭内置源。http: true允许机器人播放直链;官方示例提示,在没有代理的情况下,这可能暴露你服务器的 IP。
YouTube、Spotify 及其他音源
插件列在 lavalink.plugins 下,并在启动时下载。有两个值得了解:
- youtube-source(
dev.lavalink.youtube:youtube-plugin)——YouTube 播放与搜索。YouTube 会主动拦截自动化访问,因此在插件更新之前可能会失效;请保持使用最新版本。 - LavaSrc(
com.github.topi314.lavasrc:lavasrc-plugin)——增加 Spotify、Apple Music、Deezer 等支持。Spotify 和 Apple Music 链接只读取曲目信息,音频则从其他音源播放。
将机器人连接到 Lavalink
每个 Lavalink 客户端都需要相同的四个值,合称一个节点(node):
| 设置 | 值 |
|---|---|
| Host | 运行 Lavalink 的机器地址 |
| Port | application.yml 中的 server.port |
| Password | 你设置的 lavalink.server.password |
| Secure | false,除非你把 Lavalink 放在 HTTPS 之后 |
例如,Python 中的 Wavelink 使用 wavelink.Node(uri="http://your-host:2333", password="...")。如果机器人无法连接,请先检查密码,再确认从机器人运行的位置能否访问该端口。
在 HytHost 上托管 Lavalink
- 选择 Lavalink 作为运行环境。在 Discord 机器人托管页面选择方案,并选择 Lavalink 作为语言。服务器会在 Java 21 上安装最新的 Lavalink 及官方示例配置。
- 修改密码。在文件管理器中打开
application.yml,替换默认密码。面板已将地址和端口设置为你服务器自己的端口,这两项请保持不变。 - 添加 YouTube 插件(如需 YouTube):加入上方配置中的插件块和
youtube: false,然后重启。 - 连接机器人,使用面板中显示的服务器地址和端口,以及你设置的密码。
Lavalink 作为独立服务器运行,与机器人分开。你可以为机器人订购一个方案,再订购一个 Lavalink 运行环境的方案;或者在拥有多个机器人槽位的方案中,请我们将其中一个切换为 Lavalink 运行环境。在我们的测试中,Lavalink 空闲时占用不到 200 MB;对于一个小型机器人,我们的建议是 1 GB,如果同时在很多服务器中播放则需要更多。
Lavalink 是 HytHost Discord 机器人托管的运行环境之一,与 Node.js、Python 和 Java 并列——€0.89/月起。
查看机器人托管方案常见问题
一个面向 Discord 音乐机器人的独立音频服务器。机器人告诉它播放什么,Lavalink 负责获取、编码音频并推流到语音频道,因此机器人本身保持轻量。
Java 17 或更高版本,Lavalink 团队推荐最新的 LTS 版本。同时还需要 Lavalink 4.2 或更高版本,因为 Discord 现在要求加密语音。
示例配置中的端口为 2333,密码为 youshallnotpass。在让服务器上线之前请修改密码;默认密码人尽皆知。
内置的 YouTube 源已被弃用。添加 youtube-source 插件,将 sources.youtube 设为 false 并重启。如果之后再次失效,请更新插件,因为 YouTube 会定期改变拦截自动化访问的方式。
没有官方数据。在我们的测试中,它空闲时占用不到 200 MB;对于小型机器人,我们的建议是 1 GB,如果同时在很多服务器中播放则需要更多。
这篇指南对你有帮助吗?