Krak Multiplayer
EN
Download
Help

Krak Server

Krak Server is the Krak Multiplayer server agent: a small program for a dedicated server or a VPS that hosts the Minecraft servers running there through Krak Multiplayer, around the clock. You control it from the app on your phone or PC.

Set it up in 6 steps

You need the machine your Minecraft server runs on (a VPS, a dedicated server or a home PC) and Krak Multiplayer on your phone or PC. You type one command on the machine; everything else happens in the app.

  1. Start your Minecraft server on that machine as usual: a Bedrock Dedicated Server, a Java server, or Java with Geyser.
  2. Open a terminal on that machine as administrator. Windows: right-click the Start button and choose Terminal (Admin) or Windows PowerShell (Admin). Linux: open a terminal or connect over SSH.
  3. Copy the install command for your system below (the Copy button), paste it into the terminal and press Enter. On Linux, type your password if sudo asks for it.
  4. Wait up to a minute. The command downloads Krak Server, checks it, installs it and shows a big pairing code like 7Q4M-X2PA and a link. You don't need to type anything else there.
  5. On your phone or PC open Krak Multiplayer, tap the + button, then Host a remote server, and enter the code (or open the link). Check the server's name and approve.
  6. Choose which Minecraft server on the machine to share and as which world, then Save. Your world is online for your friends whenever the machine runs.

Install on Linux

Paste this into a terminal and press Enter (sudo may ask for your password):

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

The script picks the build for your processor, checks its SHA-256, installs Krak Server as the system service krak-server, starts it and shows the pairing code. Later, sudo krak-server status shows it again. By hand: download the archive for your processor from the download page, compare its SHA-256, unpack it with tar xzf and run sudo ./krak-server install. Running the installer again updates Krak Server.

Install on Windows

Open PowerShell as administrator (right-click the Start button, Terminal (Admin)), paste this and press Enter:

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

This installs the Windows service Krak Server, which starts with Windows and restarts after a failure, adds krak-server.exe to PATH and shows the pairing code. Later, krak-server.exe status in any new administrator terminal shows it again; the program is in C:\Program Files\Krak Server.

To try it first without installing: download the zip, unpack it and run krak-server.exe in a console. It pairs and hosts until you close it.

What it does

Krak Server signs in with a pairing code, never with your password. It finds the Bedrock and Java servers on the same machine and shares the ones you choose in the app as Krak worlds. Players join them from Krak Multiplayer like any other world: the server shows up in Minecraft's own LAN list.

Game traffic goes through Krak's relay. Players never see the server's IP address and the server never sees theirs. Krak Server opens no ports and needs no port forwarding: it only connects out to krak-mp.cc.

You control the server in the app: tap +, then Host a remote server, or open My worlds, where your servers are listed. There you choose what to host, start and stop it, and see its players, join requests, kicks and bans and its health. That screen says Remote control, so it is never mistaken for hosting on your own device.

Requirements

  1. Linux on x86_64 or ARM64 (systemd for the service that runs all the time), or Windows 10, 11 or Server 2019 and newer on x64.
  2. A Bedrock Dedicated Server, a Java server (Paper, Fabric and others) or a Java server with Geyser on the same machine.
  3. A Krak Multiplayer account with a confirmed email or Google sign-in, and the app 0.8.5 or newer to pair and control the server (the + button from 0.8.6).
  4. About 15 MB of disk and 40 MB of memory. Next to the game server Krak Server uses very little CPU.

Pair it with your account

  1. The install command shows the pairing code at its end. Later, or when the code has expired, run sudo krak-server status on the machine (on Windows: krak-server.exe status in an administrator terminal).
  2. In Krak Multiplayer tap +, then Host a remote server, and type the code, or open the link on your phone. In the app 0.8.5: Profile, My servers, Add a server.
  3. Check the server's name, system and network, then approve. The code works for 10 minutes; then the server shows a new one.

Only approve a code shown by a server you control. Anyone who asks you for a code wants to host in your name.

Choose what to host

