Krak Multiplayer
ZH
下载
帮助

Krak Server

Krak Server 是 Krak Multiplayer 的服务器代理:一个用于独立服务器或 VPS 的小程序,通过 Krak Multiplayer 全天候开放在那里运行的 Minecraft 服务器。你可以在手机或电脑上的应用中控制它。

6 步完成设置

你需要运行 Minecraft 服务器的机器(VPS、独立服务器或家用电脑),以及手机或电脑上的 Krak Multiplayer。你只需要在机器上输入一条命令,其他一切都在应用中完成。

  1. 像平常一样在那台机器上启动你的 Minecraft 服务器:基岩版专用服务器、Java 版服务器,或带 Geyser 的 Java 版。
  2. 在那台机器上以管理员身份打开终端。Windows:右键点击“开始”按钮,选择“终端(管理员)”或“Windows PowerShell(管理员)”。Linux:打开终端或通过 SSH 连接。
  3. 复制下面适用于你系统的安装命令(“复制”按钮),粘贴到终端并按回车。在 Linux 上,如果 sudo 要求,请输入你的密码。
  4. 最多等一分钟。命令会下载 Krak Server、检查它、安装它,并显示一个大大的配对码(例如 7Q4M-X2PA)和一个链接。你不需要在那里再输入任何内容。
  5. 在你的手机或电脑上打开 Krak Multiplayer,点按 + 按钮,然后选择“开放远程服务器”,输入配对码(或打开链接)。检查服务器的名称并批准。
  6. 选择要分享机器上的哪个 Minecraft 服务器,以及作为哪个世界,然后保存。只要机器在运行,你的世界就对好友在线。

在 Linux 上安装

把这段命令粘贴到终端并按回车(sudo 可能会要求输入你的密码):

curl -fsSL https://krak-mp.cc/download/server/install.sh | sudo sh

脚本会为你的处理器选择合适的版本,检查它的 SHA-256,把 Krak Server 安装为系统服务 krak-server,启动它并显示配对码。之后,sudo krak-server status 会再次显示配对码。手动安装:从下载页面下载适合你处理器的压缩包,核对它的 SHA-256,用 tar xzf 解压,然后运行 sudo ./krak-server install。再次运行安装程序即可更新 Krak Server。

在 Windows 上安装

以管理员身份打开 PowerShell(右键点击“开始”按钮,选择“终端(管理员)”),粘贴这段命令并按回车:

irm https://krak-mp.cc/download/server/install.ps1 | iex

这会安装 Windows 服务 Krak Server,它会随 Windows 启动,出错后自动重启,会把 krak-server.exe 添加到 PATH 并显示配对码。之后,在任意新的管理员终端中运行 krak-server.exe status 会再次显示配对码;程序位于 C:\Program Files\Krak Server。

想先试用而不安装:下载 zip,解压后在控制台中运行 krak-server.exe。在你关闭它之前,它会完成配对并开放。

它能做什么

Krak Server 使用配对码登录,从不使用你的密码。它会找到同一台机器上的基岩版和 Java 版服务器,并把你在应用中选择的服务器作为 Krak 世界分享出去。玩家像加入其他世界一样从 Krak Multiplayer 加入它们:服务器会出现在 Minecraft 自己的局域网列表中。

游戏流量经过 Krak 的中继服务器。玩家永远看不到服务器的 IP 地址,服务器也看不到他们的。Krak Server 不开放任何端口,也不需要端口转发:它只会向外连接 krak-mp.cc。

你在应用中控制服务器:点按 +,然后选择“开放远程服务器”,或者打开列出你服务器的“我开放的世界”。在那里你可以选择开放的内容、开始和停止它,并查看它的玩家、加入请求、踢出和封禁以及健康状态。这个界面标有“远程控制”,所以永远不会和在你自己设备上开放混淆。

