Krak Server
Krak Serverは、Krak Multiplayerのサーバーエージェントです。専用サーバーやVPSで動く小さなプログラムで、そこで動いているMinecraftサーバーをKrak Multiplayer経由で24時間ホストします。操作はスマホやPCのアプリから行います。
6ステップでセットアップ
Minecraftサーバーが動いているマシン(VPS、専用サーバー、自宅のPC)と、スマホかPCのKrak Multiplayerが必要です。マシンで入力するコマンドは1つだけで、残りはすべてアプリで行います。
- そのマシンでいつもどおりMinecraftサーバーを起動します:Bedrock Dedicated Server、Javaサーバー、またはGeyserつきのJava。
- そのマシンで管理者としてターミナルを開きます。Windows:スタートボタンを右クリックして、ターミナル(管理者)かWindows PowerShell(管理者)を選びます。Linux:ターミナルを開くかSSHで接続します。
- 下にある自分のシステム用のインストールコマンドをコピーし(コピーボタン)、ターミナルに貼り付けてEnterを押します。Linuxでは、sudoに求められたらパスワードを入力します。
- 1分ほど待ちます。コマンドがKrak Serverをダウンロードし、確認し、インストールして、7Q4M-X2PAのような大きなペアリングコードとリンクを表示します。そこでほかに入力するものはありません。
- スマホかPCでKrak Multiplayerを開き、+ボタンをタップして、「リモートサーバーをホスト」をタップし、コードを入力します(またはリンクを開きます)。サーバーの名前を確認して承認します。
- マシンのどのMinecraftサーバーを、どのワールドとして共有するかを選び、保存します。マシンが動いている間、ワールドはいつでもフレンドにオンラインで表示されます。
Linuxにインストール
これをターミナルに貼り付けてEnterを押します(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を開き(スタートボタンを右クリック、ターミナル(管理者))、これを貼り付けてEnterを押します:
irm https://krak-mp.cc/download/server/install.ps1 | iex
これにより、Windowsと一緒に起動して失敗時に再起動するWindowsサービスKrak Serverがインストールされ、krak-server.exeがPATHに追加され、ペアリングコードが表示されます。後で、新しい管理者のターミナルでkrak-server.exe statusを実行すると、もう一度表示されます。プログラムはC:\Program Files\Krak Serverにあります。
インストールせずに先に試すには:zipをダウンロードして展開し、コンソールでkrak-server.exeを実行します。閉じるまでペアリングしてホストします。
何ができるか
Krak Serverはパスワードではなく、ペアリングコードでログインします。同じマシンのBedrockとJavaのサーバーを見つけ、アプリで選んだものをKrakのワールドとして共有します。プレイヤーはほかのワールドと同じようにKrak Multiplayerから参加でき、サーバーはMinecraft自体のLANリストに表示されます。
ゲームの通信はKrakのリレーを通ります。プレイヤーにサーバーのIPアドレスが見えることはなく、サーバーにプレイヤーのアドレスが見えることもありません。Krak Serverはポートを開けず、ポート開放も不要です。接続するのはkrak-mp.ccへの外向きの通信だけです。
サーバーはアプリで操作します。+をタップして「リモートサーバーをホスト」を選ぶか、サーバーが一覧表示される自分のワールドを開きます。そこで、ホストするものを選び、開始と停止をし、プレイヤー、参加申請、キックとBAN、サーバーの状態を確認できます。その画面には「リモート操作」と表示されるので、自分のデバイスでのホストと間違えることはありません。
必要なもの
- x86_64またはARM64のLinux(常時動くサービスにはsystemd)、またはx64のWindows 10、11、Server 2019以降。
- 同じマシン上のBedrock Dedicated Server、Javaサーバー(Paper、Fabricなど)、またはGeyserつきのJavaサーバー。
- 確認済みのメールアドレスかGoogleログインのあるKrak Multiplayerアカウントと、サーバーのペアリングと操作のためのアプリ0.8.5以降(+ボタンは0.8.6から)。
- ディスク約15 MB、メモリ約40 MB。ゲームサーバーと比べて、Krak ServerのCPU使用量はごくわずかです。
アカウントとペアリング
- インストールコマンドの最後にペアリングコードが表示されます。後で確認するときや、コードが期限切れになったときは、マシンでsudo krak-server statusを実行してください(Windowsでは:管理者のターミナルでkrak-server.exe status)。
- Krak Multiplayerで+をタップし、「リモートサーバーをホスト」をタップしてコードを入力するか、スマホでリンクを開きます。アプリ0.8.5では:プロフィール、自分のサーバー、サーバーを追加。
- サーバーの名前、システム、ネットワークを確認してから承認します。コードは10分間有効で、その後サーバーに新しいコードが表示されます。
自分が管理しているサーバーに表示されたコードだけを承認してください。コードを聞いてくる人は、あなたの名前でホストしようとしています。
ホストするものを選ぶ
サーバーを開き(自分のワールドで、または+から「リモートサーバーをホスト」)、「このサーバーでホスト」をタップします。マシンで見つかったサーバーを選び、次に自分のローカルのワールドか新しいワールドを選びます。名前、説明、アイコン、アクセスなどのワールドの設定は、いつもどおりアプリで編集します。
1つのアカウントがホストできるのは、Krak Plusの有無にかかわらず一度に1つのワールドです(スマホやPCのワールド、アプリでホストするサーバー、Krak Serverのワールドのいずれか)。クロスプレイサーバー(GeyserつきのPaper)は、両方のエディションで1つのワールドです。サーバーは2台まで(Krak Plusなら7台まで)ペアリングでき、それぞれにワールドを置いておけます。今使いたいもののホストをオンにしてください。Krak Plusがあれば、同じサーバーでない限り、その間も外部サーバーを掲載したままにできます。
参加承認は使えますが、申請は2分で期限切れになります。寝ている間も動くサーバーなら、承認をオフにして、ワールドのアクセス設定とBANを使ってください。
Bedrock Dedicated Serverの設定
KrakのプレイヤーはLANのリスト経由で参加するので、サーバーはLANのプレイヤーを受け入れる必要があります。server.propertiesで次のように設定してください:
enable-lan-visibility=true
online-mode=false
allow-list=false
online-mode=falseにすると、サーバーはXboxのサインインを確認しません。サーバー自体のポートもインターネットに開いていると、直接接続したプレイヤーはどんな名前でも(オペレーターの名前でも)参加できてしまいます。Bedrockのポートはインターネットに対して閉じておくか、確認されない直接のプレイヤーを受け入れることにしてください。
LANに表示できるBedrockサーバーはマシン1台につき1つだけです(UDPポート7551を使います)。Minecraft 1.26.52以降はその方法でしかKrakのプレイヤーを入れないため、同じマシンの2つ目のBedrockサーバーは共有できません。Krak Serverはそれをホストせず、アプリが理由を表示します。もう一方のサーバーを止めるか、2つ目のサーバーでRakNetをオンにしてください。これらの設定を変えたらサーバーを再起動してください。
Javaサーバー
Javaサーバーには特別な設定は必要ありません。Krak Serverが同じマシンのサーバーのポートに接続します。online-modeのサーバーでは、プレイヤーはいつもどおりMinecraft:Java Editionが必要です。
Geyser:JavaサーバーでBedrockのプレイヤーを受け入れる
Paper、Spigot、またはプロキシ上のGeyserでは、BedrockのプレイヤーはGeyserのBedrockポートから入り、Krak ServerはそのポートをBedrockサーバーと同じように共有します。初期設定のGeyserは、Krak経由で来るBedrockのプレイヤーを全員追い返します。プレイヤーには「Please log into Xbox」と表示されます。LAN ゲームとして参加するため、Geyserが期待するXboxのサインイン確認がないからです。Krak Serverはこの拒否を確認できないため、アプリでお知らせすることもできません。Geyserのconfig.yml(PaperとSpigotではplugins/Geyser-Spigot/config.yml)で次のように設定してください:
validate-bedrock-login: false
その後、サーバーを再起動します。GeyserはBedrockのプレイヤーのXboxサインインを確認しなくなるので、Bedrockのポート(初期値19132)はインターネットに対して閉じておいてください。そうしないと、直接接続したプレイヤーがどんなBedrockの名前でも参加できてしまいます。Krakには開いたポートは必要ありません。
Javaのプレイヤーには影響がなく、Javaサーバーはonline-mode=trueのままでかまいません。Floodgateがあれば、BedrockのプレイヤーはJavaのアカウントなしで参加できます。Floodgateがないと、GeyserはすべてのBedrockのプレイヤーにJavaのアカウントでのサインインを求めます。
KrakはRakNetでGeyserに接続します。Minecraft 26.60でRakNetでの参加は終了する見込みなので、GeyserがMinecraft 26.60に対応するまで、26.60のBedrockのプレイヤーはKrak経由で入れないかもしれません。
Docker
ホストにインストールしたKrak ServerがLAN検出とポートを見られるよう、ゲームサーバーのコンテナはホストネットワーク(--network host)で動かしてください。
設定
Krak Serverは、Linuxでは/etc/krak-server/config.jsonを、Windowsでは%ProgramData%\Krak Server\config.jsonを読み込みます。どのキーも省略可能で、不明なキーは拒否されます。krak-server config checkでファイルを確認し、変更後はサービスを再起動してください。
アップデート
Krak Serverは6時間ごとに署名付きのアップデートを確認し、自分でインストールします。アップデートの時間帯に、または誰も遊んでいないときや必須のアップデートのときはすぐにインストールします。ホスト中のワールドは再起動し、プレイヤーはLANのリストから再参加します。アプリの「今すぐアップデート」でアップデートをすぐにインストールすることもできます。
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では、ログはジャーナルにあります:
sudo krak-server status
journalctl -u krak-server -f
Windowsでは%ProgramData%\Krak Server\logsにあります。ログにはトークン、キー、プレイヤーのアドレスは決して含まれません。
サーバーを削除
アプリで:サーバー(自分のワールド)を開き、メニューから「サーバーを削除」。サーバーはすぐにホストを停止し、もうログインできません。その後、このアカウントか別のアカウント用に、サーバーが自動で新しいペアリングコードを表示します。
マシンで:sudo krak-server unpairでペアリングを解除し、sudo krak-server uninstallでサービスを削除します。--purgeを付けると設定とデータも削除されます。
パスワードの変更やリセット、すべての場所からのログアウト、BANでも、アカウントのすべてのサーバーがログアウトされます。
トラブルシューティング
コードの期限が切れた
コードは10分間有効です。サーバーが自動で新しいコードを表示するので、もう一度krak-server statusを実行してください。
時刻がずれている(clock skew)
Krak Serverはマシンの時刻を使ってログインします。時刻の同期をオンにしてください:Linuxではtimedatectl set-ntp true、WindowsではWindows Timeサービス。
ゲームサーバーが見つからない
先にゲームサーバーを起動し、マシン上で応答するか確認してください(Bedrockの場合:enable-lan-visibility=true)。その後、アプリで「再スキャン」をタップしてください。
ポートが許可されていない
ゲームサーバーがallowの範囲外のポートで動いています。マシンの設定ファイルでallowにそのポートを追加し、Krak Serverを再起動してください。
プレイヤーが拒否される
server.propertiesのonline-modeとallow-listを確認してください。アプリのサーバーの状態に、拒否とその理由が表示されます。
Bedrockのプレイヤーに「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より前にインストールしましたか?インストールコマンドをもう一度実行してください。
2つ目のBedrockサーバーに誰も参加できない
1台のマシンで2つのBedrockサーバーが動いていて、もう一方がLANの表示(UDPポート7551)を使っています。Minecraft 1.26.52以降、BedrockサーバーはLANの表示経由でしかKrakのプレイヤーを受け入れないため、アプリはこのサーバーを停止中と表示します。共有するBedrockサーバーはマシン1台につき1つにしてください:もう一方を止めてこのサーバーを再起動するか、このサーバーでRakNetをオンにしてください。
アプリに、別のワールドがすでにホストされていると表示される
1つのアカウントがホストできるのは、Krak Plusの有無にかかわらず一度に1つのワールドです。スマホ、PC、別の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。1分後に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の承認を受けておらず、関係もありません。