Open the server (in My worlds, or + then Host a remote server) and tap Host on this server. Pick a server found on the machine, then one of your Local worlds or a new one. Name, description, icon, access and the other world settings are edited in the app as usual.

An account hosts one world at a time, with or without Krak Plus: a world on your phone or PC, a server hosted through the app or a world on a Krak Server. A cross-play server (Paper with Geyser) is one world with both editions. You can pair up to 2 servers, or 7 with Krak Plus, and keep a world on each: switch hosting on for the one you want now. With Krak Plus your External server can stay listed meanwhile, unless it is the same server.

Join approval works, but requests expire after 2 minutes. For a server that runs while you sleep, turn approval off and use the world's access settings and bans instead.

Bedrock Dedicated Server settings

Krak players join through the LAN list, so the server must accept LAN players. In server.properties set:

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

With online-mode=false the server does not check Xbox sign-in. If the server's own port is also open to the internet, players who connect to it directly can join under any name, also an operator's. Keep the Bedrock port closed to the internet, or accept unverified direct players.

Only one Bedrock server per machine can be visible on the LAN: it takes UDP port 7551. Minecraft 1.26.52 and newer let Krak players in only that way, so a second Bedrock server on the same machine cannot be shared: Krak Server does not host it and the app says why. Stop the other server, or turn on RakNet on the second one. Restart the server after changing these settings.

Java servers

A Java server needs nothing special: Krak Server connects to the server's port on the same machine. On an online-mode server players need Minecraft: Java Edition as usual.

Geyser: Bedrock players on a Java server

With Geyser on Paper, Spigot or a proxy, Bedrock players come in through Geyser's Bedrock port, and Krak Server shares that port like a Bedrock server. A default Geyser turns away every Bedrock player who comes through Krak: they see “Please log into Xbox”, because they join as a LAN game, without the Xbox sign-in check Geyser expects. Krak Server does not see this refusal, so the app cannot tell you about it. Set this in Geyser's config.yml (plugins/Geyser-Spigot/config.yml on Paper and Spigot):

validate-bedrock-login: false

Then restart the server. Geyser no longer checks the Xbox sign-in of Bedrock players: keep its Bedrock port (19132 by default) closed to the internet, or players who connect to it directly can join under any Bedrock name. Krak needs no open port.

Java players are not affected, and the Java server can keep online-mode=true. With Floodgate, Bedrock players join without a Java account; without Floodgate, Geyser asks every Bedrock player to sign in with a Java account.

Krak reaches Geyser over RakNet. Minecraft 26.60 is expected to end RakNet joins, so Bedrock players on 26.60 may not get in through Krak until Geyser supports them.

Docker

Run the game server container with host networking (--network host), so that Krak Server, installed on the host, sees its LAN discovery and its ports.

Settings

Krak Server reads /etc/krak-server/config.json on Linux and %ProgramData%\Krak Server\config.json on Windows. Every key is optional and unknown keys are refused. Check the file with krak-server config check and restart the service after a change.

name
The name shown in the app. Default: the machine's host name.
allow
The ports the app may share: bedrockPorts and javaPorts. Default: the usual ranges, Bedrock 19132 to 19140 and Java 25565 to 25570. A server on another port is shared only after you add its port here, on the machine itself.
updates
mode: auto (default), notify or off; window: the local time when an automatic update may restart Krak Server (default 04:00-06:00).
relay
preferred: a relay to always use; null picks the best one.
publicAddress
An address the app suggests when you turn on a public address for the world.
logLevel, logFormat
debug, info, warn or error; text or json.
limits
memoryMB: the memory limit of Krak Server (default 128).

Updates

Krak Server checks for signed updates every 6 hours and installs them by itself: in the update window, or as soon as nobody plays or the update is required. A hosted world restarts and players rejoin from the LAN list. In the app, Update now installs an update at once.

On Linux the service installs the update as it restarts, within seconds. On Windows the scheduled task Krak Server\Apply update installs it within 15 minutes: it runs as SYSTEM, stops the service, swaps the program, starts it again and checks that the new version runs. If the new version does not start, the previous one comes back. krak-server status shows a waiting update and when the task last ran.

