2026.10.29広告・PRを含む記事です

マイクラのプロキシサーバーの立て方!VelocityとBungeeCordの設定手順

Velocityの公式ドキュメントにあるvelocity.tomlの設定例の画面に、マイクラのプロキシとVelocityで連携の見出しを重ねたサムネイル
  • VelocityとBungeeCordのどちらを使えばよいのかわからない…
  • 子サーバーをonline-mode=falseにして安全なのか不安…
  • ロビーと生活サーバーを1つのアドレスにまとめたい…

プロキシサーバーは、複数のマイクラサーバーを1つのアドレスにまとめる受付役のソフトです。

この記事では、新しく作る人に向くVelocityを主役にして、ダウンロードからvelocity.tomlの設定、Paperの子サーバー側の設定、/serverでの移動まで進めます。子サーバーに渡すプレイヤー情報の転送方式(modern)の意味も説明します。

BungeeCordをすでに使っている人や、使う理由がある人向けの手順は、後半の節にまとめました。

online-mode=falseが危険になる理由と、子サーバーへ直接入られないようにする設定も手順に含めています。どのファイルのどの行を書き換えるかは、図解と設定例で1つずつ見せる形です。

完成すれば、子サーバーを増やしても友達に伝えるアドレスは1つのまま。ロビーから生活サーバーやミニゲームへ、/serverひとつで行き来できる遊び場になります。

初心者

サーバーを何台も動かすなんて、難しそうです…

spa

Velocityで書き換えるのはvelocity.tomlの3か所だけなので、この記事の順に上から直せば大丈夫ですよ!

管理人spaのアイコン
この記事を書いた人spa

マイクラサーバーの構築と運用を繰り返して4年。今も経済サバイバル「spa77.works SMP」を運用中で、その経験をもとに記事100本以上を執筆。

プロキシサーバーの仕組みとできること

プレイヤーがプロキシサーバーのVelocityに接続し、ロビー、生活、ミニゲームの各サーバーへ振り分けられる構成図

イメージとしては、プロキシサーバーが駅の総合改札口で、後ろにある子サーバーが各路線のプラットホームにあたります。

プレイヤーは改札口から入るだけで、ログアウトせずに、コマンドで別のホームへ乗り換えられます。

ロビーや生活、ミニゲームなど種類の違うサーバーを、1つのアドレスにまとめて大きなワールドのように見せられるのが特徴です。

対象はJava版のサーバーで、統合版のサーバーはつなげません。

子サーバーはそれぞれ独立したマイクラサーバーなので、持ち物や経験値も子サーバーごとに保存されます。

プロキシの後ろに別のプロキシを置く構成には対応していません。

1台のサーバーでワールドを行き来するだけなら、プロキシは要りません。Multiverse-Coreの使い方で足ります。

子サーバーにするPaperサーバーがまだない場合は、Paperサーバーの立て方を先に済ませてください。

緑色に照らされたモニター、キーボード、タワー型パソコンの実写写真を背景にした、プラグインサーバーの立て方の記事見出し。

マイクラプラグインサーバーの立て方!Paperで導入する手順を初心者向けに解説

VelocityとBungeeCordの選び方

新しく作るPaperやFabricの子サーバーならVelocity、BungeeCord用プラグインを使い続ける場合やForge 1.7.2〜1.12.2、SpigotならBungeeCordを選ぶ分岐図

プロキシ用のソフトはVelocityとBungeeCordの2つから選びます。決め手は、子サーバーのソフトと、使い続けたいプラグインです。

状況選ぶもの理由
これから新しく作る(子サーバーはPaper)VelocityPaper 1.14以上は標準でmodern転送に対応していて、より安全に情報を渡せる
子サーバーがFabricVelocityとFabricProxy-LiteFabricはFabricProxy-Liteを入れるとmodern転送を使える
BungeeCord用のプラグインを使い続けたいBungeeCordBungeeCord用プラグインはVelocityで直接は動かない
子サーバーがForgeの1.7.2から1.12.2BungeeCordとBungeeForge(またはSpongeForge)この版のForgeには、この2つのどちらかが推奨されている
子サーバーがSpigotBungeeCord、またはVelocityのlegacy転送Spigotはlegacy転送にしか対応していない。Velocityを選んでもmodernは使えない
spa

