※本ページにはプロモーション(広告)が含まれています
Windows 11でWSL2(Windows Subsystem for Linux 2)を使っていて、Ubuntu等のLinuxディストリビューション内からインターネットに接続できない・DNS解決が失敗するという問題に直面していませんか?
WSL2は開発者にとって欠かせないツールですが、ネットワーク周りのトラブルは非常に多く報告されています。特に2026年現在、Windows 11の24H2/25H2アップデート後にWSL2のネットワーク接続が突然切れるケースや、VPN接続時にWSL2からインターネットにアクセスできなくなるケースが頻発しています。
この記事では、WSL2でインターネットに接続できない原因を徹底的に解説し、確実に復旧するための対処法をステップ形式で紹介します。開発環境が止まって困っている方は、ぜひ順番にお試しください。
この記事でわかること
- WSL2でインターネットに接続できない7つの主な原因
- /etc/resolv.confのDNS設定を手動で修正する方法
- .wslconfigでDNSとネットワーク設定を最適化する手順
- Hyper-Vの仮想スイッチが引き起こす問題と対処法
- VPN・ファイアウォールとWSL2の共存方法
- ミラードネットワーキングモードの設定方法
- Windows 11 24H2/25H2で発生する新しい問題の解決法

WSL2でインターネットに接続できない主な原因
WSL2のネットワーク問題は、WindowsホストとLinuxゲストの間のネットワーク構成に起因することがほとんどです。原因を理解してから対処法に進みましょう。
原因1:/etc/resolv.confのDNS設定が正しくない
WSL2はデフォルトで/etc/resolv.confを自動生成しますが、この自動生成されたDNSサーバーのアドレスが正しくない場合や、ファイルが破損している場合にDNS解決が失敗します。特にVPN使用時にこの問題が顕著に現れます。
原因2:Hyper-Vの仮想ネットワークスイッチの問題
WSL2はHyper-Vの仮想化技術を使用しており、仮想ネットワークスイッチを通じてインターネットに接続します。このスイッチの設定が壊れたり、Windows Updateにより構成が変更されたりすると、WSL2からの通信が遮断されます。
原因3:VPNソフトウェアとの干渉
企業VPN(Cisco AnyConnect、GlobalProtect、Pulse Secure等)を使用していると、VPNがネットワークルーティングを変更するため、WSL2の仮想ネットワークアダプタからの通信がVPNトンネルを通過できなくなります。これはWSL2ユーザーが最も頻繁に遭遇する問題です。
原因4:Windowsファイアウォールがブロックしている
Windows Defenderファイアウォールやサードパーティのファイアウォールが、WSL2の仮想ネットワークアダプタ(vEthernet)からの通信をブロックしている場合があります。
原因5:Windows Updateによるネットワーク設定の変更
Windows 11のメジャーアップデート(24H2、25H2等)後に、WSL2のネットワーク設定がリセットされたり、Hyper-Vの仮想スイッチの構成が変更されたりすることがあります。
原因6:WSL2のDNS自動設定(generateResolvConf)の問題
WSL2はデフォルトで起動時に/etc/resolv.confを自動生成しますが、Windows側のDNS設定をそのまま使用するため、特殊なネットワーク構成(マルチホーム、カスタムDNS等)では正しく機能しないことがあります。
原因7:MTU(Maximum Transmission Unit)の不一致
WSL2のネットワークインターフェースのMTU値がWindowsホストと一致していない場合、大きなパケットが正しく転送されず、特定のウェブサイトやサービスに接続できなくなります。
| 原因 | 症状 | 対処の難易度 |
|---|---|---|
| DNS設定の問題 | 名前解決が失敗する(pingはIPで通る) | 簡単 |
| Hyper-V仮想スイッチ | 完全に通信不可 | 中程度 |
| VPNとの干渉 | VPN接続中のみ通信不可 | 中〜難 |
| ファイアウォール | 外部への通信がブロック | 簡単 |
| Windows Update後 | アップデート後に突然通信不可 | 中程度 |
| DNS自動生成の問題 | 起動直後はOKだが後で失敗 | 簡単 |
| MTU不一致 | 一部のサイトだけ接続不可 | 中程度 |
対処法1:/etc/resolv.confを手動で修正する
最も一般的かつ即効性のある対処法です。DNSサーバーをGoogle Public DNSに手動設定します。
手順
ステップ1:WSL2のターミナルを開きます(Ubuntu等)。
ステップ2:まず現在のDNS設定を確認します。以下のコマンドを入力します。
cat /etc/resolv.conf
表示される「nameserver」の値を確認します。ここが正しくないIPアドレスになっている場合がDNS障害の原因です。
ステップ3:resolv.confの自動生成を無効にするため、/etc/wsl.confを編集します。
sudo nano /etc/wsl.conf
以下の内容を追記(またはファイルが存在しない場合は新規作成)します。
[network] generateResolvConf = false
Ctrl+O で保存、Ctrl+X で終了します。
ステップ4:既存のresolv.confを削除して新しいものを作成します。
sudo rm /etc/resolv.conf sudo nano /etc/resolv.conf
以下の内容を入力します。
nameserver 8.8.8.8 nameserver 8.8.4.4
保存して終了します。
ステップ5:PowerShell(管理者として実行)で以下のコマンドを実行してWSL2を再起動します。
wsl --shutdown
ステップ6:WSL2を再度起動し、インターネット接続を確認します。
ping -c 4 google.com
ポイント:Google Public DNS(8.8.8.8)の代わりに、Cloudflare DNS(1.1.1.1)やOpenDNS(208.67.222.222)を使用することもできます。企業ネットワークの場合は、IT部門に正しいDNSサーバーのアドレスを確認してください。

