WSL mirroredネットワークモード設定ガイド

WSL2.6.0ネットワークモードアップグレード設定ガイド

バージョン要件

現在のバージョンステータス:

  • 最新安定版:2.5.9(ネットワーク設定欠陥あり)
  • 推奨バージョン:2.6.0 プレビュー版(完全mirroredモードサポート)

モード比較分析

特徴 bridgeモード(廃止予定) mirroredモード(推奨)
プロトコルスタックアーキテクチャ デュアルプロトコルスタック シェアプロトコルスタック
IPアドレス割り当て 独立IP(Windows+WSL) ホストIP共有
ポートリソース 独立使用 ポート共有(競合回避必要)
ネットワーク性能 比較的重い 軽量効率的
設定複雑度 簡単 ファイアウォールポリシーの深い設定必要

標準設定手順

1. ネットワークモード設定

WSL Settings アプリで基礎モードを設定:

  1. 設定アプリを開く
  2. “Network"タブを選択
  3. ネットワークモードを"Mirrored"に設定
  4. 設定を適用しWSLを再起動

2. ファイアウォールポリシー設定

PowerShellで完全ポリシー設定を実行:

# WSL仮想マシンGUID定義
$wslGuid = '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}'

# ファイアウォールポリシー設定(順序通り実行)
Set-NetFirewallHyperVVMSetting -Name $wslGuid -Enabled True
Set-NetFirewallHyperVVMSetting -Name $wslGuid -DefaultInboundAction Allow
Set-NetFirewallHyperVVMSetting -Name $wslGuid -DefaultOutboundAction Allow
Set-NetFirewallHyperVVMSetting -Name $wslGuid -LoopbackEnabled True
Set-NetFirewallHyperVVMSetting -Name $wslGuid -AllowHostPolicyMerge True

# 設定結果検証
Get-NetFirewallHyperVVMSetting -Name $wslGuid

3. ポートマッピング検証

# 例:80番ポート使用状況を確認
Get-NetTCPConnection -LocalPort 80

よくある問題対処

問題1:外部接続が確立できない

  • 確認手順:Get-NetFirewallHyperVVMSetting出力で全てのフィールドがTrue/Allowであること
  • 解決策:ファイアウォールポリシー設定を順序通り再実行

問題2:ポート競合

  • 検証方法:netstat -anoでポート使用状況を確認
  • 対処提案:Windows側ポートを優先的に解放、またはWSLサービスのリスンポートを変更

検証方法

  1. WSLサービス(Nginx/Apache等)を起動
  2. Windowsホストからhttp://localhost:<port>にアクセス
  3. ローカルネットワークデバイスからhttp://<host-ip>:<port>にアクセス

参考資料

  1. WSL公式ネットワークドキュメント
  2. WSL 2.6.0リリースノート