Minecraft を VPN 経由で: サーバー一覧にはどのアドレスを書く?
VPN の端点がトンネルを作り、ゲームにはホストのプライベートアドレスとポートが必要です。役割をアドレスに対応させ、待ち受け、経路、ホストのルールを確認します。
Minecraft のサーバー一覧に VPN の端点を入力するのは筋が通って見えますが、必ず失敗します。そのアドレスはトンネルを終端するもので、ゲームをホストしているわけではないからです。同じ VPN に接続したプレイヤーはすでにゲームホストへの経路を持っているので、入力欄にはホストとゲームが待ち受けるポートを書く必要があり、この二つを正せば残りの問題はごく普通のサービスの到達性で、最初に見えたよりずっと短いチェックリストです。
二つのアドレス、二つの役割
一方のアドレスは、ピア間で暗号化パケットを運ぶトランスポートの端点という公開インフラです。もう一方は、専用サーバーを動かすマシンのプライベートアドレスです。両者を交換することはできず、片方をもう片方で置き換えると、ファイアウォールの問題に見える接続拒否やタイムアウトになります。
| Role | Address | Where it belongs |
|---|---|---|
| Public transport endpoint | 203.0.113.40 | VPN client configuration, never the game |
| Game host on the VPN | 10.60.0.20 | Server address field, with the port |
| Player peer | 10.60.0.30 | Assigned by the tunnel, nothing to type |
既定のポートなら、プレイヤーは 10.60.0.20:25565 とだけ入力します。Mojang の Java サーバーのダウンロードページは 25565 を既定として挙げており、ポートを変えた運営者は古いチュートリアルから疑うのではなく信じるべきです。
そのアドレスを本物のサービスにする
到達できるアドレスは必要ですが十分ではありません。専用サーバーが動いていて、プレイヤーのクライアントが使うバージョンと互換性があり、トンネルが届けられるアドレスで待ち受けている必要があります。loopback にしか束縛されていないプロセスは、誰かがマシンに別のアドレスを足しても到達可能にはなりません。
ファイアウォールに触る前に待ち受けを確認します:
ss -lntp | grep 25565
nc -vz 10.60.0.20 25565
最初の行はプロセスが実際に何に束縛されたかを示し、二行目は相手が TCP ハンドシェイクを完了できるかを示します。束縛が 127.0.0.1 なら、VPN の設定をどれだけ変えても結果は変わらず、この一点だけで「VPN が壊れた」という報告の驚くほど多くの説明がつきます。
ピアのポリシー、ファイアウォール、戻り経路
待ち受けの上には二つの許可の問いがあります。VPN のピア設定が二者間の通信を許し、ゲームホストのファイアウォールがそのピアからのゲームポートを受け入れる必要があります。どちらもゲームサービスと許可されたピアに限定し、ホストのファイアウォールを切るのは避けてください。二行のルールをはるかに大きな問題と交換することになり、狭いルールこそが一段落の正当化なしにセキュリティレビューを通る唯一の形でもあります。
次に、成功した ping が何を証明するかを思い出します。VPN ゲートウェイに届くことや、ゲームホストから応答があることは、ICMP が経路を通ったことしか示しません。ゲーム接続には特定のポートが双方向で開いている必要があり、戻りの経路は行きの経路と同じだけ重要です。
サーバーがゲートウェイの背後にあるとき
上の例ではゲームサーバーがピアなので、アドレス計画は単純なままです。サーバーが VPN ゲートウェイの背後の LAN にある場合は、プレイヤーにはサーバーの経路可能なプライベートアドレスが必要で、ゲートウェイにはその LAN 向けの転送設定が必要で、LAN のホストにはトンネル越しのクライアントへの戻り経路が必要です。戻り経路を落とすとハンドシェイクは途中で死に、これが三つの失敗の中で最も混乱を招きます。
この構成をまねるために、例のピアアドレスを別のマシンにコピーしないでください。例の中のアドレスは役割を表しており、一つのアドレスを二つの役割で再利用すると、ルーティングでは解決できない重複が生まれます。
検出、アカウント、変えてはいけないもの
LAN の自動検出は告知の上に成り立つ便利機能です。ルーティングされた VPN はそのブロードキャストを運ぶ必要がないので、LAN 一覧に項目がないことは、明示的なプライベートアドレスが機能するかどうかを何も語りません。アドレスを入力してから判断してください。接続できれば、検出の欠落は不具合ではなく使い勝手の不便であり、調査する代わりにそのように記録できます。
ゲーム本来のアカウント認証と入場ポリシーもそのままにしてください。機能するプライベート経路が与えるのは経路であり、メンバーシップではなく、アダプターの優先順位を入れ替えてもクライアントが使うべき宛先の特定の代わりにはなりません。