【Minecraft】サーバーに接続できない原因を特定する
世界に接続できませんでした
など何故かサーバーが接続できない時にどのように原因を特定すれば困ったことがあります。いくらか調べてみても、再起動やFW(ファイアーウォール)が原因である!などそれっぽい答えはくれても解決できることは少ないです。
自分自身もそういったことがあったためそこで役立ったもののメモのために書き記しておきます。
間違いなどありましたら遠慮なくご指摘ください。
想定環境
- Minecraft Windows10 Edition または Minecraft Java Edition
- Windows 10/11
事前知識
Edition | ポート | プロトコル |
---|---|---|
Minecraft Bedrock | 19132(変更できる) | UDP |
Minecraft Java | 25565(変更できる) | TCP |
Human Error
いくらか手段を実行する前にHuman Errorを確認しましょう。
- IPアドレスやドメインを打ち間違えてないか
- Portを打ち間違えていないか
- そもそもネットワークに接続されているのか
- Minecraftのバージョンは一致しているのか
- 接続先のサーバーは起動されているのか
etc..
ネットワーク全体図
一般的にはMinecraftかサーバーまで図のようにパケットが流れていくかと思います。
そしてそこでパケットがブロックされそうなのはOSとRouterですが、主にOSが怪しいです。
ポート疎通
ネットワークの全体図からどこが怪しいのかを見極めようとした時にtraceroute
は便利ですが、WindowsではICMPで通信を行うためUDPやTCPがブロックされていた場合には嬉しくありません。
そこでPortqry
を使うことにします!
以下の参考記事に詳しいことが述べられています。
Portqry
はMicrosoftが提供しているコマンドラインツールで公式マニュアルも存在します。
こんな便利なものは利用しない手はないので、早速ダウンロードして実行してみます。
PortQryV2.exe -n [IPAddress] -p [tcp/udp] -e [Port]
書き換え | 内容 |
---|---|
[IPAddress] | 確認したいサーバーのIPアドレス |
[tcp/udp] | Bedrockはudp, Javaはtcp |
[Port] | サーバーのポート番号 |
結果としてLISTENING
と表示されればMinecraftのプロトコルは弾かれているが、Portqryは通っていることからして、FWかウィルス対策ソフトでMinecraftをブロックしていることが確実でしょう。
逆にFILTERED
と表示されればFW(Firewall)かウィルス対策ソフトまたはRouterがブロックしている匂いがしてきます。が、PortQryをFWがブロックしてることになかなかないであろうからRouterが怪しい気がしてきます。
Routerは外向きはあまりブロックしない
強固にフィルタリングされた環境ではあり得ない話でもありませんが、一般的な家庭ではRouterが邪魔をすることはあり得ないといっても過言ではないです。
そういうことからもググっても出てくる記事ではFWやウィルス対策ソフトに焦点が当てられているのでしょう。
FWのログを取得する
FWにはdrop(破棄)したパケットのログが確認できます。
その中にMinecraftのパケットが含まれていたらFWが原因の一つであることは確かです。
以下の記事を参考にログを取得してみてください
もし取得できたならばdst-ip
(送信先IP)やdst-port
(送信先ポート)で目的のパケットを探すことができるでしょう。
もし含まれていおり設定する場合も注意が必要で、一部のウィルス対策ソフトではFWを管理している場合もあり、FWから直接設定が変えれない場合もあります。(自分が使っているESETはそのような状態になります。)
そのためFWが問題だからといってFWのみの設定になるとは限りません。また、そういった状態の時はFWの設定中にウィルス対策ソフトが管理されているなどのポップが表示されるはずです。必ず確認しましょう。
tracert
先ほども少し触れましたICMPで通信するtracert
も一応経路確認として利用できます。
もしここでローカルからインターネットへ出ていくルータまで届いていないのであれば、ローカルでの問題であることが確認できます。
まとめ
結果としてほとんどFWかウィルス対策ソフトが怪しいのではと考えれそうです。
ウィルス対策ソフトごとに設定が異なるため注意が必要です。
Discussion