要求

  1. x86_64 或 ARM64 上的 Linux(常驻服务需要 systemd),或 x64 上的 Windows 10、11 或 Server 2019 及更新版本。
  2. 同一台机器上的基岩版专用服务器、Java 版服务器(Paper、Fabric 等)或带 Geyser 的 Java 版服务器。
  3. 一个已确认邮箱或使用 Google 登录的 Krak Multiplayer 账号,以及用于配对和控制服务器的 0.8.5 或更新版本的应用(+ 按钮从 0.8.6 起提供)。
  4. 约 15 MB 磁盘空间和 40 MB 内存。和游戏服务器相比,Krak Server 几乎不占用 CPU。

把它和你的账号配对

  1. 安装命令最后会显示配对码。之后,或者配对码过期时,请在机器上运行 sudo krak-server status(Windows 上:在管理员终端中运行 krak-server.exe status)。
  2. 在 Krak Multiplayer 中点按 +,然后选择“开放远程服务器”并输入配对码,或者在手机上打开链接。在 0.8.5 应用中:我的 → 我的服务器 → 添加服务器。
  3. 检查服务器的名称、系统和网络,然后批准。配对码 10 分钟内有效;之后服务器会显示一个新的。

只批准你自己控制的服务器所显示的配对码。任何向你索要配对码的人,都是想以你的名义开放世界。

选择要开放的内容

打开服务器(在“我开放的世界”中,或点按 + 然后选择“开放远程服务器”),点按“在这台服务器上开放”。选择在机器上找到的一个服务器,然后选择你的一个本地世界或新建一个。名称、简介、图标、访问权限和其他世界设置照常在应用中编辑。

一个账号同一时间只能开放一个世界,有没有 Krak Plus 都一样:可以是你手机或电脑上的世界、通过应用开放的服务器,或者 Krak Server 上的世界。跨平台服务器(带 Geyser 的 Paper)算作一个同时支持两个版本的世界。你最多可以配对 2 台服务器,有 Krak Plus 时最多 7 台,每台上都可以保留一个世界:为你现在想要的那个开启开放。有 Krak Plus 时,你的外部服务器可以同时保持展示,除非它就是同一台服务器。

加入审批可以使用,但请求会在 2 分钟后过期。对于你睡觉时也在运行的服务器,请关闭审批,改用世界的访问设置和封禁。

基岩版专用服务器设置

Krak 玩家通过局域网列表加入,所以服务器必须接受局域网玩家。在 server.properties 中设置:

enable-lan-visibility=true
online-mode=false
allow-list=false

设置 online-mode=false 后,服务器不会检查 Xbox 登录。如果服务器自己的端口也对互联网开放,直接连接它的玩家可以用任何名字加入,包括管理员的名字。请不要把基岩版端口开放到互联网,或者接受未经验证的直连玩家。

每台机器只能有一个基岩版服务器在局域网中可见:它会占用 UDP 7551 端口。Minecraft 1.26.52 及更新版本只通过这种方式放行 Krak 玩家,所以同一台机器上的第二个基岩版服务器无法分享:Krak Server 不会开放它,应用会说明原因。请停止另一个服务器,或者在第二个服务器上开启 RakNet。更改这些设置后请重启服务器。

Java 版服务器

Java 版服务器不需要任何特殊设置:Krak Server 会连接同一台机器上服务器的端口。在 online-mode 服务器上,玩家照常需要 Minecraft:Java 版。

Geyser:Java 版服务器上的基岩版玩家

在 Paper、Spigot 或代理上使用 Geyser 时,基岩版玩家通过 Geyser 的基岩版端口进入,Krak Server 会像分享基岩版服务器一样分享这个端口。默认设置的 Geyser 会拒绝每一位经由 Krak 进入的基岩版玩家:他们会看到“Please log into Xbox”,因为他们以局域网游戏的方式加入,没有经过 Geyser 期望的 Xbox 登录检查。Krak Server 看不到这次拒绝,所以应用无法告诉你。请在 Geyser 的 config.yml 中设置(Paper 和 Spigot 上是 plugins/Geyser-Spigot/config.yml):