To install an update at once on Linux:

sudo krak-server update

On Windows, in PowerShell as administrator (with the full path it works in any window):

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

Running the install command again updates Krak Server too. It keeps the pairing and the settings and creates the Windows update task again, for example after an install with --no-auto-update.

Status and logs

krak-server status shows whose account the server is paired to, the pairing code while it waits, the connection, each hosted world and its players. Logs are in the journal on Linux:

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

On Windows they are in %ProgramData%\Krak Server\logs. Logs never contain tokens, keys or players' addresses.

Remove a server

In the app: open the server (My worlds), its menu, Remove server. The server stops hosting at once and cannot sign in again. It then shows a new pairing code by itself, for this account or another one.

On the machine: sudo krak-server unpair removes the pairing; sudo krak-server uninstall removes the service, and with --purge also its settings and data.

Changing or resetting your password, signing out everywhere and a ban also sign out every server of the account.

Troubleshooting

The code expired

A code works for 10 minutes. The server shows a new one by itself: run krak-server status again.

The clock is off (clock skew)

Krak Server signs in with the machine's time. Turn on time synchronisation: timedatectl set-ntp true on Linux, the Windows Time service on Windows.

The game server is not found

Start the game server first and check that it answers on the machine (for Bedrock: enable-lan-visibility=true). Then tap Scan again in the app.

The port is not allowed

The game server runs on a port outside allow. Add the port to allow in the config file on the machine and restart Krak Server.

Players are refused

Check online-mode and allow-list in server.properties. The server's health in the app shows the refusals and their reason.

Bedrock players see “Please log into Xbox”

That is Geyser turning away players who come through Krak. Set validate-bedrock-login: false in Geyser's config.yml and restart the server (see Geyser above). The app cannot show this refusal.

krak-server.exe is not recognized

Krak Server adds its folder to PATH when it is installed: open a new terminal. Or run it with its full path: "C:\Program Files\Krak Server\krak-server.exe" status (in PowerShell put & in front). Installed it before 0.8.6? Run the install command again.

Nobody can join a second Bedrock server

Two Bedrock servers run on one machine and the other one has the LAN visibility (UDP port 7551). From Minecraft 1.26.52 on, a Bedrock server takes Krak players only through LAN visibility, so the app shows this server as stopped. Share one Bedrock server per machine: stop the other one and restart this one, or turn on RakNet on this one.

The app says another world is already hosted

An account hosts one world at a time, with or without Krak Plus. While a world runs on your phone, your PC or another Krak Server, this server waits, and it starts by itself within seconds once that world stops. To switch, stop the other world (the app offers Stop it) or turn hosting off for this server's world in the app.

The install says the server is already paired

Krak Server stays paired with the account that approved its code, also when the install command runs again. To give the server to another account, its owner removes it in the app (My worlds or its remote control, Remove server): the server then shows a new pairing code by itself, see it with krak-server status. Or on the machine: sudo krak-server unpair (on Windows: krak-server.exe unpair in an administrator terminal).

An update is staged but not installed

On Windows a scheduled task installs updates, but Krak Server before 0.8.9.1 never asked it, so a Windows server stayed on the version it was installed with. Install the update once, in PowerShell as administrator: & "C:\Program Files\Krak Server\krak-server.exe" update (or run the install command again); later updates install by themselves. If an update waits for more than 30 minutes, krak-server status says why and which command installs it. On Linux: sudo krak-server update.

Krak Server is stopped (NOT RUNNING)

Start it: in PowerShell as administrator sc.exe start KrakServer (plain sc is another command in PowerShell), on Linux sudo systemctl start krak-server. A minute later krak-server status should say online. If it stops again, its log says why: %ProgramData%\Krak Server\logs on Windows, journalctl -u krak-server on Linux. Since 0.8.9.1 an update whose new version does not start puts the previous one back by itself.

Minecraft is a trademark of Mojang Synergies AB. Krak Multiplayer is not an official Minecraft product and is not approved by or associated with Mojang or Microsoft.