WSL2 は Windows 11 でインターネットにアクセスできません

WSL2 は Windows 11 でインターネットにアクセスできません

wsl2 内に ubuntu 20.04 がインストールされた Windows 11 を新規インストールしました。

アップデートを実行しようとしたりsudo apt updateping google.com

'archive.ubuntu.com' の解決中に一時的にエラーが発生しました

そして

名前解決の一時的な失敗

それぞれエラーが発生します。

私はもう試した:

  • 「ファイアウォールを介したアプリの許可」を選択し、Windowsファイアウォールを介したWSLの許可C:\Windows\System32\wsl.exe

  • ファイアウォールにポート3390の受信ルールを追加しました

  • ネットワーク プロファイルを「プライベート」に設定します (ただし、WSL を動作させ続ける方法がある場合は、これをパブリックのままにしておくことをお勧めします)

  • New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action AllowGoogle検索から実行

編集: この時点で、Google の結果をすべて試しましたが、まだ解決策はありません。r/windows11 では、月曜日でなければ投稿できません (ばかげています)。また、wsl に ubuntu を再インストールしてみましたが、効果はありませんでした。

答え1

この問題には複数の原因があります。

記事 WSL2 ネットワークの問題と Win 10 の高速起動 Windows で高速スタートアップを無効にすることを推奨します。

ここに画像の説明を入力してください


別の 説明 問題は、ネットワークの切り替え (職場と自宅の間など) によって WSL が混乱することです。解決策は、.bat次の内容を含むファイルを実行することです。

wsl --shutdown
netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns
netsh winsock reset
shutdown /r

さらにもう一つ 説明resolv.confWindows が間違ったネームサーバーでファイルを 自動的に生成することです。

これを防ぐには、次のコマンドを実行します。

sudo rm /etc/resolv.conf
sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
sudo bash -c 'echo "[network]" > /etc/wsl.conf'
sudo bash -c 'echo "generateResolvConf = false" >> /etc/wsl.conf'
sudo chattr +i /etc/resolv.conf

答え2

Win11 は管理者アクセスに厳しいようで、.bat ファイルを C: に置くことさえ厳しいということを皆さんに思い出していただきたいです。

そうは言っても、etc/resolv.conf を 8.8.8.8 に書き換えることは、Win11 タスク バーから管理者として WSL2 Kali CLI を起動するなど、すべてを管理者アクセスとして実行した限り機能しました。

答え3

この設定を.wslconfigファイル (Windows ホーム ディレクトリ内) に追加すると、WSL 仮想マシンでネットワーク サポートが有効になります。

[wsl2]
networkingMode=mirrored

.wslconfig変更を有効にするには、変更後に WSL を停止する必要がありますwsl --shutdown。Windows コマンド シェルから使用してください。これは比較的新しい機能 (2023 年 9 月の更新) であり、ビルド 22H2 が必要です (Windows 11 でのみテストしましたが、最新の Windows 10 でも動作する可能性があります)。詳細とその他の関連する構成設定については、こちらをご覧ください。 https://learn.microsoft.com/en-us/windows/wsl/ネットワーク

最新の WSL2 サブシステムを使用するには、実行がwsl --update必要になる場合があります。

Windowsの古いバージョンでは、WindowsでVPNが動作しているときにも確実に機能する唯一の解決策は、「wsl-vpnkit」(https://github.com/sakai135/wsl-vpnkit)。

関連情報