【改造なし】Xbox One、スイッチ、PS4で特集サーバー以外に接続する方法

サーバー

2017年にWindows10、Xbox One、Nintendo Switch、iOS、Android等にてクロスプレイができるようにBetterTogetherアップデートが行われました。
それに伴って、統合版ユーザーが増えてきているように思います。
特にスイッチについては子供に大人気で、スイッチ版ユーザーをよく見かけます。
(あースイッチほしい…)
ですが2024年03月時点では、Xbox One、スイッチ、PS4/PS5は特集サーバーにしか入れません!

あー残念だなぁって思った方も多いと思います。
ところが、海外の天才さんが改造なしでほかのサーバーにも入る方法を考え出していました!!
まだあまり知られていない方法なので、今回ご紹介したいと思います。

注意
今回紹介するのは、Switch等で特集サーバー以外の「統合版サーバー」に接続する方法です。
当記事では統合版でJava版サーバーに入る方法は紹介していません。
Java版と統合版でクロスプレイする方法についてはマイクラ統合版とJava版の完全なクロスプレイを実現する方法を参照してください。
「改造なし」について
改造データを導入しないという点で「改造なし」と表記しております。
当記事の手法はDNSの仕組みを利用していますが、筆者はこの挙動をDNSとしてごく自然な振る舞いと考えています。
しかし、公式で許可された手法ではありませんので、(故障するリスクは極めて低いとは思いますが)自己責任でお願いします。

任意の外部サーバーに入る方法

DNS設定を変更する

以降で紹介しているDNSサーバーが利用できない場合、BedrockConnect DNSサーバー一覧から別のDNSサーバーを選択してください。

Nintendo Switch(2024/03/08 更新)

  1. ホーム画面の「設定」を開きます
  2. 左メニューから「インターネット」を選びます
  3. 「インターネット設定」を選びます
  4. 接続中のSSIDを選択して、「設定の変更」を選びます
  5. 「DNS設定」を「自動」から「手動」に変えます
  6. 「優先DNS」に「104.238.130.180」を入力します
  7. 「代替DNS」に「8.8.8.8」を入力します
  8. 「保存する」をタップして保存します

PS4/PS5(2024/03/08 更新)

読者さんがコメント欄で、DNSの設定だけで任意のサーバーに入る方法を教えてくださいました。
「きんぎょ」さん、ありがとうございます!!

https://gaming-nerd.jp/ps4-dns/#h2-1を参考に、「プライマリ(DNS)」を「173.82.100.84」に変更します。
現在は「45.55.68.52」です。

サーバーに参加する

  1. マインクラフトを起動します
  2. 「サーバー」タブを選択します
  3. 「特集サーバー」のどれかに接続します(どれでもいいです)
  4. 接続に成功すると、「ServerList」という画面が出てきます
  5. 「Connect to a Server」を選びます
  6. 「Server Address」にサーバーのアドレスを、「Server Port」にサーバーのポート番号を入力します。
    「Add to server list」をオンにすると、「Display Name」(空白可)に入力した名前で一覧に登録されます)
  7. 「送信」をタップします。

これでサーバーに接続されました!!

DNSの設定をもとに戻すと特集サーバー以外に接続できなくなります。
通常時はgoogleのDNS(8.8.8.8)を参照するので、そのままの設定でもほかのゲームはプレイできますが、DNSサーバーへの負担を軽減するためにも長期間マイクラをプレイしない場合は設定を戻しましょう。

トラブルシューティング

DNSサーバー変更しても、特集サーバーに接続されてServerListが出ない…

DNSキャッシュ(接続先の紐づけ情報)が残っている可能性があります。
ゲーム機において手動でキャッシュを削除する方法はありませんので、別の特集サーバーを選択してBedrockConnectサーバーに接続できるか試すか、時間が経ってキャッシュが自動削除されるのをお待ちください。

(2020/05/09 追記)自分でBedrockConnectサーバーを建てる

DNSを使った方法で接続できない場合、自分で一時接続サーバーを建ててみましょう。

同じLAN内にいる人とマルチプレイする「LAN ゲーム」機能を利用して、任意のサーバーに接続するための一時サーバーに接続します。
以下の方法はインターネットに接続しているPC必須です!!
Windows前提で話を進めます。
また、JREが導入済みであると仮定して話を進めます。

https://github.com/Pugmatt/BedrockConnect/releasesから最新版のBedrockConnect-1.0-SNAPSHOT.jarをダウンロードします。

②ダウンロードしたファイルを、デスクトップ等にフォルダを作成して、その中に移動させます。

