「またIPアドレスが変わってる……」
朝、開発サーバーを立ち上げるたびにSSH接続がタイムアウトし、慌ててターミナルで ip addr を叩く。
そんな経験にうんざりしていませんか?
あるいは、ネットで見つけた「PowerShellでIPを無理やり固定するスクリプト」をタスクスケジューラに登録し、Windows Updateのたびに動かなくなるスクリプトの修正に追われていないでしょうか。
上司から急ぎの修正を頼まれた時に限って、開発環境が繋がらない焦りは、私自身も痛いほど経験してきました。
しかし、断言します。
IPアドレス変動による設定修正の苦労は、もう過去のものです。
Windows 11 (22H2) 以降で利用可能な新機能「Mirrored Networking Mode(ミラーリングネットワークモード)」を使えば、WSL2はWindowsホストと同じIPアドレスを持つようになります。
つまり、「WSL側のIPを固定する」という作業自体が不要になるのです。
この記事では、メンテナンスの面倒なスクリプトを全て捨て、設定ファイルにたった2行書き加えるだけで解決する、Microsoft公式推奨の「最新の正攻法」を解説します。
—
なぜ「IP固定」は面倒なのか?WSL2の新旧アーキテクチャ解説
これまで私たちが苦しめられてきた「IPが変わる問題」の元凶は、WSL2が標準で採用していた「NAT Mode(ネットワークアドレス変換モード)」という仕組みにありました。
仮想ルーターという「壁」
従来のNAT Modeでは、Windowsの中に「仮想的なルーター(Hyper-V Virtual Switch)」が存在していました。
WSL2はこのルーターの内側に配置されるため、Windowsホストとは別のネットワーク帯域(例:172.x.x.x)に隔離されてしまいます。
PCを再起動するたびに、この仮想ルーターが新しいIPアドレスをWSL2に割り振り直すため、私たちは「毎回IPが変わる」という現象に悩まされていたのです。
「固定」ではなく「共有」へ
これに対し、新しく登場したMirrored Networking Modeは、NAT Modeが抱えていた構造的な問題を根本から解決する、完全な上位互換となるアーキテクチャです。
Mirrored Modeを有効にすると、その名の通り、WSL2はWindowsのネットワークインターフェースを「鏡(ミラー)」のように直接参照します。
その結果、WSL2のIPアドレスはWindowsホストのIPアドレスと完全に同一になります。
つまり、「WSLのIPをどう固定するか」と悩む必要はなく、「Windows(ホスト)のIPさえ決まっていれば、WSLも自動的にそれに従う」というシンプルな構造になるのです。
✍️ 専門家の経験からの一言アドバイス
【結論】: 「WSLを独立したサーバーとして扱う」という意識を捨て、「Windowsの一部(サブシステム)として扱う」よう意識を変えましょう。
なぜなら、Mirrored Modeの本質は「統合」だからです。
これまでは「仮想マシンだから別のIPがあるはず」と考えて固定化に躍起になっていましたが、これからは「Windowsと同じ住所に住んでいる」と考えることで、ネットワーク設定の悩みは劇的に減ります。
—
脱スクリプト。.wslconfigだけで完結する設定手順
それでは、実際に設定を行っていきましょう。
複雑なPowerShellスクリプトやタスクスケジューラの設定は一切不要です。
必要なのは、ホームディレクトリにある設定ファイル「.wslconfig」の編集だけです。
Step 1: バージョンの確認
まず、お使いの環境がMirrored Modeに対応しているか確認します。
PowerShellまたはコマンドプロンプトを開き、以下のコマンドを実行してください。
wsl --version
- WSL バージョン: 2.0.0 以上
- Windows バージョン: Windows 11 22H2 (ビルド 22621) 以上
これより低いバージョンの場合は、wsl --update を実行してWSLを最新版に更新してください。
Step 2: 設定ファイル .wslconfig の作成・編集
Windowsのユーザーホームディレクトリ(C:\Users\<ユーザー名>\)にある .wslconfig ファイルを編集します。
(※キーボードの Win + R を押し、%UserProfile% と入力してEnterキーを押すと、簡単にフォルダを開けます)
ファイルが存在しない場合は新規作成してください。
この .wslconfig ファイルこそが、WSL2の挙動を制御する司令塔です。
以下の設定をコピーして貼り付けてください。
[wsl2]
# ネットワークモードを「ミラーリング」に設定(必須)
networkingMode=mirrored
# DNS解決の安定化(推奨)
dnsTunneling=true
# WindowsファイアウォールのルールをWSLにも適用(必須級)
firewall=true
# プロキシ設定の自動引き継ぎ(必要な場合)
autoProxy=true
Step 3: 設定の反映(重要)
設定ファイルを保存しただけでは変更は適用されません。
必ずWSLを一度完全にシャットダウンして、設定を再読み込みさせる必要があります。
wsl --shutdown
その後、WSLを起動(ターミナルを開くなど)し、WSL内で ip addr を実行してみてください。
eth0 などのインターフェースに、Windows側と同じIPアドレス(例: 192.168.x.x)が割り当てられていれば成功です。
PowerShellで ipconfig を実行して表示されるWindowsのIPv4アドレスと、完全に一致していることを確認してください。
✍️ 専門家の経験からの一言アドバイス
【結論】: 設定が反映されない時は、9割方 wsl --shutdown の実行忘れか、ファイル名のミスです。
ファイル名が .wslconfig.txt になっていないか確認してください(拡張子を表示する設定にしましょう)。
また、wsl.conf(WSL内部の設定ファイル)と混同しないよう注意が必要です。今回触るのは、Windows側にある .wslconfig です。
—
【重要】「繋がらない」を防ぐファイアウォールとDocker設定
「設定したのに、外部から繋がらない!」
「Dockerが動かなくなった!」
Mirrored Mode導入後に最も多く寄せられる相談がこれです。
これは不具合ではなく、アーキテクチャの変化に伴う「正しい副作用」です。
ここを理解しておけば、トラブルを未然に防げます。
1. Windowsファイアウォールの「壁」
Windows Defender Firewallは、Mirrored Modeにとっては強力な「競合要因」となり得ます。
以前のNAT Modeでは、仮想ルーターが緩衝材となり、Windows側のファイアウォールの影響を受けにくい(=セキュリティが緩い)状態でした。
しかし、Mirrored ModeではWindowsとIPを共有するため、Windowsのファイアウォール設定がWSLにもダイレクトに適用されます。
対策:
外部(LAN内の他PCなど)からWSL上のサーバー(例: Node.jsの3000番ポート)にアクセスしたい場合、Windows側の「セキュリティが強化されたWindows Defenderファイアウォール」で、「受信の規則」に新しいルールを追加し、そのポートを許可する必要があります。
(※注:現在接続しているネットワークが『プライベート』か『パブリック』かを確認し、適切なプロファイルにルールを適用してください)
「繋がらない」と思ったら、まずはWindowsのファイアウォールを一時的に無効にして接続できるか確認し、原因を切り分けましょう。
2. Docker Desktopとのバージョン競合
Docker Desktopは、Mirrored Modeの恩恵を受ける一方で、古いバージョンでは互換性の問題を起こす「依存関係」にあります。
古いDocker Desktop(特にv4.25以前)を使用していると、Mirrored Mode環境下でコンテナがネットワークに接続できない問題が発生することがあります。
対策:
- アップデート: Docker Desktopを v4.26.0以降(できれば最新版)にアップデートしてください。
- 設定確認: Settings > General にある『Use the WSL 2 based engine』がチェックされていることを確認してください。
—
よくある質問とトラブルシューティング (FAQ)
最後に、よくある疑問についてお答えします。
Q1. それでもやっぱり固定IPアドレスを設定したい場合はどうすれば?
A. Windows側(ホストOS)のIPアドレスを固定してください。
Mirrored ModeではWSLはWindowsのIP設定に従います。
Windowsのネットワーク設定でIPを固定するか、ルーター側でDHCP予約設定を行えば、WSLのIPも自動的に固定されます。WSL側で設定する必要はありません。
Q2. VPNを繋ぐとWSLからネットが見えなくなります。
A. Mirrored Modeと dnsTunneling=true の組み合わせで劇的に改善されます。
従来のNAT ModeではVPNとの相性が最悪でしたが、Mirrored ModeはVPN互換性が大幅に向上しています。これも乗り換える大きなメリットの一つです。
Q3. IPv6は使えますか?
A. はい、使えます。
NAT Modeでは実験的なサポートでしたが、Mirrored ModeはIPv6をフルサポートしています。
—
まとめ:開発環境を「ハック」から「スタンダード」へ
Windows 11のMirrored Networking Modeは、長年私たちを悩ませてきた「WSL2のネットワーク問題」に対する、Microsoftからの最終回答と言えます。
- NAT Mode(旧): 仮想ルーターに阻まれ、IPが変わり続ける不安定な環境。
- Mirrored Mode(新): ホストと一体化し、設定ファイルだけで管理できる安定した環境。
もう、複雑なスクリプトをメンテナンスする必要はありません。
「いつ壊れるか分からないハック」から卒業し、公式推奨のモダンな設定で、本来の業務であるコーディングに集中しましょう。
まずはターミナルを開き、wsl --version を確認するところから始めてみてください。
あなたの開発ライフが、より快適になることを約束します。
🛠️ 開発環境が整ったら、次は「メール環境」も爆速化しませんか?
WSL2のネットワーク設定、お疲れ様でした!これで開発に集中できますね。
ところで、開発の合間に見る「Gmail」、まさかまだブラウザのタブで探していませんか?
実は、Windows 11ならGmailを「専用アプリ」のように独立ウィンドウで起動し、通知もネイティブに受け取れる方法があります。ターミナルとブラウザを行き来するストレスから解放されましょう!
👉 【絶対やるべき】Windows 11でGmailを「最強のアプリ」にする方法を見る
※エンジニアに必須の「キーボードショートカット」活用術も解説しています。


コメント