top archives tags about 

Nintendo Switchで参加可能なMinecraftサーバーを立てる

| Tags: diary minecraft | n年日記

息子は Minecraft が大好きだ。Nintendo Switch 版を使っており、木を切って土を掘り返しては日々拠点を作り、剣を作り牛を狩っている。そろそろマルチプレイも体験してもいいだろうということで、自宅に Minecraft サーバーを構築した。いろいろと設定が面倒だったので、Nintendo Switch (BEDROCK 版)で気軽にマルチプレイをしたいなら Realms を使うのが一番だと思う。友達と遊ぶようになれば、さすがに Realms になるのかな。

Nintendo Switch でマルチプレイするために必須の契約

Nintendo Online を契約していないと、そもそもオンラインプレイができない。

サーバーを立てる

docker-minecraft-bedrock-server

今回は BEDROCK 版サーバーを docker で起動したいのでitzg/docker-minecraft-bedrock-serverを使用した。docker-compose.yml を下のように作成して、docker-compose up で起動。docker-compose.yml における environment の詳細は【マイクラ統合版】server.properties の設定一覧と解説【サーバー設定】 | ひきこもろんが詳しい。難易度は easy, ゲームオーバーになってもアイテムをドロップしない設定にしたいのでチートモードを有効に。アイテムをドロップしない 「/gamerule keepInventory true」 コマンドを叩くために、DEFAULT_PLAYER_PERMISSION_LEVEL を operator に設定。DEFAULT_PLAYER_PERMISSION_LEVEL は本来は member にして、個別のユーザーに管理者権限を付与するべきだが息子と二人しか遊ばないのであえて operator にしている。データのバックアップとかはまた後日

version: '3.4'
services:
  bds:
    container_name: bds
    restart: always
    image: itzg/minecraft-bedrock-server:latest
    environment:
      SERVER_NAME: jitaku
      EULA: "TRUE"
      GAMEMODE: survival #ゲームモード
      ONLINE_MODE: "false"
      TICK_DISTANCE: 12
      ALLOW_CHEATS: "true" #チートの許可
      DIFFICULTY: easy #難易度
      LEVEL_NAME: MY WORLD
      DEFAULT_PLAYER_PERMISSION_LEVEL: operator #参加者のデフォルト権限
      TZ: Asia/Tokyo
    ports:
      - 19132:19132/udp
    volumes:
      - ./data:/data
    stdin_open: true
    tty: true

PC の統合版から接続確認

先ほど起動したマインクラフトサーバーのインスタンスに接続できるか確認する。

DNS サーバーを立てる

ここからが面倒くさい。Switch 版マインクラフトは決まったホスト(特集サーバー)にしか接続できないため、ホストを偽装する必要がある。私は dnsmasq を使ったが何でも良いので、ローカルネットワークに DNS サーバーを立てて、以下のようにホストを偽装する。

192.168.0.200 geo.hivebedrock.network
192.168.0.200 play.galaxite.net
192.168.0.200 mco.mineplex.com
192.168.0.200 mco.cubecraft.net
192.168.0.200 play.pixelparadise.gg
192.168.0.200 mco.lbsg.net
192.168.0.200 play.inpvp.net

自前で DNS サーバーを立てずに、BedrockConnectが提供している DNS サーバー を使う手もあるが、日本からだと接続が遅く、DNS ポイズニングっぽいものを提供している DNS サーバーを設定するのはちょっとねえ。

Nintendo Switch でプライマリ DNS サーバーを指定

ローカルネットワークに立てた DNS サーバーを Switch におけるプライマリ DNS に設定する。

さて繋がるかな

マインクラフトを再起動して、子供用のマイクロソフトアカウントでログインする。サーバーの所に特集サーバーが表示されているが、サーバー名が先ほど docker で立てたサーバーインスタンスで設定しているものになっていれば OK。

slug: 758825, filename: 20230818_758825.md