Setting up a server/ja: Difference between revisions

From Minetest
>Nogajun
m (fix page link)
>Nogajun
m (fix page link)
 

Latest revision as of 18:31, 27 September 2021


ハードウェアの選択

ゲームサーバーを公開する場合、VPSもしくは専用サーバーの利用をお勧めします。家庭用インターネット回線は信頼性が低く、アップロード速度も低い傾向があります。また、自宅でホスティングを行う場合、24時間、常にサーバーを稼働させることができない可能性もあります。

とはいうものの、オンラインにできるハードウェアがあり、十分なインターネット接続環境があれば自宅でのホスティングはうまくいきます。

Minetestクライアントを使ってサーバーのホスティングはできますが(LAN内のゲームでは問題ありません)、Minetestの専用サーバーモードを使って公開サーバーをホスティングすることをお勧めします。

サーバーを起動する

Linux

  1. 端末(ターミナル)を開きます。
  2. YOUR/MINETEST/DIRECTORY/bin/minetestserver (/YOUR/MINETEST/DIRECTORYは実際のディレクトリの場所に置き換えて)と入力するか、(/Minetest/bin/ディレクトリにある)minetestserverの実行ファイルを端末にドロップします。(以下の注意も読んでください)
    • 特定のゲームIDを指定する場合は、コマンドの最後に--gameid thegameidを追加してください(ゲームIDは、/Minetest/games/ディレクトリにあります)。
    • "Multiple worlds are available."(複数のワールドが利用可能です)というエラーが表示された場合、コマンドの最後に--worldname theWorldを追加してください(ワールドのリストは、/Minetest/worlds/ディレクトリにあります)。
  3. サーバーがクラッシュした場合は、/Minetest/bin/にあるdebug.txtを見てください。
  4. サーバーをダメージから保護するようにしてください。

簡単に実行できるように、minetestserver.shという名前のファイルを作成します。そして、以下の行を追加して、/Minetest/bin/ディレクトリ以下に置きます。サーバーを実行するには、ターミナルでこのファイルを実行するだけです。

#!/bin/bash

while true
do
    ./minetestserver --gameid minetest --worldname world
    sleep 10
done

Windows

  1. Minetestをインストールしたフォルダを開きます。「bin」フォルダの中でShiftキーを押しながら空ファイル(minetest.exeではありません)を右クリックして「コマンドウィンドウをここで開く」を選び、コマンドプロンプトを開きます。
  2. minetest.exe --serverと入力します。
    • "Multiple worlds are available."(複数のワールドが利用可能です)というエラーが表示された場合、変わりにminetest.exe --server --worldname world_nameを使ってください(world_nameはワールドの名前です)。
  3. サーバーがクラッシュした場合は、/Minetest/bin/にあるdebug.txtを見てください。
  4. サーバーをダメージから保護するようにしてください。

クラッシュしたサーバーを起動したくない場合は、以下のコードのバッチファイルからサーバーを起動します。

@echo off
:crash
minetest.exe --server --worldname world_name
goto crash

外部のプレーヤーの接続を許可する

