はじめに
Nintendo Switchのマインクラフトは、特集サーバー以外に接続することはできません。
[BedrockConnect]によって提供されているDNSサーバーをNintendo Switchに設定することでこの問題は解決するのですが、サーバーがアメリカに存在しているため、接続が不安定というデメリットがあります。
GitHub - Pugmatt/BedrockConnect: Join any Minecraft Bedrock Edition server IP on Xbox One, Nintendo Switch, and PS4/PS5
そこで、ローカルにDNSサーバーを構築することでこの問題を解消します。
ネットワーク環境
IPアドレス | ポート番号 | |
---|---|---|
ルーター(デフォルトゲートウェイ) | 192.168.0.1 | |
Windows10マシン | 192.168.0.200 | |
マインクラフト統合版サーバー | 192.168.0.200 | 19132 |
DNSサーバー | 192.168.0.254 | 53 |
Nintendo Switch | 192.168.0.xxx (DHCP) |
用意するモノ
- Windows10がインストールされたマシン
- Ubuntu 22.04がインストールされた仮想マシン (今回はWindows10マシン上のHyper-Vにインストールしています。)
使用するプログラム
- dnsmasq
- ufw
事前準備
1. Ubuntu仮想マシンを仮想スイッチに接続する
Hyper-Vを起動し[仮想スイッチマネージャー]を開きます。
[新しい仮想ネットワークスイッチ]から[外部]の仮想スイッチを作成します。
次に、ネットワークアダプタの設定画面を開きます。
[名前を指定して実行]で[ncpa.cpl]と入力し実行します。
一覧に先ほど作成した[Externa Switch]が表示されているのでダブルクリックします。
[プロパティ] > [インターネット プロトコル バージョン4 (TCP/IPv4)]をダブルクリックします。
2. Ubuntu仮想マシンのIPアドレスを固定する
nano /etc/netplan/00-installer-config.yaml
下記の通り編集します。
※IPアドレス、デフォルトゲートウェイは環境にあわせて適宜変更してください。
network:
ethernets:
eth0:
addresses:
- 192.168.0.254/24
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
routes:
- to: default
via: 192.168.0.1/24
version: 2
変更を適用します。
netplan apply
3. デフォルトルートを追加する
ip route add default via 192.168.0.1 dev eth0
4. ファイアウォールの許可設定を追加する
ufw allow 53
ufw enable
DNSサーバーを構築する
1. dnsmasqをインストールする
apt install -y dnsmasq
2. コンフィグを編集する
nano /etc/dnsmasq.conf
最下部に下記の4行を追記します。
domain-needed
bogus-priv
strict-order
bind-interfaces
3. hostsを編集する
hostsファイルを編集し、特集サーバーへのアクセスを、ローカルに立てたマインクラフト統合版サーバーに向けます。
nano /etc/hosts
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
4. dnsmasqサービスを再起動する
systemctl restart dnsmasq
5. DNSサーバーの動作確認をする
Windows10マシンの優先DNSサーバーを変更して動作確認をしてみましょう。
下図の[優先DNSサーバー]を、さきほど構築したDNSサーバーのIPアドレス(192.168.0.254)に変更し[OK]ボタンをクリックします。
コマンドプロンプトを起動しDNSキャッシュをクリアします。
ipconfig /flushdns
続いて特集サーバーのドメインにpingを送信します。
192.168.0.200からの応答が返ってきたら動作確認は成功です。
ping play.galaxite.net
Nintendo Switchのインターネット設定を変更する
Nintendo Switchの設定画面を開き、[インターネット] > [インターネット設定]へ進みます。
[優先DNS]をさきほど構築したDNSサーバーのIPアドレスに変更します。
最後に、念のためNintendo Switch本体を再起動し完了です!