対処法2:.wslconfigでネットワーク設定を最適化する
Windowsのユーザーフォルダに.wslconfigファイルを作成し、WSL2のネットワーク動作を細かく制御できます。
手順
ステップ1:エクスプローラーで「%UserProfile%」フォルダを開きます(通常は C:\Users\ユーザー名)。
ステップ2:テキストエディタ(メモ帳等)で新しいファイルを作成し、「.wslconfig」という名前で保存します(ファイル名の先頭にドットがつきます)。
ステップ3:以下の内容を記述します。
[wsl2] networkingMode=mirrored dnsTunneling=true autoProxy=true
ステップ4:ファイルを保存し、PowerShell(管理者)で以下を実行します。
wsl --shutdown
ステップ5:WSL2を再起動して接続を確認します。
各設定の意味
| 設定項目 | 説明 | デフォルト値 |
|---|---|---|
| networkingMode=mirrored | WindowsのネットワークをWSL2にミラーリング | NAT |
| dnsTunneling=true | DNSリクエストをWindowsホスト経由でトンネル | false |
| autoProxy=true | Windowsのプロキシ設定を自動適用 | false |
おすすめ:「networkingMode=mirrored」はWindows 11 22H2以降で使用可能な新しいネットワークモードで、VPNとの互換性が大幅に改善されます。VPN使用時に問題がある場合は、この設定を最初に試してください。
対処法3:Hyper-Vの仮想ネットワークスイッチをリセットする
Hyper-Vの仮想ネットワークアダプタが破損している場合、リセットすることで問題が解決します。
手順
ステップ1:PowerShellを管理者として実行します。
ステップ2:以下のコマンドで現在のネットワークアダプタを確認します。
Get-NetAdapter | Where-Object {$_.Name -like "*WSL*" -or $_.Name -like "*vEthernet*"}
ステップ3:WSL2を一度シャットダウンします。
wsl --shutdown
ステップ4:Windowsのネットワーク設定をリセットします。「設定」→「ネットワークとインターネット」→「ネットワークの詳細設定」→「ネットワークのリセット」をクリックします。
ステップ5:コンピューターを再起動します。
ステップ6:再起動後、WSL2を起動してインターネット接続を確認します。
注意:ネットワークのリセットを行うと、すべてのネットワークアダプタが再インストールされ、Wi-Fiパスワードやプロキシ設定がリセットされます。必要な情報を事前にメモしておいてください。
対処法4:VPN使用時のルーティングを修正する
VPN(Cisco AnyConnect、GlobalProtect等)使用時にWSL2からインターネットにアクセスできない場合の対処法です。
方法A:ミラードネットワーキングモードを使う(推奨)
対処法2で説明した.wslconfigの「networkingMode=mirrored」を設定することで、多くのVPN環境で問題が解決します。この方法が最もシンプルで効果的です。
方法B:WSL2のインターフェースにルーティングを追加する
ステップ1:Windows側のPowerShell(管理者)で、WSL2のゲートウェイIPを確認します。
wsl hostname -I
ステップ2:WSL2側のターミナルで、Windowsホスト側のIPアドレスを確認します。
cat /etc/resolv.conf | grep nameserver
ステップ3:必要に応じて、WSL2内でデフォルトルートを再設定します。
sudo ip route del default sudo ip route add default via [WindowsホストIP]
対処法5:Windowsファイアウォールの設定を確認する
Windows Defenderファイアウォールが WSL2の通信をブロックしていないか確認します。
手順
ステップ1:PowerShellを管理者として実行します。
ステップ2:以下のコマンドで、WSL2用のファイアウォールルールを追加します。
New-NetFirewallRule -DisplayName "WSL2 Inbound" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow New-NetFirewallRule -DisplayName "WSL2 Outbound" -Direction Outbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
ステップ3:サードパーティのセキュリティソフト(ウイルスバスター、ノートン等)を使用している場合は、そのファイアウォール設定でも「vEthernet (WSL)」の通信を許可してください。