validate-bedrock-login: false

然后重启服务器。Geyser 不再检查基岩版玩家的 Xbox 登录:请不要把它的基岩版端口(默认 19132)开放到互联网,否则直接连接它的玩家可以用任何基岩版名字加入。Krak 不需要开放任何端口。

Java 版玩家不受影响,Java 版服务器可以保持 online-mode=true。使用 Floodgate 时,基岩版玩家无需 Java 版账号即可加入;不使用 Floodgate 时,Geyser 会要求每位基岩版玩家用 Java 版账号登录。

Krak 通过 RakNet 连接 Geyser。预计 Minecraft 26.60 将不再支持 RakNet 加入,所以在 Geyser 支持之前,26.60 的基岩版玩家可能无法通过 Krak 进入。

Docker

用主机网络(--network host)运行游戏服务器容器,这样安装在主机上的 Krak Server 才能看到它的局域网发现和端口。

设置

Krak Server 在 Linux 上读取 /etc/krak-server/config.json,在 Windows 上读取 %ProgramData%\Krak Server\config.json。每个键都是可选的,未知的键会被拒绝。用 krak-server config check 检查文件,修改后请重启服务。

name
在应用中显示的名称。默认:机器的主机名。
allow
应用可以分享的端口:bedrockPorts 和 javaPorts。默认:常用范围,基岩版 19132 到 19140,Java 版 25565 到 25570。其他端口上的服务器只有在你在这台机器上把它的端口添加到这里后才会被分享。
updates
mode:auto(默认)、notify 或 off;window:自动更新可以重启 Krak Server 的本地时间(默认 04:00-06:00)。
relay
preferred:始终使用的中继服务器;null 会自动选择最佳的一个。
publicAddress
当你为世界开启公开地址时,应用建议使用的地址。
logLevel, logFormat
debug、info、warn 或 error;text 或 json。
limits
memoryMB:Krak Server 的内存上限(默认 128)。

更新

Krak Server 每 6 小时检查一次已签名的更新,并自动安装:在更新时段内,或者在没有人玩、更新为必需时立即安装。正在托管的世界会重新启动,玩家从局域网列表重新加入。在应用中点“立即更新”可以马上安装更新。

在 Linux 上,服务会在重启时于几秒内安装更新。在 Windows 上,由计划任务 Krak Server\Apply update 在 15 分钟内安装:它以 SYSTEM 身份运行,停止服务,替换程序,再次启动服务,并检查新版本是否在运行。如果新版本无法启动,会恢复到上一个版本。krak-server status 会显示等待中的更新以及任务上次运行的时间。

在 Linux 上立即安装更新:

sudo krak-server update

在 Windows 上,以管理员身份在 PowerShell 中运行(使用完整路径,在任何窗口都能用):

& "C:\Program Files\Krak Server\krak-server.exe" update

再次运行安装命令也会更新 Krak Server。它会保留配对和设置,并重新创建 Windows 更新任务,例如在使用 --no-auto-update 安装之后。

状态和日志

krak-server status 会显示服务器配对到了谁的账号、等待中的配对码、连接状态,以及每个开放的世界和其中的玩家。在 Linux 上,日志位于 journal 中:

sudo krak-server status
journalctl -u krak-server -f

在 Windows 上,日志位于 %ProgramData%\Krak Server\logs。日志中绝不会包含令牌、密钥或玩家的地址。

移除服务器

在应用中:打开服务器(我开放的世界),打开它的菜单,选择“移除服务器”。服务器会立即停止开放,并且无法再次登录。之后它会自动显示一个新的配对码,可用于这个账号或其他账号。

在机器上:sudo krak-server unpair 会解除配对;sudo krak-server uninstall 会移除服务,加上 --purge 还会移除它的设置和数据。

更改或重置密码、在所有地方退出登录以及封禁,也会让这个账号的所有服务器退出登录。

故障排除