僕のサーバーは、生活サーバーとミニゲームサーバーの2台をVelocityでつなぎ、最初は生活サーバーに入って/server minigameで移動する形にしています。

転送とは、プレイヤーのIPアドレスなどの情報をプロキシから子サーバーへ渡す仕組みです。転送の方式は次の3つがあり、どれか1つだけ選びます。

  • modern:Velocityの推奨で、より安全。Minecraft 1.13以上のサーバーだけで使える
  • legacy:BungeeCordと互換があるが、根本的に安全ではない
  • bungeeguard:legacyにシークレットを足した方式

この記事のVelocityの手順は、modern転送で進めます。

Velocityを立てる手順

Java 25の用意、ダウンロード、起動ファイルでの起動、velocity.tomlの編集の4手順を並べた図

Velocity用の専用フォルダを作り、そこでjarの配置から起動、設定の書き換えまで進めます。手順は4つです。

手順1:Java 25を用意する

VelocityにはJava 25以上が必要です。

Javaが入っているかわからない場合は、Javaのインストール手順で用意してください。

手順2:Velocityをダウンロードする

Velocityのダウンロードページを開き、版番号が書かれた青いボタンを押します。

Velocityの配布ページで、版番号とビルド番号が書かれた青いダウンロードボタンを赤枠で示した画面

Velocityは起動すると設定ファイルを同じ場所に作ります。デスクトップなどに置くとファイルが散らばるので、velocityのような専用フォルダを作って、ダウンロードしたjarをその中に入れます。

手順3:起動ファイルを作って起動する

Velocityはダブルクリックでは動かないため、コマンドを書いた起動ファイルを作ります。

ダウンロードしたjarの名前には、velocity-4.3.1-45.jarのように版番号が付いています。velocity.jarに名前を変えるか、次のコマンドのvelocity.jarを実際のjar名に書き換えてください。

Terminal window
java -Xms1G -Xmx1G -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:+UnlockExperimentalVMOptions -XX:+ParallelRefProcEnabled -XX:+AlwaysPreTouch -XX:MaxInlineLevel=15 -jar velocity.jar

Windowsでは、jarのあるフォルダで右クリックして「新規作成」→「テキストドキュメント」を選び、上のコマンドを貼り付けて保存します。拡張子を.txtから.batに変えて、start.batにしてください。

macOSとLinuxでは、1行目に#!/bin/sh、2行目に上のコマンドを書いたstart.shを作ります。次のコマンドで実行できる状態にしてから起動してください。

Terminal window
chmod u+x start.sh
./start.sh

Velocityは接続を振り分けるだけなので、メモリは1GBで足ります。

ただし、つなぐロビーやゲームサーバーは、それぞれ別に人数分のメモリが必要です。

ConoHaの受付停止中は、こちらを案内しています

重くなったら管理画面からプランを上げて、同じワールドのまま遊び続けられます

ロリポップ! for Gamersのメモリ別プランを見る

起動すると、黒い画面のログにListening onを含む行が出ます。この行が、起動できた合図です。

初回の起動では、同じフォルダに設定ファイルのvelocity.tomlと、転送用のパスワードにあたるforwarding.secretが作られます。

設定を書き換える前に、Velocityの黒い画面でshutdownと入力して止めてください。endやstopでも止まります。

手順4:velocity.tomlで子サーバーを登録する

velocity.tomlをメモ帳などで開き、3か所を書き換えます。

  • player-info-forwarding-mode:既定の"NONE"を"modern"にする
  • [servers]:初期のlobby、factions、minigamesは例なので、自分の子サーバーに書き換える
  • try:ログインしたときに最初に入るサーバーを指定する

