
私は Windows 2022 Server、ビルド 23H2 / 22631 を使用しており、WSL2 で Ubuntu 22.04 ディストリビューションを実行しています。
サーバー自体にいる場合は、\\wsl$\Ubuntu
エクスプローラーのパスを使用してこのディストリビューション内のファイルにアクセスできます。
サーバーにネットワーク接続している別のマシン上のエクスプローラーから同じファイルにアクセスする方法はありますか?
\\server\c$
このネットワーク マシンから eg に問題なくアクセスできます。eg にアクセスし\\server\wsl$\Ubuntu
てサーバーの WSL ファイルにアクセスできればよいのですが、そのようなものは存在しないようです。
Ubuntu ディストリビューションに Samba をインストールすることを考えました。しかし、ディストリビューションのホスト名はホスト 2022 サーバーと同じなので、ホストの SMB トラフィックを何らかの方法で強制終了せずに SMB トラフィックを WSL にリダイレクトする方法がわかりません。
可能であれば、ファイルのコピー/同期/scp などのハックは避けたいと思います。これらはあまり便利ではありませんが、私は知っています。エクスプローラー経由でファイルに直接アクセスするのが理想的です。
答え1
試したことはありませんが、これが可能になるかもしれない情報がいくつかあります。
WSL2には ミラーモードネットワーク これにより、ホストのネットワーク アダプターを使用し、ホストの IP を想定することで、NAT なしで WSL1 と同じように動作します。
ミラーモードは次の方法で有効になります:
ファイルを作成する
%UserProfile%\.wslconfig
(存在しない場合)ファイルに次の行を追加します。
[wsl2] networkingMode=mirrored
WSLをシャットダウンする
wsl --shutdown
WSL ディストリビューションを開始します。
Windows ファイアウォールで受信 SAMBA ポートを有効にする必要があります。ドキュメントによると、すべての受信ポートまたは 1 つのポートのみを有効にする管理者特権の PowerShell コマンドは次のとおりです。
受信接続を許可するように Hyper-V ファイアウォール設定を構成するには、管理者権限で PowerShell ウィンドウで次のコマンドを実行します。
Set-NetFirewallHyperVVMSetting -Name '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}' -DefaultInboundAction Allow
またはNew-NetFirewallHyperVRule -Name MyWebServer -DisplayName "My Web Server" -Direction Inbound -VMCreatorId "{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}" -Protocol TCP -LocalPorts 80
。
多少の実験が必要になるかもしれませんが、WSL2 の samba サーバーに LAN 経由でアクセスできるようにするにはこれで十分かもしれません。
答え2
c$ 共有場所はデフォルトで有効になっています。共有したい別のディレクトリがある場合は、その場所を個別に共有する必要があります。これを行うにはいくつかの方法がありますが、最も簡単な方法は、GUI を使用して、Ubuntu ファイルがあるフォルダー ディレクトリを見つけて、右クリックし、プロパティ、共有タブを選択するだけです。
あなたが説明している困難は、それらのファイルの「場所」が、あなたが思っている場所に直感的に見つからないということかもしれません。コンテナ化によって、それらのディレクトリが視覚化される可能性があります。