ポートフォワードしない限り、ネットワークの外にいるプレーヤーはサーバーに参加できません。

  1. サーバーを実行するポート番号を選択する。デフォルトの30000を推奨します
  2. サーバーを実行しているコンピューターのIPアドレスを確認する
    • Linux: 端末を開き、ifconfigと入力してEnterキーを押します。そして、wlan0またはeth0の近くにある「inet adr」を探します。(ifconfigが時代遅れで無い場合はip a使います。)
    • Windows
      • コマンドプロンプトを開く: スタート→ファイル名を指定して実行を開き、cmd.exeと入力してEnterキーを押します。
      • ipconfigと入力してEnterキーを押します。
      • IPv4 Addressを探します。
    • macOS: コマンドプロンプトを開いて、netstat -nrと入力します。
  3. ルーターにログインして見つけたIPアドレスの選択したポート番号のUDPをポートフォワーディングする
  4. 選択したポートへのトラフィックを許可するためにファイアーウォールの設定を変更する
  5. minetest.confに以下の設定を行い、サーバーリストにサーバーを掲載する
    • server_announce = true - Minetestがサーバーリストにサーバー情報を掲載します。
    • server_name - サーバー名を設定します。
    • server_description - サーバーについての説明を設定します。
    • server_address - サーバーにドメイン名がある場合、ドメインを設定します(ドメイン名が必要な場合にドメイン名を取得する方法)。
    • server_url - サーバー用のウェブサーバーがある場合、ウェブサイトのURLを設定します。
    • motd - プレーヤーが参加したときに送信されるメッセージ。 歓迎メッセージを送るために使用します。
    • 変更した設定が適用されたことを確認するため、サーバーを再起動する。

サーバーを保護する

Minetestのワールド/サーバーを守る

新しいサーバーをセットアップするとき、どのような保護が必要であるか、検討する必要があります。これは公開サーバーにとって非常に重要なことです。 なぜなら、誰が接続して、彼らがあなたのサーバーで何をするのか予想できないからです。

一般的な問題としては以下のようなことがあります。

  • 偶然、または意図的に他のプレーヤーの作品を破壊(嫌がらせ行為)。
  • チャットスパム(悪口やスパム広告も含まれます)。
  • プレーヤー間での攻撃、嫌がらせ、その他、好ましくない行為。
  • BANをすり抜けるトラブルメーカー
  • MTコミュニティ内の有名人物のなりすまし。
  • modによって引き起こされるバグを利用して、悪意のあるプレーヤーが任意のシステムコマンドを実行。

これらの問題の多くは、事前の計画と問題を認識しておくことで、取り除いたり最小限に留めることができます。

  • areasprotectorsなどのプロテクトmodをインストールします。これにより、プレーヤーはエリアを守ることができます。他のプレーヤーは、保護されたエリアは変更できません。
  • minetest.confenable_rollback = trueを追加して、ロールバックを有効にします。ロールバックは、どのプレイヤーがノードを配置したかを知ることができ、プレイヤーの行動を元に戻すことができます。
  • xban2のような禁止行為の管理に役立つmodをインストールします。
  • サーバーのルールを作成し、サーバーを監視してルールを破るプレイヤーを監視するのに十分な時間(またはモデレーターチーム)を確保してください。
  • あなたが知っている名前を使っているだけで、プレーヤーに特権を与えないでください。プレーヤー名はサーバー間で確保されているわけではないので、プレーヤーが誰であるか常に確認する必要があります。
  • 悪口や性的なチャットを防ぐために、チャットフィルターmod(filter)をインストールして設定してください。フィルターの回避は簡単ですが、これは強制的に従わせるためではなく、プレイヤーにルールを知らせるために有効です。

なお、シングルプレイではデフォルトで有効になっているTNTと燃え広がる炎は、サーバーのデフォルトでは無効になっています。

ContentDBのServer Moderation and Toolsも参照ください。

ホストマシンを守る

  • Linux/Windowsサーバーセキュリティにについて標準的な勧告が適用されます。
  • Linuxでは、Minetestサーバーを実行する専用ユーザーを追加できます。
  • modセキュリティを絶対無効にしないでください。
  • secure.trusted_modsに追加するmodが信頼できることを確認してください。

サーバーを管理する

サーバー設定

サーバー設定ファイルの詳細な説明は、minetest.confのページを参照してください。

また、ワールドのために別のデータベース バックエンドの使用も検討できます。

サーバーコマンド

役に立つコマンド一覧は、サーバーコマンドのページを参照してください。

また、/giveまたは/givemeコマンドで使用するitemstringsについては、Itemstringsを参照してください。

特権システム

特権システムの詳細については、特権のページを参照してください。

関連項目