StarCraft: Remasteredでは、ゲームクライアントがUDPポート6112で直接接続を確立できない場合に「Unable to join game. (Error 6112)」(ゲームに参加できません。[エラー 6112])という警告が発生します。このエラーを解消するには、Windowsのリソースモニターでローカルポートの競合を解消し、ゲーム内のネットワーク設定で「Prefer 6112 port」(ポート6112を優先)を有効にし、ルーター側でTCPおよびUDPのポート6112を単一の静的IPアドレス宛てにポート開放(ポートフォワーディング)する必要があります。

なぜBattle.netでエラー6112が発生するのか
クラシックなBattle.netプロトコルの仕様上、StarCraftのゲームクライアントはゲームのホストやP2P(ピアツーピア)接続を確立するためにUDPポート6112に直接バインドし、ログイン中もその同じポートでBattle.netチャットサーバーと通信します(Battle.netプロトコル ドキュメント)。ポート6112がバックグラウンドのOSタスクによって既に使用されていたり、ファイアウォールでブロックされていたり、ルーターの変換テーブルによって書き換えられていたりすると、クライアントは他のプレイヤーと対戦データをやり取りできなくなります。
すべてのマルチプレイヤー通信を中央のリレーサーバー経由でルーティングする最近のゲームとは異なり、StarCraft: Remasteredはロビーに入った後はプレイヤー同士の直接通信に依存しています。指定されたポートで受信パケットがPCに届かない場合、ロビーでのハンドシェイクは即座にタイムアウトします。
ステップ1:競合しているバックグラウンドアプリを検出する
ルーター機器の設定を変更する前に、PC上の別のソフトウェアプロセスがポート6112を占有していないか確認してください。サードパーティのバックアップツール、スケジュール管理ソフト、ネットワーク監視ツールなどが起動時にこのポートを予約しているケースがよくあります。
Ctrl + Shift + Escキーを押してWindowsのタスクマネージャーを開き、パフォーマンスタブに切り替えて、下部にあるリソース モニターを開くをクリックします。- リソース モニターのウィンドウで、ネットワークタブを選択します。
- リッスンしているポートのセクションを展開します。
- ポートの列ヘッダーをクリックして、アクティブなポートを番号順に並べ替えます。
- 下にスクロールして、ポート6112を確認します。
この一覧にStarCraft以外の実行ファイル(バックアップスケジューラーサービスとして知られるABService.exeなど)が表示されている場合、Battle.netはポート6112にバインドできません(Blizzardコミュニティフォーラム)。競合しているタスクを終了するか、該当プログラムのネットワーク設定を変更してポートを開放してください。

ステップ2:ゲーム内のネットワークオプションを設定する
StarCraft: Remasteredには、動的ポート範囲を順繰りに試すのではなく、デフォルトのレガシーポートにクライアントを固定するための内部設定が用意されています。
ゲームクライアントを起動し、メインメニューを開いてOptions(オプション)を選択します。Network(ネットワーク)カテゴリーに移動します。Prefer 6112 port(ポート6112を優先)と表示されたチェックボックスを見つけ、チェックが入っていることを確認します(Blizzardコミュニティフォーラム)。変更を保存し、クライアントを再起動してください。
これにより、家庭用ファイアウォールでブロックされやすい動的エフェメラルポートへクライアントがフォールバックするのを防ぐことができます。
ステップ3:ルーターでポート開放を設定する
StarCraftはロビーの同期に着信UDPパケットを利用しているため、明示的なNAT転送ルール(ポートフォワーディング)が存在しない限り、家庭用ルーターはこの受信トラフィックを破棄してしまいます。
ポート設定マトリクス
注:対象範囲に関して、技術ガイド間で若干の差異があります。一部のBlizzard公式トラブルシューティングスレッドではTCPとUDPのポート6112のみで十分と記載されていますが、より広範なコミュニティのルーティングドキュメントでは、ロビーのローテーションを考慮して6112から6119までのUDP範囲全体を開放することを推奨しています。
単一ターゲットIPの設定
転送されたポートは、ローカルサブネット上の1つのIPアドレスにのみ送信できます(Blizzardテクニカルサポート)。ポート6112を192.168.1.50に転送した場合、その特定のローカルアドレスが割り当てられたマシンだけがトラフィックを受信します。
- Windows上でゲーミングPCに静的IPアドレスを割り当てるか、ルーターの管理画面で永続的なDHCP予約を作成します。
- その静的IPを対象として、UDP(および6112向けのTCP)でポート6112(または6112–6119の範囲)の転送ルールを作成します。
- 設定を保存し、ルーターを再起動します。
外部の診断ツールやポートチェック用ウェブサイトを使用してポート6112が開いているかテストする際は、StarCraftを完全に終了しておく必要があります(Blizzardコミュニティフォーラム)。ゲームが起動していると、クライアントによるポートの占有が診断プローブを妨害してしまいます。