③そのフォルダをエクスプローラーで開いて、ファイルリストの何もないところで「Shift+右クリック」をして、メニューを開きます。

④「PowerShell ウィンドウをここで開く」を選択して、PowerShellを起動します。

⑤「java -jar BedrockConnect-1.0-SNAPSHOT.jar nodb=true」コマンドを実行して、ServerListサーバーを起動します。

これでPC側の準備は完了です。
ゲーム機に移ってください。

①Minecraftを起動して、「フレンド」タブを選択します。

②「LANゲーム」に表示されている「Join to open Server List」に参加します。

③あとは前章の「すべてのゲーム機器共通の手順」⑤からと同じです。

(2021/11/07 追記)起動用バッチファイルを作成する

毎回この作業をするのは面倒なので、バッチファイルを作って一クリックで起動できるようにしましょう!

①「メモ帳」を開きます

②以下の文字を入力します

@ECHO OFF
java -jar BedrockConnect-1.0-SNAPSHOT.jar nodb=true
pause

③「ファイル(F)」→「名前を付けて保存(A)…」で、bedrockconnectが入っているフォルダまで移動します

④「ファイルの種類(T)」で「すべてのファイル(*.*)」を選択して、「ファイル名(N)」に「start.bat」と入力します

⑤「保存(S)」します

これで起動用バッチファイルを作成できました!!
今後は「start.bat」をダブルクリックでServerListサーバーを起動できます。

仕組みについて考察

これだけじゃただ動画を日本語化しただけになってしまうので、仕組みについても考えていこうと思います。
興味のある方は是非読んでください。

