Bukkit Spigot Japan Wikiは、Hello Minecraftを応援しています。

超まいくらひろば2017バナー

 

 

サーバー構築

提供: Bukkit Spigot Japan Wiki
移動: 案内検索

サーバー構築のページについて

このサーバー構築のページでは、サーバー構築に必要な基礎知識とサーバー構築の方法を解説しています。
サーバー構築の方法は、各OSごとに異なるため、各OSごとに説明があります。(#Windows, #CentOS(Linux), #macOS)
ちなみに、「サーバー構築」は「サーバーを建てる」とほぼ同義です。
ここにおいてのサーバーは基本、Spigot・CraftBukkitのサーバーです。

  • わからない単語・用語があれば用語解説を確認すると、その単語があるかもしれません。
    (わからない単語・用語の検索にはブラウザの検索機能を利用して下さい)
    なければ自力で検索しましょう。
  • 何かしら問題が発生したらサーバーの問題解決を確認すると、その解決方法があるかもしれません。
    なければ、Minecraft非公式日本ユーザーフォーラムなどの質問掲示板を利用して下さい。

サーバーについて

Minecraftにおけるサーバーとは、マルチプレイをする手段を提供するソフトウエアです。
Minecraftにおいて、サーバーを建てることがマルチプレイをする主な手段です。
(LAN公開には幾つかの制限があり、それによって長期運営が難しいです)

サーバーの分類

ここではサーバーの分類について説明しています。
この項目を読み、例を確認して、自分の理想とするサーバーを考える上で参考にしましょう。

サーバーソフトウェアの分類

ここではサーバーをソフトウェア面で分類しています。

  • 公式サーバー
    公式サイトからダウンロードできるサーバーです。
    本来のMinecraftを楽しむことを目的としています。
    このWikiでは公式サーバーと表記していますが、バニラサーバーと表記されることもあります。


  • カスタムサーバー
    公式サーバーに何らかの拡張を加えたサーバー全般のことです。
    例えば、下記のMODサーバーやプラグインサーバーが当てはまります。
    拡張サーバー、サーバーMOD(主にJPWikiで)とも呼ばれます。


  • MODサーバー
    MinecraftForgeなどでマルチプレイに対応したMODで拡張した、もしくは拡張できる様な機能を備えたサーバーです。
    MODを複数プレーヤーで使ってMinecraftを楽しむことを目的としています。
    また、MODサーバーに参加するためには、参加者側にサーバーと同じMODを導入する必要があります。
    (例: MinecraftForgeのサーバー)


  • プラグインサーバー
    Bukkitプラグインなどのプラグインで拡張した、もしくは拡張できる様な機能を備えたサーバーです。
    サーバー側に導入されたプラグインを使ってマルチプレイのMinecraftを楽しむことを目的としています。
    また、MODサーバーとは違い、サーバーに参加するための参加者側でのMODなどの導入は不要です。
    公開サーバーとしてはこの形式のサーバーが主流となっています。
    (例: CraftBukkit, Spigot)


主要なカスタムサーバーの特徴

広く知られ、使われているカスタムサーバーの特徴を説明しています。

MODサーバー

  • MinecraftForgeのサーバー(Forgeサーバー)
    MinecraftForgeのインストーラーで生成することができるサーバーで、一般で言われるMODサーバーはこれを指します。
    MinecraftForgeのマルチプレイに対応したMODをサーバーに導入し、拡張します。
    ただし、参加側にも同じMODを導入する必要があります。


プラグインサーバー

  • Spigot
    Bukkitプラグイン・Spigotプラグインを導入して、拡張することのできるサーバーです。
    厳密には、SpigotAPIを実装したプラグインサーバーです。
    SpigotAPIがBukkitAPIを拡張しているため、CraftBukkit用のプラグイン(Bukkitプラグイン)も使用できます。
    また、CraftBukkitから様々な改良がされています。
    公開サーバーとしてはこのカスタムサーバーが使われることが多いです。


  • CraftBukkit
    Bukkitプラグインを導入して、拡張することのできるサーバーです。
    厳密には、BukkitAPIを実装したプラグインサーバーです。
    膨大にあるBukkitプラグインで様々な拡張ができます。
    以前は最も使われるカスタムサーバーでしたが、DMCA問題などの理由から現在はSpigotへその座を渡し、使われることは少なくなっています。


  • Sponge(SpongeForge, SpongeVanilla)
    Bukkit(プロジェクト)などとは別のSpongeプロジェクトのプラグインサーバーです。
    Spongeプロジェクトのサーバーには二つの種類があり、一つはMinecraftForge上でSpongeAPIを実装したSpongeForgeと、
    もう一つは、公式サーバー上でSpongeAPIを実装したSpongeVanillaがあります。
    SpongeForgeはMinecraftForgeのMOD(ForgeMOD)とSpongeプラグインが利用可能で、SpongeVanillaはSpongeプラグインのみが利用可能です。ただし両方とも、Bukkitプラグインは利用不可となってます。
    詳しいことはSponge公式ドキュメントを確認して下さい。


サーバーの方向性の分類

サーバーは、サーバー管理者によってそれぞれの目的・方針・方向性があります。
ここではそれらを大まかに分類し、その説明をしています。
ただし、この説明は決まった定義ではなくあくまで一般的な解釈です。
また、その方向性は無尽蔵にあるためこの項目が全てではありません。
また、サーバーの方向性はいくつも組み合わさっていることがほとんどです。

この項目ではサーバーの方向性の例が示されているので、この項目を読んで自分の理想とするサーバーを考えましょう。

  • 生活(サバイバル)サーバー
    Minecraftの一般的な遊び方をするサーバーです。
    ここでの一般的な遊び方とは、いわゆる探検、建築、戦闘、農業などを指します。
  • 経済サーバー
    経済プラグインなどを利用して、通貨や職業の概念などを追加したサーバーです。
  • 建築サーバー
    建築物を建てることに特化したサーバーです。
    プロの犯行の素晴らしい建築が見られることもあります。
  • 整地サーバー
    整地をすることに特化したサーバーです。
    一面真っ平らのまな板なワールドとなっていることもあります。
  • PVPサーバー
    PVPに特化したサーバーです。
    PVPとはPlayer vs Playerの略で、つまりプレーヤー同士で戦うことです。
    人が集まりやすく、大規模なサーバーも運営され、独自のゲームを追加しているサーバーもあります。
  • ミニゲームサーバー
    ミニゲームに特化したサーバーです。
    ミニゲームには、TNTRun, Spleef, Skywars, BowSpleef, Suvival(Hunger)Gamesなどがあります。
    独自のミニゲームを追加しているサーバーもあります。
  • 銃・火器サーバー
    銃や火器を追加したサーバーです。
  • RPGサーバー
    RPG要素を追加したサーバーです。
  • クリエイティブサーバー
    クリエイティブで無制限な(飛行可能、アイテム・ブロックを無尽蔵に出すことが可能など)サーバーが多いです。
    ただし、荒らしが多くなり、それ相応の対応が必要のためサーバーの数は少ないです。
  • 公開サーバー
    誰でも参加可能なサーバーです。
    身内サーバーの反対として使われることもあります。
  • 身内サーバー
    身内のみが参加可能なサーバーです。ホワイトリストを有効にして特定プレーヤー以外を参加不可にすることが多いです。
    また、同類語としてホワイトリストサーバーがあります。
    こちらは、ホワイトリストが有効にされているサーバーで、管理者から許可を得て参加することが多いです。
  • 企画(イベント)サーバー
    企画・イベントのために建てられたサーバーです。


このように様々なサーバーの方向性での分類ができますが、これは大まかに分けたものにすぎません。
自分自身で、個性・特徴のあるサーバーをつくりましょう!

サーバー構築の概略

ここではサーバー構築をするための、大まかな流れを説明します。

  1. サーバー機の準備
    サーバー機の準備をして下さい。サーバー機がなければ何も始まりません。
    該当する説明: #サーバー構築にあたっての環境
  2. サーバーの準備および配置
    BuildToolsを用いてサーバーをビルド・生成して、目的の場所へサーバーを移動もしくはコピーして下さい。
    該当する説明: BuildTools, Windows, Linux, macOS
  3. 起動用スクリプトの作成
    サーバーの起動を行いやすくするために、起動用スクリプトを作成して下さい。
    該当する説明: Windows, Linux
  4. 初めてのサーバーの起動
    ここで初めてサーバーを起動して下さい。ただし、初めての起動した際はEULAを熟読して同意する必要があります。
    EULAは必ず目を通して下さい。
    該当する説明: Windows, Linux, macOS
  5. サーバーの起動
    初めてのサーバーの起動後(EULA同意後)、サーバーを起動して下さい。これによってサーバーに必要なファイルとフォルダが生成されます。
    該当する説明: Windows, Linux, macOS
  6. サーバーの設定
    一度サーバーを終了して、設定を行って下さい。
    該当する説明: サーバーの設定
    また、サーバーの設定を変更する際にはコマンドを使うことも良いでしょう。
    該当する説明: サーバーコマンド
  7. プラグインの導入および設定
    プラグインを導入しましょう。
    基本的に、ダウンロードしたプラグインのjarファイルをpluginsフォルダーに入れ、サーバーを起動し、プラグインの設定をすることで導入が完了します。
    該当する説明: プラグインの導入, プラグインリスト
  8. 外部への公開
    ポートを開放し、他人が参加できるようにして下さい。ファイアウォールがある場合はそちらの設定も必要です。
    またIPを固定(DNSやDDNSを用いて等)したり、サーバーのHPを作ったりして宣伝することも良いでしょう。
    該当する説明: #外部への公開

サーバー構築はこれで終了です。

  • わからない単語・用語があれば用語解説を確認すると、その単語・用語があるかもしれません。
  • 何かしら問題が発生したらサーバーの問題解決を確認すると、その解決方法があるかもしれません。

サーバー構築にあたっての環境

サーバー構築および安定した運営には、サーバー構築ができる環境かを調べる必要があります。
Minecraftのサーバーは、参加人数が増えるほど、高性能なマシンを要求します。
また、導入プラグインが多いほど、処理が重たくなることを念頭に置いて下さい。
また、運用マルチサーバのスペック・環境報告 - 非公式日本ユーザーフォーラムを確認すると実際の運用状況を知ることが出来ます。こちらも併せてご覧ください。

  • メモリー
    サーバーを快適に動作させるには、最低4GBのメインメモリ(割当は1GB,1024MB以上)があるべきです。
    プレーヤーを多く迎えるのであれば、更に必要となります。
    また、JVMの引数から色々できるため、そちらの勉強し、引数を工夫することで改善することもあります。
  • ストレージ
    ワールドデータ等を読み込む必要があるため、SSD上もしくはRAMDisk上で実行させることを推薦します。
    ですが、それらのバックアップは怠らないようにしましょう。失ってからでは遅いです。
  • CPU
    人数によって求められる性能が異なることを留意して下さい。
    できれば1コアの性能が高いデュアルコア以上のCPUをおすすめします。
    公式サーバーを含め、殆どのサーバーのソフトウェアは一コア程度しか使わないためです。
    (デュアルコアなのはOSが快適に動作するためにはシングルコアでは厳しいため)
    ※ただしBungeeCordを使うことで、この問題をある程度回避することが出来ます。
    例: Intel Pentium Dual-Core G3250(10人は可能), Intel Core i3 第三世代など・・・。
  • インターネット・ネットワーク回線
    光回線もしくは専用回線が望ましいです。
    また、無線での接続を行うべきではありません。ラグが発生するなど不安定な場合が多いためです。有線での接続を行って下さい。
    ping値は一般に50ms以下が望ましいです。
  • ポート開放
    ポート開放については、使用しているルーターによって方法が異なります。ルーターの説明書などを確認してください。
    また、一部賃貸住宅などでは、ポートの開放ができない場合があります。
    詳しいことは、#ポート開放を確認して下さい。
  • OS
    サーバーを運営する際は64bitOSの使用を推薦します。
    64bitOSでなければJava上1GB以上を割り当てられない上に、メモリーが約4GBまでと制限されてしまうためです。
    またWindowsなどのクライアントOSでは、ライセンス上同時接続数が制限されているため、規定の接続数を超えて外部より接続を受けるとライセンス違反となることがあります。

    ライセンス違反のチェックや違反したためOSの使用を禁止されると言った事はありませんが、OSを使用する者としてライセンスは守るべきです。そのため、使用しているOSのライセンスは必ず確認して下さい。
    例えばWindowsのEULAには、「本ソフトウェアを使用することにより、お客様は本ライセンス条項に同意されたものとします。本ライセンス条項に同意されない場合、本ソフトウェアを使用することはできません。」
    と記載されているため、ライセンス条項に違反した際はOSの使用をすることができません。Windowsにおいては、"C:\Windows\System32\license.rtf"にEULAが保存されています。
    (なお、Windowsのライセンスにつきましては、このページの注意点も確認しておくと良いでしょう)
    そして大規模サーバーを構築する際は、多くがLinux(CentOS,Ubuntu等)であることが多いです。
    その理由は無料で、また制限がなく利用でき、インターネット上に膨大な数の利用者の情報(エラーや質問など)が載っているためです。また、サーバー運用に不要なGUIではなくCUIで作業できることでリソースを節約できる事も理由の一つです。
  • ネットワークやパソコンについての十分な知識があるか
    十分な知識がないとトラブルに対処が出来ず、最悪不正アクセスの被害に遭う可能性があります。
    最低限ファイアーウォールぐらいは理解していましょう。
    また、グーグルと(検索ができるという意味において)仲良くなりましょう。自分で対処する一番の手口は検索です。検索で情報を得られるようにしましょう。
    わからなければ質問掲示板(非公式日本ユーザーフォーラムなど)を利用することも良いでしょう。
  • やる気と根気があるか
    サーバーを構築する上で、多くの問題にぶつかるかと思います。諦めず、自分で対処しようとする根気が必要です。
    「何か起こったら誰かに聞けばいいや」「英語はわからないから読みたくない」などと考えている人はサーバー構築には向いていません。考えを改めてください。
    それでも誰かに助け求めなくてはならない時は、非公式日本ユーザーフォーラム等で聞くと良いでしょう。ですが、質問等をする時はルールを守ってください。回答者が現れなくなってしまうかもしれません。

問題が発生したら

以下の手順を踏んでサーバーが上手く起動しなかったなどの問題が発生した場合、
まずは再度その手順を確認して下さい。例えば、打ち間違えや勘違いが無いかを確認することです。
次に、エラーログが無いかを確認し、あればそれを参考に問題を解決することが出来ます。
詳しい問題の解決方法は、サーバーの問題解決を確認して下さい。

解決できなければ、質問:マルチサーバー運用 - 非公式日本ユーザーフォーラムを利用して下さい。
※ただし非公式日本ユーザーフォーラムを使用する際は、ルール([1],[2],[3])をしっかり読んでから質問等をしてください。(100%答えが返ってくる保証はありません)

Windows

Windowsでのサーバー構築の方法を説明します。

注意点

Windowsでのサーバー構築においては、ライセンス上では一部条件を除き完全にNGとされています。
その為、実際には解釈が分かれており、Windows上ではMinecraftのサーバーを構築し、公開してはいけないと言った解釈と、
一部条件に入るため構築、公開をしても問題ないと言った解釈があります。これより下は後者で解釈し構築をしています。

WindowsのクライアントOS(通常のWindows)ではライセンス上、最大同時接続数が制限されているため、規定された接続数を超えて外部より接続を受けるとライセンス違反となります。
その為、最大同時接続数を超えないようにサーバーに入れる人数を制限する必要があります。各OSごとの最大同時接続数は下の表の通りです。

OS エディション 接続数
Windows XP Home Edition
Professional
5
10
Windows Vista Home Premium
Business
Ultimate
5
10
10
Windows 7
Windows 8
Windows 8.1
Windows10
全エディション 20
macOS(OS X) 無制限
Linux(Unix) 無制限

サーバーの準備および配置

BuildToolsを参考にSpigot・CraftBukkitをビルド・生成します。
生成されたサーバーのjarファイル(Spigotならばspigot-<バージョン>.jar, CraftBukkitならばcraftbukkit-<バージョン>.jar)を、適当なフォルダーに配置します。
念の為に日本語などの2バイト文字がパスに入らないようにすることを推薦します(例: C:\Server)。

起動用スクリプトの作成

サーバー起動用の起動用スクリプト(バッチファイル/スクリプトファイル)を作成します。
その場所にtxtファイルを作成(名前はstart.txt等)し、次の内容を記述します。※<>は不要です。

@echo off
java -Xms1024M -Xmx1024M -jar <サーバーのjar>
pause

記述したら保存をし、ファイル名をstart.batもしくはstart.shへ変更します。
※拡張子が.batもしくは.shであれば名前は何でもかまいません。
(restartコマンドをspigot.ymlの変更なし使用するならstart.shで行けます。)
詳しい事は、サーバーの設定#起動用スクリプトを確認してください。

初めてのサーバーの起動

作成した起動用スクリプト(start.bat/sh)をダブルクリックで実行します。
初回起動時(初めての起動の時)はMinecraftのEULA(エンドユーザーライセンス条項)に同意する必要があるため、自動的に終了します。
MINECRAFT エンドユーザーライセンス条項目を通した上で同意する場合は、
サーバーがあるディレクトリの、eula.txt内の"eula=false""eula=true"に変更します(必ずEULAには目を通して下さい)。

サーバーの起動

再度start.bat/shをダブルクリックして実行するとコマンドプロンプトのウィンドウが表示され、様々なファイルが生成されます。
ファイルの生成を確認したらコマンドプロンプトのウィンドウに"stop"と入力して終了してください。
※コマンドプロンプト右上の×ボタンから(stopを入力せずに)閉じるとデータが保存されない場合があります。
以降、起動用スクリプト(start.bat/sh)を使うことでサーバーの起動、コマンドプロンプトにstopと入力することで、サーバーが終了します。

サーバーの設定

サーバーの設定を参照して下さい。

プラグインの導入および設定

プラグインの導入を参照して下さい。

CentOS(Linux)

Linux(CentOS)でのサーバー構築の方法を説明しています。
確認はしていませんが、Ubuntuでもほぼ同様の手順を踏むことでサーバー構築が可能です。

サーバーの準備および配置

BuildToolsを参考にSpigot・CraftBukkitをビルド・生成します。
生成されたサーバーのjarファイル(Spigotならばspigot-<バージョン>.jar, CraftBukkitならばcraftbukkit-<バージョン>.jar)を、適当なフォルダーに配置します。
念の為に日本語などの2バイト文字がパスに入らないようにすることを推薦します(ユーザーのホームディレクトリ等)。

上から、ホームディレクトリに移動、Serverフォルダー(名前は任意だがここではこれとする)を作成、Spigotのサーバーを作成したServerフォルダー下へコピー

cd
mkdir Server
cp /home/<ユーザー>/buildtools/<サーバーのjar> /home/<ユーザー>/Server/<サーバーのjar>

起動用スクリプトの作成

記述内容の詳しいことはサーバーの設定#起動用スクリプトを確認してください。
サーバー起動用の起動用スクリプトを作成します。
上から、Serverフォルダーへ移動、Vimでstart.shの作成

cd Server
vi start.sh

Insertキーを押して以下を入力して下さい(挿入モードへ)。※<>は不要です。

 #!/bin/sh
 
 java -Xms1024M -Xmx1024M -jar <サーバーのjar>

Escキーを押し、":wq"と打つと保存されます。(:wqとは保存→終了をするVimのコマンドです)
その後、作成したstart.shを実行するために権限を設定します。

初めてのサーバーの起動

./start.sh

で起動用スクリプト(start.sh)を実行し、サーバーを起動します。
初回起動時(初めての起動の時)はMinecraftのEULA(エンドユーザーライセンス条項)に同意する必要があるため、自動的に終了します。
MINECRAFT エンドユーザーライセンス条項目を通した上で同意する場合は、
サーバーがあるディレクトリの、eula.txt内の"eula=false"を"eula=true"に変更します(必ずEULAには目を通して下さい)。
Vimでeula.txtを開く。

vi eula.txt

Insertキーを押して以下へ変更して下さい(挿入モードへ)。

elua=true

Escキーを押し、":wq"と打つと保存されます。

起動確認と終了の仕方

再度起動用スクリプト(start.sh)を実行すると、様々ファイルが生成されます。
ファイルの生成を確認したら"stop"と入力して終了してください。
stopを入力せずに終了すると、データが保存されない場合があります。

以降、起動用スクリプト(start.sh)を使うことでサーバーの起動、コンソールにstopと入力することで、サーバーが終了します。

サーバーの設定

サーバーの設定を参照して下さい。

プラグインの導入および設定

プラグインの導入を参照して下さい。

macOS

macOSでのサーバー構築の方法を説明しています。 ※他のOSとは違い、起動用スクリプトを作成せずに行っています。

サーバーの準備および配置

BuildToolsを参考にSpigot・CraftBukkitをビルド・生成します。
生成されたサーバーのjarファイル(Spigotならばspigot-<バージョン>.jar, CraftBukkitならばcraftbukkit-<バージョン>.jar)を、適当なフォルダに配置します。
念の為に日本語などの2バイト文字がパスに入らないようにすることを推薦します(例: ?)。

初めてのサーバーの起動

ターミナルを起動し、サーバーのあるディレクトリに移動します。

cd <先程のディレクトリのパス> 

サーバーを起動します。

java -Xms1024M -Xmx1024M -jar <サーバーのjar>

サーバーの初回起動時はMinecraftのEULA(エンドユーザーライセンス条項)に同意する必要があります。
MINECRAFT エンドユーザーライセンス条項目を通した上で同意する場合は、
eula.txtをVimやCotEditorなどのテキストエディタなどで開き、eula.txt内のeula=falseをeula=trueに変更します。

サーバーの起動

 java -Xms1024M -Xmx1024M -jar <サーバーのjar>

再び上記のコマンドを実行すると、様々なファイルが生成されます。
ファイルの生成を確認したらコンソールに"stop"と入力して終了してください。

サーバーの設定

サーバーの設定を参照して下さい。

プラグインの導入および設定

プラグインの導入を参照して下さい。

外部への公開

編集途中です。
サーバーを構築しただけでは当然ですが人はやってきませんと言いますか、参加することができません
まずは、ポート公開とファイアーウォールの設定をして、外部の人がサーバーへ接続できるようにしましょう。(該当する説明: #ポート開放, #ファイアーウォールの設定)
次に、アドレスを公開しましょう。(該当する説明: #アドレスの公開)
そして、サーバーを宣伝しましょう。(該当する説明: #サーバーの宣伝)

ポート開放

ポート開放をする前に、ポート開放について確認する必要があります。
用語解説#ポート開放を確認して下さい。

ポート開放を行うには、2つの方法があります。

  1. ルーターの機能を用いて行う方法。
    ルーターの説明書の内、「ポート開放、NAT(NAPT)、IPマスカレードポートフィルタリング機能、ポートマッピング、ポート転送設定」などのいずれかの名称について書かれているページを読み、その説明に従って設定を変更しましょう。
  2. ルーターの「UPnP」という技術・機能を用いて行う方法。
    開放くん(Windowsのみ)、UPnPCJ(Windowsのみ)などのソフトウェアを使うことが多いです。ソフトウェアの使い方は、配布ページの説明を読んで、それに従って下さい。

ファイアーウォールの設定

ポート開放で通信を許可しただけでは、参加者がサーバーに参加できないことがあります。 その中の原因の一つとして、ファイアーウォールを適切に設定できていない場合があります。 ここでは、ファイアーウォールの設定の方法を説明します。

アドレスの公開

コンピューターにおいてのアドレスとは、インターネット上の住所を示すものです。 - 用語解説#アドレスより。
例えば、IPアドレス、ドメイン名がそれに当たります。
ですので、アドレスの公開をする前に、用語解説#IPアドレス用語解説#ドメイン名を確認して下さい。

アドレスの公開は、2つの方法にわかれます。

  1. IPアドレスを公開する方法。
    グローバルIPアドレスを参加したい人に公開することで可能です。
  2. ドメイン名を取得し、公開する方法(DDNSの利用を含む)。
    ドメイン名をドメイン名取得サイトなどで取得し、参加したい人に公開することで可能です。

サーバーの宣伝

外部へ公開しただけでは、人はやってきません。
サーバーの特徴を宣伝しましょう。

BungeeCordの利用

BungeeCordについてはBungeeCordを確認して下さい。
BungeeCordとは、サーバーとプレイヤーの間に設置され、プレイヤーを切断させることなく別の実際のサーバーに移動させることができるソフトウェアおよびMinecraft用のプロキシサーバーです。
また、複数サーバーを単一にみせられることから、それぞれのサーバーをそれぞれ別のコンピューターで起動することで負荷を分散したり、もしくは複数コアCPUを効率的に利用するために利用されることもあります。
ただし、BungeeCordの構築にはサーバー構築以上の技術が必要です。

リンク