Contents

WSL は優れていますが、ネットワークは混乱しています。私がそれを修正した方法は次のとおりです

<本文>/images/wsl-networking-mess.jpg

Linux と Windows の両方を頻繁に使用する必要がある人にとって、Windows Subsystem for Linux (WSL) はおそらくあなたにとって命の恩人です。これは、これら 2 つの機能を簡単に統合できる優れた機能であり、X410 などと組み合わせると、Windows PC での Linux エクスペリエンスが大幅に向上します。

しかし、すべてが完璧というわけではありません。WSL は便利ですが、より上級のユーザーは、ネットワークが大きな問題であることに気づいています。 Windows 内で Linux が実行されている場合、少なくとも初期状態では、ホストとゲストのネットワーク接続の管理が困難になる可能性があります。

WSL でのネットワーキングは混乱する可能性があります

ローカル サービスと VPN が問題を引き起こす

/images/ubuntu-networking-info.jpg

WSL は優れていますが、ネットワークに関しては、特に WSL が最初に登場してからその動作が少し変わっているため、状況が少し混乱する可能性があります。当初、WSL は、ホスト コンピューター自体にアクセスできる限り、ネットワーク上の他のデバイスがコンピューター上の WSL アプリケーションにアクセスできる設定を使用していました。これにより、ホスト マシンの IP アドレスを使用するだけで WSL アプリに接続できるため、作業がもう少しシームレスになりました。

ただし、WSL2 では、Linux インスタンスは独自の IP が割り当てられた仮想ネットワーク アダプターを使用するため、デフォルトの構成では追加の手順を実行する必要がある場合があります。また、ネットワーク設定により、Linux マシンを介して Windows のネットワークベースのサービスにアクセスすることが難しくなるため、設定が複雑になるだけでなく、エラーが発生しやすくなります。そして、VPN が関与すると、VPN が Windows によって制御されている場合、Linux アプリがネットワークを使用できなくなり、非常に混乱する可能性があります。

Windows 11 バージョン 22H2 以降、Microsoft はこれらの問題の一部に対処するためにいくつかの措置を講じました。 DNS トンネリングと呼ばれる新機能が追加されました。これにより、DNS 要求をネットワーク パケット経由ではなく仮想化レイヤーで処理できるようになり、VPN 使用時の接続サポートが大幅に向上しました。

修正するのは簡単かもしれません

ミラーリング モードが役に立ちます

/images/wslconfig-file.jpg

デフォルトの動作では、WSL は NAT ベースのアーキテクチャを使用します。これが、WSL のネットワーク機能を使用するときに発生する問題の多くを引き起こす可能性があります。ネットワーク エクスペリエンスを向上させたい場合は、ミラーリングされたネットワーク モードを使用するのが最善の策です。このオプションは Windows 11 バージョン 22H2 にも追加されましたが、デフォルトでは有効になっておらず、Windows ホストのネットワーク インターフェイスをミラーリングしようとするため、より多くの機能のサポートが有効になり、他のツールとの互換性が向上します。

これには、IPv6 の使用、ローカルホスト アドレス (127.0.0.1) を使用した Windows ホストで実行されているサービスへの接続、VPN との互換性の向上、WSL1 での動作と同様に、ローカル ネットワーク内の他のマシンから WSL サービスに直接接続する機能が含まれます。これは非常に大きな利点のリストであり、Microsoft ですら、WSL セットアップでこれを試してみることを推奨しています。それで、どうやってやるのですか?

まあ、それはかなり簡単です。 WSL2 を実行している場合は、スタート メニューに WSL 設定 というアプリがあり、これによりすべての WSL ディストリビューションのグローバル設定が変更されます。それを起動し、アプリの左側にある ネットワーク タブに進みます。

/images/wsl-settings-1.jpg

ネットワーク モードはページの最初のオプションなので、ミラーリングに変更してアプリを閉じます。

/images/wsl-settings-networking.jpg

設定を有効にするには、WSL を再起動する必要がある場合があります。これを行うには、ターミナルを開いてコマンド wsl–shutdown を入力し、WSL2 仮想マシンをオフにします。ディストリビューションを再度起動して再起動します。あるいは、PC を再起動しても機能するはずです。

GUI を使用したくない場合は、WSL 構成ファイルを手動で作成および変更できます。ユーザー フォルダー (C:\Users\ ) に .wslconfig というファイルをまだ作成していない場合は作成し、メモ帳で編集する必要があります。ミラーリングされたネットワーク モードを有効にするには、次の行をファイルに追加し、変更を保存する必要があります。

wsl2

networkingMode=ミラーリング

これに加えて、次の PowerShell コマンドを実行して、WSL マシンでの受信接続を許可するように Hyper-V ファイアウォールを構成することもできます。

Set-NetFirewallHyperVVMSetting-Name ‘{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}'-DefaultInboundAction 許可

それが完了すると、ネットワーク ツールは WSL を通じてより適切に動作するはずです。

これがデフォルトである必要があります

なぜ機能性の低い方法を使用するのでしょうか?

/images/truenas-in-firefox-in-wsl.jpg

WSL のミラーリング ネットワーク モードで興味深いのは、このモードが利用可能になってから約 3 年が経っているにもかかわらず、Microsoft はまだこの方法を新しい WSL 構成のデフォルトとして使用していないことです。同社の文書には、この設定に関する明らかな制限は示されておらず、多くの利点があります。同社は、発生した問題についてユーザーにフィードバックを送信するよう求めていますが、3 年が経過し、ドキュメントに具体的な問題が記載されていないことを考慮すると、デフォルトの動作としても十分信頼できると考えるでしょう。特に、ミラーリングされたネットワーク モードを試すことをお勧めすると会社が明示的に述べている場合はなおさらです。

いずれにせよ、Windows 内で Linux を使用することは、ほとんどの場合、非常に特殊な目的でのみ使用されるものであり、おそらく、これを使用する最初の理由の主要な部分はネットワークになるでしょう。一部のセルフホスト型サービスは、Linux 上で実行する必要がある場合や、プラットフォーム上でより適切に動作する必要がある場合があり、このようなネットワークの問題があると、必要以上にイライラするエクスペリエンスになります。上記の手順はこれに役立つはずですが、理想的には、マイクロソフトは近い将来にデフォルトの動作を変更して、すべての人にとって状況を改善するだけです。

*️⃣ 出典リンク:

これはおそらくあなたにとって救世主です。ネットワークに関しては、X410 などと組み合わせてください。 Microsoft が推奨、PowerShell コマンド、