tryは、ログイン時と、サーバーからキックされたときに、接続を試すサーバーを前から順に並べた一覧です。

ポート番号は、このあと子サーバーのserver.propertiesに書く番号と合わせた例です。

player-info-forwarding-mode = "modern"
[servers]
lobby = "127.0.0.1:25566"
survival = "127.0.0.1:25567"
minigame = "127.0.0.1:25568"
try = ["lobby"]

bindは既定の0.0.0.0:25565のままで構いません。プレイヤーはこのポートでVelocityに接続します。

[forced-hosts]には、lobby.example.comなどの例が残っています。この例が消したサーバー名を指していると、「Server ’…’ for forced host ’…’ does not exist」というエラーが出て起動しません。

ログに「Your configuration is invalid. Velocity will not start up until the errors are resolved.」と出たときも、設定の書き間違いが原因です。[forced-hosts]の例は、[servers]を書き換えたときにあわせて消してください。

保存したら、手順3の起動ファイルでVelocityを起動し直し、ログにエラーが出ないことを確かめます。子サーバーの設定が終わったら、いったんshutdownで止めて、起動の順番どおりに起動し直してください。

spa

僕のサーバーもplayer-info-forwarding-mode = "modern"で、Paper側はpaper-global.ymlのproxies.velocityで受けているので、この記事と同じ設定です。

同じPCで動かすなら、アドレスは127.0.0.1のままにします。別のPCやVPSで動かす場合は、子サーバーのアドレスに書き換えてください。

複数のサーバーを1台のVPSにまとめたい場合は、root権限のあるXServer VPS for Gameも候補です。

Velocityと子サーバーを1台にまとめて、自分の構成で動かせます

XServer VPS for Gameの料金プランを見る

子サーバー(Paper)の設定

子サーバーで書き換えるserver.properties、spigot.yml、paper-global.ymlの項目と、forwarding.secretの文字列をsecretへ貼る流れを示した図

子サーバーごとに、同じ作業を繰り返します。どのサーバーのファイルを開いているかわからなくなりやすいので、1台ずつ進めてください。

server.propertiesでポートと認証を変える

編集するのは、マイクラサーバーの設定ファイルserver.propertiesの3行です。

server-portは、Velocityと重ならない番号にします。25566から順に、子サーバーごとに別の番号を割り当ててください。

online-modeはfalseにします。プレイヤーの認証はVelocityが代わりに行うため、子サーバーで二重に認証する必要はありません。

プロキシと同じマシンで動かす場合は、server-ipを127.0.0.1にします。

server-port=25566
online-mode=false
server-ip=127.0.0.1

子サーバーのポートは外に開けない

子サーバーのonline-mode=falseは、駅のホームの勝手口に鍵をかけずに開け放した状態と同じです。

子サーバーのポートが外に出ていると、改札口を通らず勝手口から直接ホームへ入られます。

認証がないサーバーは名乗った名前でログインできてしまうため、管理者の名前を偽装されて、OP権限を乗っ取られる危険があります。

外に開けるのは改札口にあたるVelocityのポートだけにして、子サーバーのポートには直接入れないようにしてください。

spigot.ymlのbungeecordをfalseのままにする

modern転送では、spigot.ymlのsettings.bungeecordをfalseにします。

この項目は初期値がfalseなので、変更しないままで構いません。trueにするのはBungeeCordの転送を使うときだけです。

paper-global.ymlでVelocityの転送を有効にする

config/paper-global.ymlのproxies.velocityを、次のように書き換えます。

proxies:
velocity:
enabled: true
online-mode: true
secret: [forwarding.secretの中身]

secretには、Velocityのフォルダにあるforwarding.secretをメモ帳で開き、中の文字列をそのまま貼り付けます。[ ]は書かずに、文字列だけを入れてください。