対処法6:WSL2のMTU値を調整する
MTU値の不一致により一部のサイトに接続できない場合の対処法です。
手順
ステップ1:WSL2のターミナルで現在のMTU値を確認します。
ip link show eth0
「mtu」の値を確認します(通常は1500ですが、VPN環境では異なる場合があります)。
ステップ2:MTU値を1400に下げてテストします。
sudo ip link set dev eth0 mtu 1400
ステップ3:接続をテストします。
curl -I https://www.google.com
接続が成功した場合、MTU不一致が原因でした。この設定をWSL2の起動時に自動適用するには、/etc/wsl.confに以下を追記します。
[boot] command = ip link set dev eth0 mtu 1400
対処法7:WSL2を完全にリセットする(最終手段)
上記の方法をすべて試しても解決しない場合、WSL2のディストリビューションを再インストールする方法があります。
手順
ステップ1:重要なデータをバックアップします。WSL2内の/home以下のファイルをWindowsのフォルダにコピーしておきます。
cp -r /home/ユーザー名/重要フォルダ /mnt/c/Users/Windowsユーザー名/Desktop/wsl-backup/
ステップ2:PowerShell(管理者)で現在のディストリビューションを確認します。
wsl --list --verbose
ステップ3:ディストリビューションの登録を解除します(データが削除されます)。
wsl --unregister Ubuntu
ステップ4:Microsoft StoreからUbuntuを再インストールするか、以下のコマンドでインストールします。
wsl --install -d Ubuntu
ステップ5:初期設定後、インターネット接続を確認します。
注意:ディストリビューションの登録解除(unregister)を行うと、そのディストリビューション内のすべてのデータが削除されます。必ず事前にバックアップを取ってください。
対処法のまとめ一覧表
| 対処法 | 効果 | 推奨場面 |
|---|---|---|
| resolv.confの手動修正 | DNS問題に即効 | 名前解決が失敗する場合 |
| .wslconfigでミラードモード | VPN環境に最適 | VPN使用時に接続不可 |
| Hyper-V仮想スイッチリセット | 完全通信不可時に有効 | Update後に突然通信不可 |
| VPNルーティング修正 | VPN環境限定 | 企業VPN使用時 |
| ファイアウォール設定 | ブロック解除 | セキュリティソフト使用時 |
| MTU値の調整 | 部分的な接続問題に有効 | 一部のサイトだけ接続不可 |
| WSL2の再インストール | 確実だがデータ削除 | 他の方法で解決しない場合 |
この記事に関連するおすすめ商品
新しいLinuxの教科書 第2版
約2,970円
WSL2ユーザーにおすすめ。コマンドライン操作やネットワーク設定の基礎を学べる定番入門書。
Crucial DDR5 ノートPC用メモリ 16GB
約5,980円
WSL2の快適動作にはメモリが重要。16GB以上を推奨。増設で開発環境が劇的に改善します。
WSL2+Docker実践入門(技術書)
約3,520円
WSL2のネットワーク設定やDocker連携のトラブルシューティングも詳しく解説。
※ 価格は変動します。最新価格はリンク先でご確認ください
よくある質問(FAQ)
Q1. WSL2でpingは通るのに、curlやaptが動きません。なぜですか?
DNS解決は成功しているがHTTP通信が失敗している可能性があります。プロキシ設定の問題か、ファイアウォールがHTTP/HTTPS通信のみをブロックしているケースが考えられます。.wslconfigで「autoProxy=true」を設定するか、WSL2内で環境変数「http_proxy」「https_proxy」を設定してください。
Q2. WSL2を起動するたびにresolv.confが上書きされます。防ぐ方法は?
/etc/wsl.confに「[network]」セクションで「generateResolvConf = false」を設定してください。これにより、WSL2の起動時にresolv.confが自動生成されなくなり、手動で設定した内容が保持されます。対処法1のステップ3で詳しく説明しています。
Q3. ミラードネットワーキングモードとNATモードの違いは何ですか?
NATモード(デフォルト)では、WSL2は独自の仮想ネットワーク内に配置され、NATを通じてインターネットにアクセスします。ミラードモードでは、WindowsホストのネットワークインターフェースをそのままWSL2でも使用するため、VPN接続やlocalhostアクセスの互換性が大幅に向上します。Windows 11 22H2以降で利用可能です。
Q4. VPN接続中だけWSL2からインターネットに接続できません。最も簡単な解決方法は?
.wslconfigに「networkingMode=mirrored」と「dnsTunneling=true」を設定することが最も簡単で効果的です。これでほとんどの企業VPN環境で問題が解決します。設定後は「wsl –shutdown」でWSL2を再起動してください。
Q5. Docker Desktopを使っているとWSL2のネットワークが不安定になります。
Docker DesktopはWSL2バックエンドを使用しており、独自のネットワーク設定を追加します。Docker DesktopとWSL2のネットワーク設定が競合する場合は、Docker Desktopの設定で「Use the WSL 2 based engine」をオフにしてHyper-Vバックエンドに切り替えるか、.wslconfigでミラードモードを使用してみてください。
Q6. WSL2のバージョンを確認する方法は?
PowerShellで「wsl –version」コマンドを実行すると、WSLのカーネルバージョンや各コンポーネントのバージョンが表示されます。最新バージョンへの更新は「wsl –update」で行えます。ネットワーク問題の修正が含まれていることがあるため、常に最新版を使用することをおすすめします。
Q7. WSL1に切り替えるとネットワーク問題は解決しますか?
WSL1はWindowsのネットワークスタックを直接使用するため、ネットワーク問題は発生しにくくなります。ただし、WSL1はLinuxカーネルを使用しないため、Docker、systemd等の機能が制限されます。ネットワーク問題がどうしても解決しない場合の一時的な回避策として「wsl –set-version Ubuntu 1」で切り替えることは可能です。
まとめ
Windows 11のWSL2でインターネットに接続できない問題は、ほとんどの場合、DNS設定の修正またはミラードネットワーキングモードの有効化で解決できます。
推奨する対処順序:
- /etc/resolv.confを手動修正(Google DNS 8.8.8.8を設定)
- .wslconfigでnetworkingMode=mirroredを設定(特にVPN環境で効果的)
- wsl –shutdownで完全再起動
- ファイアウォールのWSL2通信許可を確認
- 解決しない場合はHyper-V仮想スイッチのリセット
これらの手順で大半のネットワーク問題が解消されます。開発環境のネットワーク接続は生産性に直結するため、問題が発生した際はこの記事を参考にすぐに対処してください。
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!