実はソースコードが公開されています。(GPLv3 Pugmatt
https://github.com/Pugmatt/BedrockConnect
(このソースコードは一時接続するマイクラサーバーのソースコードだけです。DNSサーバーのソースコードは含まれてません)

DNS設定って何?

今回の肝となるのがあのDNS設定。
DNS設定では、参照するDNSサーバーを指定します。
「自動」にしておけば、自動で適切なサーバーを選んでくれます。

DNSサーバーは何をするのか?

通常、相手とインターネット通信をするときは、IPアドレス(203.0.113.1や2001:DB8::1)で接続先を判断して通信します。
いわば住所みたいなものです。
でも、これってただの数字の羅列だから、覚えにくいですよね?(IPv6アドレスなんて覚えられたらすごいですよ)

そこで考えられたのがDNSです。
DNSというのはIPアドレスと人が覚えやすい文字列(ドメイン)とを紐づけるシステムです。
例えば「google.co.jp」
これはIPアドレスではないですが、DNSサーバーがこのドメインをIPアドレスに変換し(正引きと言います)クライアント側に返すと、そのIPアドレスを使い目的のサーバーに接続できるようになります。

なぜ別のサーバーに接続されるのか?

先ほど説明したように、DNSサーバーはドメイン(例: google.co.jp)をIPアドレス(例 : 2404:6800:4004:80d::2003、172.217.26.35)に変換する役割があります。

じゃあ、ドメインとIPアドレスの紐づけをDNSサーバーで変更すれば、接続先も変えれるのでは?

この性質を利用したのが、今回紹介した方法です。
試しにDNSサーバーを先ほど紹介したように設定し、hiveのドメインを正引きしてみました。(PCで検証しています)
(hiveのドメインは「hivebedrock.network」です)

見事に変わってますねー
このように特殊なDNSサーバーに接続すると、通常とは違う結果が返ってきます。
(ほかの特集サーバーも同様)

こうして、接続先を無理やり(?)変更しています。
(無理やりと言っても、これがDNSの性質ですが…)

BedrockConnectサーバーの仕組み

BetterTogetherアップデートでクロスプレイができるように、プロトコル(通信の決まり)が統一されました。
ですので、スイッチ等でもWindows10Editionやスマホ版と同じように統合版サーバーに接続できます。

書き換えられた接続先には、特殊な統合版サーバー(BedrockConnectサーバー)が建っています。
よって、本来の特集サーバーに接続しようとすると、そのBedrockConnectサーバーに接続されることになります。

BedrockConnectサーバーからほかのサーバーへ転送する仕組み

筆者はこれが一番気になりました。
ソースコードを読むと、以下のようなメソッドが見つかりました。(GPLv3 Pugmatt

public void transfer(String ip, int port) {
    TransferPacket tp = new TransferPacket();
    tp.setAddress(ip);
    tp.setPort(port);
    session.sendPacketImmediately(tp);
}

GUIでボタンをタップすると、このメソッドやそれに近い処理で転送しているんだと思います。
HiveMCの各地域サーバー移動もこのような処理をしているのかな?(筆者の単なる推測です)

コメント

  1. ともやん より:

    PS5版でDNS変更をしたら
    回線ソフトバンクエアーと
    nuro光で検証済みです
    両方ともできましたー

  2. switchのやつ改造ありじゃないですか!?

    Wifi設定いじらないと出来ないってswitchゴ〇ですね

    • CTKP より:

      普通改造って言ったらファームウエアを書き変えるので改造ではありませんよ ^ ^

  3. マイケル より:

    Switchの方は完全に『改造』って言うと思います

    Wi-Fi設定いじるのは流石にね………..

    けどこれ見つけた人天才か?

    今度会ってみたい

    • るーみあ より:

      改造っていうのはプログラムの書き換えのことを指しているんだと思います。
      DNS設定の変更は普通にネットの高速化にも使われるのでそこまで特殊ではないですよ~

  4. 非公開 より:

    「設定」は、ホーム画面の設定のことですね。
    このままだとマイクラ内の「設定」と勘違いしますよ(体験談)。

  5. 素人 より:

    スイッチ入力までは行けたのですがIPアドレスが無効と出てしまいます、解決法を教えて下さい

    • nova nova より:

      変なスペースが入ったり、.(ピリオド)と,(コンマ)を入力し間違ったりしていないでしょうか

  6. 匿名 より:

    それな
    CFWとか導入するのと1~999999999違うのに

  7. きんぎょ より:

    PS4でももっと簡単にログインする方法があります。

    DNSの設定を173.82.100.84にするだけで、SwitchやXBOXと同じ手順でサーバに参加できるようになります。
    ↓ここで説明されてます
    https://github.com/Pugmatt/BedrockConnect/issues/167

    他の方のために、可能であれば記事に追記していただけないでしょうか?

    • nova nova より:

      追加情報ありがとうございます!
      当記事で紹介させていただきます。

    • beji より:

      DNSの設定をして通信テストもクリアしたのに
      特集サーバに接続すると普通に参加できてしまいSeverList画面が出てきません…
      何か考えられる要因はありますでしょうか?

      • Y より:

        自分も全く同じ状況です…

      • あばば より:

        自分も同じようにサーバーリスト出てきません……。

      • nova nova より:

        DNSキャッシュ(以前の正引き情報)が残っている可能性があります。
        ゲーム機の場合手動で削除する方法はありませんので、別の特集サーバーで試してみるか、時間が経って自動でキャッシュが消えるまでお待ちください。

  8. 名無しさん より:

    PS5でRedRockConnectServerを使う方法を参考にさせて頂きました.コマンド実行はbatファイルに書き込んでおくと毎度コマンドを打つ必要がなくて楽です(使うときにダブルクリックするだけ).スタートアップとかに登録しておいてパソコン着けたら自動でサーバーが立つとかも楽でいいかもしれません.
    batファイルの中身は
    「cmd /k java -jar BedrockConnect-1.0-SNAPSHOT.jar nodb=true」
    としておくとbatファイルからの実行でもウィンドウが残るので使えます.

  9. Rq より:

    サーバーアドレスを打ち込むとこまでは行けるんですが、外部サーバーに接続中という画面がでてその後世界に接続できませんでしたと表示されます。

    • nova nova より:

      <すべてのゲーム機器共通の手順>の⑦「Submit」をタップした後に起きるのでしょうか?
      他のサーバーではどうでしょうか?

  10. 匿名 より:

    サーバーに接続できませんでしたと出た場合どうしたらいいんでしょうか?

  11. y より:

    参考になりました

  12. シン より:

    この設定使うとCUBECraft鯖に入れなくなったんですけど……

  13. マツダ より:

    新しいアプデが来て、このきんぎょさんのDNSが使えなくなりました…!

  14. NAYUTA より:

    SWICHだと うまく外部サーバにつながるんですが、
    XBOXSSでやろうとすると、初回は繋がったんですが、それ以降つながらなくて
    ipv6の方で繋がってるから ipv4のDNSサーバを参照してないとかなんでしょうか?

  15. U5KUN より:

    Kuwa-networkのfritoserの方がこれより優秀や!
    だって、フレンド追加するだけで、外部サーバーに入れるから!

  16. つい より:

    ネットに接続できないって出ました。PS4です、最近まで出来てたのにいきなり出来なくなりました。

    • nova nova より:

      PS4/PS5向けDNSサーバーのアドレスが変動したようですので、記事内のDNSサーバーに変更してみてください。

タイトルとURLをコピーしました