online-modeは、velocity.tomlのonline-modeと同じ値にします。velocity.tomlの既定はtrueです。

Paper 1.18.2以下では、paper.ymlのsettings.velocity-supportに同じ項目があります。

子サーバーへの直結を防ぐ

Velocityの公開ポート25565と、外部から直接接続させない子サーバーの25566以降を分けた構成図

spa

僕は子サーバーのポートを外へ公開せず、外から入れるのはVelocityだけにしています。

プロキシと子サーバーを同じマシンで動かすなら、server.propertiesのserver-ip=127.0.0.1と、velocity.tomlの127.0.0.1:ポート番号の組み合わせで、外部のプレイヤーは子サーバーのポートへ直接つなげません。

別のマシンに子サーバーを置く場合は、server-ip=127.0.0.1にするとプロキシから届かなくなります。ファイアウォールで、子サーバーのポートをプロキシのIPアドレスからだけ許可し、それ以外を拒否してください。

modern転送を使っていても、ファイアウォールの代わりにはなりません。

例では、プロキシのIPアドレスを198.51.100.10、子サーバーのポートを25566とします。UbuntuのUFWなら、許可ルールを先に置いてから拒否ルールを追加します。

Terminal window
sudo ufw insert 1 allow proto tcp from 198.51.100.10 to any port 25566
sudo ufw insert 2 deny proto tcp to any port 25566
sudo ufw status numbered

iptablesを使う場合も、プロキシのIPアドレスからの許可を先に置きます。

Terminal window
sudo iptables -A INPUT -p tcp -s 198.51.100.10 --dport 25566 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 25566 -j DROP

子サーバーが複数ある場合は、実際のポートごとに同じ規則を追加します。

既存の「どこからでも許可する」規則があると制限できないため、ufw status numberedなどでルールの順番と許可元を確認してください。

iptablesの設定はOSによって再起動後に消えるため、永続化の方法も環境に合わせて設定します。

起動してサーバー間を移動する

子サーバー、Velocityの順に起動してVelocityのアドレスへ接続し、/server survivalでロビーから生活サーバーへ移る流れの図

すべての設定ファイルを保存したら、子サーバーを先に起動し、最後にVelocityを起動します。

マイクラのサーバー一覧には、Velocityのアドレスを入力して接続します。ポートが標準の25565なら、番号を書く必要はありません。

自宅のPCで動かして外の友達を招くなら、開放するのは25565だけです。開放の手順はポート開放のやり方で確かめてください。

サーバー間の移動は/serverコマンドで行います。/serverだけを打つと接続できるサーバーの一覧が出ます。

/server [設定したサーバー名]

/serverのあとにスペースを押すと接続先の候補が出るため、TABキーで補完すると入力ミスを防げます。/serverは権限の設定をしなくても、全員が使えます。

ゲーム内チャットの入力欄に「/server lobby」が見え、lobbyの候補が表示されている画面

ログイン後にtryで指定したサーバーへ入り、/serverで別のサーバーへ移動できれば成功です。

入れないときは、次の3点を見直してください。

  • forwarding.secretの中身と、Paperのpaper-global.ymlのsecretが一致しているか
  • velocity.tomlとpaper-global.ymlのonline-modeの組み合わせが、この記事の設定と同じか
  • tryに書いた名前が、[servers]の名前と一致しているか

BungeeCordで立てる場合

BungeeCordのconfig.ymlで書き換えるhost、ip_forward、serversと、子サーバー側のserver.properties、spigot.yml、bukkit.ymlの項目を示した図

BungeeCordを選ぶのは、BungeeCord用のプラグインを使い続けたい人や、Forgeの1.7.2から1.12.2のサーバーをつなぐ人などです。

BungeeCordの公式Jenkinsページを開き、「Last Successful Artifacts」の一覧にあるBungeeCord.jarをクリックしてダウンロードします。

