はい、突然ですが、会社の同僚からの要望もあったりして、ちょっとマインクラフトサーバーを興味本位で立てて見ることにしました。
環境ですが、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の人しか入れなくなります。
これで荒らし対策もできるようになりました。
マイクラサーバーは色んな情報が拾いやすいので、助かりますね。
簡単に設定できたので、良かったです。
また、何かあれば追記します。