配对码过期了

配对码 10 分钟内有效。服务器会自动显示一个新的:再次运行 krak-server status 即可。

时间不准(时钟偏差)

Krak Server 使用机器的时间登录。请开启时间同步:Linux 上运行 timedatectl set-ntp true,Windows 上启用 Windows Time 服务。

找不到游戏服务器

先启动游戏服务器,并确认它在机器上有回应(基岩版:enable-lan-visibility=true)。然后在应用中点按“重新扫描”。

端口不被允许

游戏服务器运行在 allow 之外的端口上。请在机器上的配置文件中把这个端口添加到 allow,然后重启 Krak Server。

玩家被拒绝

检查 server.properties 中的 online-mode 和 allow-list。应用中的服务器健康状态会显示拒绝记录及其原因。

基岩版玩家看到“Please log into Xbox”

这是 Geyser 在拒绝经由 Krak 进入的玩家。请在 Geyser 的 config.yml 中设置 validate-bedrock-login: false 并重启服务器(见上方的 Geyser 部分)。应用无法显示这次拒绝。

无法识别 krak-server.exe

Krak Server 安装时会把它的文件夹添加到 PATH:请打开一个新的终端。或者用完整路径运行它:"C:\Program Files\Krak Server\krak-server.exe" status(在 PowerShell 中要在前面加上 &)。如果是在 0.8.6 之前安装的,请再次运行安装命令。

没有人能加入第二个基岩版服务器

一台机器上运行着两个基岩版服务器,另一个拥有局域网可见性(UDP 7551 端口)。从 Minecraft 1.26.52 起,基岩版服务器只通过局域网可见性接收 Krak 玩家,所以应用会把这个服务器显示为已停止。每台机器只分享一个基岩版服务器:停止另一个并重启这个,或者在这个服务器上开启 RakNet。

应用提示已经有另一个世界在开放

一个账号同一时间只能开放一个世界,有没有 Krak Plus 都一样。当你的手机、电脑或另一台 Krak Server 上有世界在运行时,这台服务器会等待,那个世界停止后几秒内它就会自动开始。要切换,请停止另一个世界(应用会提供“停止它”),或者在应用中为这台服务器的世界关闭开放。

安装时提示服务器已经配对

Krak Server 会一直与批准其配对码的账号保持配对,即使再次运行安装命令也一样。要把服务器转给另一个账号,需要由它的所有者在应用中移除它(我开放的世界或它的远程控制 → 移除服务器):之后服务器会自动显示一个新的配对码,用 krak-server status 查看。或者在机器上运行:sudo krak-server unpair(Windows 上:在管理员终端中运行 krak-server.exe unpair)。

更新已下载但没有安装

在 Windows 上由计划任务安装更新,但 0.8.9.1 之前的 Krak Server 从未请求过它,所以 Windows 服务器一直停留在安装时的版本。请以管理员身份在 PowerShell 中安装一次更新:& "C:\Program Files\Krak Server\krak-server.exe" update(或者再次运行安装命令);之后的更新会自动安装。如果某个更新等待超过 30 分钟,krak-server status 会说明原因以及用哪个命令安装。在 Linux 上:sudo krak-server update

Krak Server 已停止(NOT RUNNING)

启动它:以管理员身份在 PowerShell 中运行 sc.exe start KrakServer(在 PowerShell 中单独的 sc 是另一个命令),在 Linux 上运行 sudo systemctl start krak-server。一分钟后,krak-server status 应该显示 online。如果它再次停止,日志里会写明原因:Windows 上在 %ProgramData%\Krak Server\logs,Linux 上用 journalctl -u krak-server 查看。从 0.8.9.1 起,如果更新后的新版本无法启动,会自动恢复到上一个版本。

Minecraft 是 Mojang Synergies AB 的商标。Krak Multiplayer 不是官方 Minecraft 产品,未经 Mojang 或 Microsoft 批准,也与 Mojang 或 Microsoft 无关。