Synology DSM7.2 docker(container manager)で超簡単マインクラフトサーバー(bedrock、統合版)を設定する 

はい、突然ですが、会社の同僚からの要望もあったりして、ちょっとマインクラフトサーバーを興味本位で立てて見ることにしました。

環境ですが、Synology DS1621+ DSMは DSM7.2-62570(23/7/23日現在)

最初にdocker(Container manager)をインストール

(インストールしていなかったら、インストールしてください。)

現在、SynologyではdockerはContainer managerという名称に変わっています。

1) File Stationでフォルダを作成します。

dockerフォルダの下に図の通り/bedrockserver/worldsを作成します。

2) docker(Container manager)のレジストリでMarctvを選択します。

① レジストリを選択

② 検索窓からminecraftを入力する

③ marctv/minecraft-bedrock-serverを選択

④ ダウンロードを選択

ダウンロードが始まり、終わったら起動します。

ダウンロードが終わったら、イメージを選択して、ダウンロードされたmarctvを選択して、実行ボタンを押します。

marctvの行を選択しないと実行ボタンが押せません。

実行すると上のような設定が始まります。

イメージ、コンテナ名はデフォルトでOKです。

「リソースの制限を有効にする」「自動起動を有効にする」にチェックをいれます。

ここはお好みで構わないと思いますが、自分は上の図の通りで設定しています。

上図の通りですが、ポートとフォルダの設定です。

① ポート 19132を設定します。

② フォルダのマッピングは/docker/bedrockserver/worldsを/bedrock-server/worldsにマッピングします。

他の設定は必要なくデフォルトでOKです。

dockerの設定は以上です。

itzgのサーバーよりも簡単に設定できるので、おススメです。

3)DS1621+独特の設定です。

DS1621+は4つLANポートがあります。

このためにどのIPアドレスにdockerで割り付いたか分からないという問題があります。

DS1621+みたいに複数のLANが付いているタイプの方のみ読んでください。

それ以外の方はポート開放してもらえば終わりです。

なので、minecraftを立ち上げて、追加サーバーで全部のIPアドレスで追加して、当りを探します。

上図の通りですが、DS1621+で設定しているDHCPのIPアドレスを設定して見ます。

自分の場合は192.168.0.2~5が割り付いています。

で全当りすると、どれか繋がります。(当たり前ですが。。)

上図だと左の追加のサーバーの所、IPアドレス192.168.0.2の下にバージョン番号が出てます。

これが繋がっていることを示しています。

で、ルーターの設定でポート開放を行うときに繋がったIPアドレスを指定してもらえれば、外部に対して開いたサーバーとなります。

DSMのコントロールパネルから外部アクセス、ルーターの設定で行うとグローバルでは繋がらなくなります。

ここが分からなくて手こずりました。

ここ以外は設定が簡単で非常に良いと思います。

あとはやって見てどうかという所です。

ここまでの説明だと、セキュリティとかを全然考慮してないので、注意してください。

何かあったら報告します。

追記 2023/07/28

で、Dockerのmarctvの所を見ると書いてありました。↓

なので、それに従って設定をちょっと変えます。

①ファイルを作成

bedrockerserverの下に3つ作成します。

server.properties,allowlist.json,whitelist.json の3つです。

設定は、

server.properties

  • Local file server.properties: /volume1/docker/bedrockserver/server.properties
  • Mount path: /bedrock-server/server.properties

allowlist.json

  • Local file allowlist.json: /volume1/docker/bedrockserver/allowlist.json
  • Mount path: /bedrock-server/allowlist.json

whitelist.json

  • Local file allowlist.json: /volume1/docker/bedrockserver/whitelist.json
  • Mount path: /bedrock-server/whitelist.json

になります。上の図の内容ですね。

server.properties,(サーバーのプロパティ設定ですね。サーバーをどうやって運用するかをここで決めます。)

内容の詳細は下のリンクを参考にすると良いと思います。

参考にサンプルを載せておきます。

内容は自分で好みに合わせると良いと思います。

server-name=Docker Server
# Used as the server name
# Allowed values: Any string

gamemode=creative
# Sets the game mode for new players.
# Allowed values: "survival", "creative", or "adventure"

difficulty=normal
# Sets the difficulty of the world.
# Allowed values: "peaceful", "easy", "normal", or "hard"

allow-cheats=false
# If true then cheats like commands can be used.
# Allowed values: "true" or "false"

max-players=10
# The maximum number of players that can play on the server.
# Allowed values: Any positive integer

online-mode=true
# If true then all connected players must be authenticated to Xbox Live.
# Clients connecting to remote (non-LAN) servers will always require Xbox Live authentication regardless of this setting.
# If the server accepts connections from the Internet, then it's highly recommended to enable online-mode.
# Allowed values: "true" or "false"

white-list=false
# If true then all connected players must be listed in the separate whitelist.json file.
# Allowed values: "true" or "false"

server-port=19132
# Which IPv4 port the server should listen to.
# Allowed values: Integers in the range [1, 65535]

server-portv6=19133
# Which IPv6 port the server should listen to.
# Allowed values: Integers in the range [1, 65535]

view-distance=32
# The maximum allowed view distance in number of chunks.
# Allowed values: Any positive integer.

tick-distance=4
# The world will be ticked this many chunks away from any player.
# Allowed values: Integers in the range [4, 12]

player-idle-timeout=30
# After a player has idled for this many minutes they will be kicked. If set to 0 then players can idle indefinitely.
# Allowed values: Any non-negative integer.

max-threads=8
# Maximum number of threads the server will try to use. If set to 0 or removed then it will use as many as possible.
# Allowed values: Any positive integer.

level-name=WORLD
# Allowed values: Any string

level-seed=
# Use to randomize the world
# Allowed values: Any string

default-player-permission-level=member
# Permission level for new players joining for the first time.
# Allowed values: "visitor", "member", "operator"

texturepack-required=false
# Force clients to use texture packs in the current world
# Allowed values: "true" or "false"

続いて、whitelist.json,allowlist.jsonとですが内容は無いです。

dockerのmarctvからサンプル見ると内容は[]だけです。

なので、そのまま[]を入力して作りました。

特にallowlist.jsonは無くても良いのかもしれませんが、dockerで引用しているのか判断付かないので、作って割り付けておけば間違いないだろうということで、作ってます。

whitelist.jsonのほうですが、これはそもそも荒らし対策の為にあるもので、許可したIDの人しか入れないようにする縛りのリストです。

器を準備したら、コンソールから設定します。

詳細なことは以下のリンクが参考になります。↓

コンソールは以下から起動します。

すると、以下の画面が表示されます。

コマンドプロンプト調な画面が出ます。

この黒い部分にカーソルがあるので、コマンドを叩きます。

whitelist add ユーザ名

これでwhitelist.jasonの中身が書き換わると、書いたIDの人しか入れなくなります。

これで荒らし対策もできるようになりました。

マイクラサーバーは色んな情報が拾いやすいので、助かりますね。

簡単に設定できたので、良かったです。

また、何かあれば追記します。