BungeeCordのJenkinsのページで、Last Successful Artifactsの一覧にあるBungeeCord.jarを赤枠で示した画面

専用のフォルダにBungeeCord.jarを入れ、Velocityの手順3と同じ方法で起動ファイルを作ります。中身は次のコマンドです。

Terminal window
java -Xms1G -Xmx1G -jar BungeeCord.jar

起動すると、次の行が出ます。BungeeCordの既定の待ち受けポートは25577です。

Terminal window
[情報] Listening on /0.0.0.0:25577

生成されたconfig.ymlで、変更する箇所は2つあります。

  • hostを0.0.0.0:25565にして、マイクラ標準のポートにそろえる
  • ip_forwardをtrueにして、プレイヤーのIPアドレスを子サーバーへ渡す
host: 0.0.0.0:25565
ip_forward: true

servers:の項目は、次のように書きます。

項目説明
lobbyサーバーの名前。自由に決められる
motdサーバーの説明欄
addressサーバーのアドレスとポート番号。同じポートは使えない
restrictedtrueにすると、権限を持つ人以外は入れない
servers:
lobby:
motd: "ロビー"
address: 127.0.0.1:25566
restricted: false
survival:
motd: "生活サーバー"
address: 127.0.0.1:25567
restricted: false
minigame:
motd: "ミニゲームサーバー"
address: 127.0.0.1:25568
restricted: false

子サーバー側では、server.propertiesのonline-mode=falseに加えて、次の2つを書き換えます。server-portとserver-ipはVelocityの子サーバーと同じです。

spigot.yml
bungeecord: true
bukkit.yml
connection-throttle: -1

connection-throttleの既定は4000です。サーバー間を移動すると短時間に複数の接続が走るため、-1にしないと接続が弾かれることがあります。

legacy転送は安全ではないため、子サーバーへの直結を防ぐ設定は必須です。

Q子サーバーごとに持ち物を分けられますか?
A

何もしなくても分かれています。子サーバーはそれぞれ独立したマイクラサーバーで、持ち物や経験値も子サーバーごとに保存されます。逆に、子サーバー間で持ち物を共有したい場合は、HuskSyncなどの同期プラグインを入れます。

Q統合版の友達もVelocityのサーバーに入れますか?
A

そのままでは入れません。Geyser-VelocityとFloodgateをVelocity側に入れると、統合版からも同じアドレスで参加できます。鍵ファイルの扱いを含む導入の手順は、GeyserMCの記事にまとめています。

QBungeeCord用のプラグインはVelocityで動きますか?
A

直接は動きません。Velocityに対応した版のプラグインを探してください。BungeeCord用のプラグインを使い続けたい場合は、BungeeCordを選びます。

Q権限の設定はどうすればよいですか?
A

LuckPermsにVelocity版があるため、プロキシ側に入れて権限を管理できます。設定はLuckPermsの設定ガイドの記事にまとめています。

まとめ:Velocityで複数のマイクラサーバーを1つのアドレスにまとめる

Velocityのアドレスで入り、/server 名前でサーバー間を移動でき、子サーバーには直接入れない状態になれば完成です。

子サーバーのポートに外から接続を試して、入れないことも確かめておきましょう。

統合版の友達も同じアドレスで遊ぶなら、GeyserMCの導入手順に進んでください。管理者と一般プレイヤーで使えるコマンドを分けたいときは、LuckPermsの設定ガイドで権限を整えます。

ノートパソコンと黒いゲームコントローラーの実写写真を背景にした、GeyserでJava版と統合版をつなぐ導入記事の見出し。

【マイクラ】GeyserMCの導入方法!Java版と統合版でクロスプレイ

子サーバーが増えて自宅PC1台では回らなくなったら、root権限のあるVPSにVelocityと子サーバーをまとめると、この記事の構成のまま動かせます。

Velocityと子サーバーを1台にまとめて、自分の構成で動かせます

XServer VPS for Gameの料金プランを見る