
Ich habe einen Windows 2022-Server, Build 23H2/22631, und darauf läuft eine Ubuntu 22.04-Distribution in WSL2.
Befinde ich mich auf dem Server selbst, kann ich über den Pfad im Explorer auf die Dateien dieser Distribution zugreifen \\wsl$\Ubuntu
.
Gibt es eine Möglichkeit, auf einem anderen Computer, der über eine Netzwerkverbindung zum Server verfügt, vom Explorer aus auf dieselben Dateien zuzugreifen?
Ich kann \\server\c$
von diesem Netzwerkcomputer aus problemlos auf eg zugreifen. Ich wünschte, ich könnte zu eg gehen \\server\wsl$\Ubuntu
und auf die WSL-Dateien des Servers zugreifen, aber so etwas scheint nicht zu existieren.
Ich habe darüber nachgedacht, Samba auf der Ubuntu-Distribution zu installieren. Aber die Distribution hat denselben Hostnamen wie der Host-Server 2022, daher weiß ich nicht, wie ich den SMB-Verkehr auf WSL umleiten könnte, ohne den SMB-Verkehr des Hosts irgendwie zu unterbrechen.
Wenn möglich, möchte ich Hacks wie das Kopieren von Dateien / Synchronisieren / SCP vermeiden. Ich bin mir dessen bewusst, aber sie sind weniger praktisch. Der direkte Zugriff auf die Dateien über den Explorer wäre ideal.
Antwort1
Ich habe es nicht ausprobiert, aber hier sind einige Informationen, die es möglich machen könnten.
WSL2 hat jetzt Netzwerkbetrieb im gespiegelten Modus Dadurch funktioniert es genauso wie in WSL1, nur ohne NAT, indem die Netzwerkadapter des Hosts verwendet und die IP des Hosts angenommen wird.
Der gespiegelte Modus wird aktiviert durch:
Erstellen Sie die Datei
%UserProfile%\.wslconfig
(falls sie nicht existiert)Fügen Sie der Datei diese Zeilen hinzu:
[wsl2] networkingMode=mirrored
WSL herunterfahren mit
wsl --shutdown
Starten Sie die WSL-Verteilung.
Sie müssen noch die eingehenden SAMBA-Ports in der Windows-Firewall aktivieren. Aus der Dokumentation geht hervor, dass die erweiterten PowerShell-Befehle zum Aktivieren aller eingehenden Ports oder nur eines Ports folgende sind:
Führen Sie den folgenden Befehl im PowerShell-Fenster mit Administratorrechten aus, um die Hyper-V-Firewalleinstellungen so zu konfigurieren, dass eingehende Verbindungen zugelassen werden:
Set-NetFirewallHyperVVMSetting -Name '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}' -DefaultInboundAction Allow
oderNew-NetFirewallHyperVRule -Name MyWebServer -DisplayName "My Web Server" -Direction Inbound -VMCreatorId "{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}" -Protocol TCP -LocalPorts 80
.
Möglicherweise sind einige Experimente erforderlich, aber dies könnte ausreichen, um den Samba-Server in WSL2 über das LAN zugänglich zu machen.
Antwort2
Der Freigabespeicherort c$ ist standardmäßig aktiviert. Wenn Sie ein anderes Verzeichnis freigeben möchten, müssen Sie diesen Speicherort separat freigeben. Es gibt mehrere Möglichkeiten, dies zu tun, aber die einfachste ist, über die GUI das Ordnerverzeichnis mit den Ubuntu-Dateien zu finden und dann mit der rechten Maustaste auf Eigenschaften und die Registerkarte Freigabe zu klicken.
Die Schwierigkeit, die Sie beschreiben, könnte darin bestehen, dass der „Speicherort“ dieser Dateien nicht intuitiv dort liegt, wo Sie ihn vermuten. Die Containerisierung visualisiert diese Verzeichnisse möglicherweise.