ステップ4:ルーターのNATトラバーサルと高度なネットワーク上の障害
ポート6112を開放し、ローカルソフトウェアの競合を排除した後でも、中間変換レイヤーが原因でパケットがBattle.netに届かないことがあります。
アウトバウンドNATの送信元ポート保持
特定の高機能ルーターやファイアウォールディストリビューション(特にpfSenseなど)は、標準的なネットワークアドレス変換時に送信UDPパケットの送信元ポートを書き換えてしまいます。送信UDPパケットの送信元ポートが変更されると、StarCraftはマルチプレイヤーセッションを維持できなくなります(Elias Carterネットワークガイド)。
pfSenseやエンタープライズ向けのルーティングファームウェアでこれを修正するには、Outbound NAT(送信NAT)ルールの設定を開きます。モードを自動からハイブリッドまたは手動に切り替え、お使いのPCのIPアドレスを対象とするルールを作成してStatic Port(静的ポート)マッピングを有効にします。これにより、ポート6112から発信された送信パケットが、インターネット側へ出ていく際にもポート6112のまま維持されます。
キャリアグレードNAT(CGNAT)
多くのインターネットサービスプロバイダー(ISP)は、キャリアグレードNAT(CGNAT)を利用して、1つのパブリックIPv4アドレスを数十の世帯で共有しています。CGNAT環境下では、家庭用ルーターに個別のパブリックIPv4アドレスが割り当てられません。その結果、ポート6112宛ての受信トラフィックが自宅の機器まで届かず、ローカルでのポート開放設定が無効化されてしまいます。
これを解決するには、契約しているインターネットサービスプロバイダーのサポート窓口に直接問い合わせてください。回線をキャリアグレードNAT/IPv4 NATの対象から外してもらい、専用または動的なパブリックIPv4アドレスを割り当てるよう依頼します(Blizzardテクニカルサポート)。プロバイダー側でアカウントプロファイルの更新が完了したら、モデムを再起動してください。
同一ネットワーク上にある2台のPCでエラー6112を解決する
1台のルーターがポート6112を転送できるのは、同時に1つのローカルIPアドレスのみです。同一のローカルネットワーク上で2台のStarCraft: Remasteredクライアントを同時に起動しようとすると、2台目のマシンの接続が切断されます。
Windowsレジストリを編集することで、2台目のコンピューターのデフォルト通信ポートを変更(オーバーライド)できます:
Win + Rキーを押し、regeditと入力してEnterキーを押します。Game Data Portという名前のDWORD値を作成します。- 基数を10進に設定し、
6113などの値を入力します(Icyhell技術アーカイブ)。 - ルーター側で、UDPポート6113を2台目PCのローカルIPアドレス宛てにポート転送します。
レジストリパスの差異について:以前のセットアップガイドではこのDWORDの場所としてHKEY_LOCAL_MACHINE\BLIZZARD ENTERTAINMENT\Starcraftが挙げられていましたが、新しいクライアントのインストール環境ではネットワークキーがHKEY_CURRENT_USER\Software\Battle.net\Configuration配下に配置されていることがよくあります。ポート変更が反映されない場合は、両方の場所を確認してください。