Windows-Konfigurationen:
- Ausführen eines Beispiel-Webservers mit geöffnetem Port 5000 (siehe Abbildung 1)
- Windows-Firewall vollständig geschlossen
WSL2:
- Kann erfolgreich auf das Internet zugreifen und Windows mit Host-IP oder anpingen
$(hostname).local
, kann aber nichtcurl http://172.18.16.1:5000
sandowner@ENIGMATIC-MACHINE:~$ hostip=$(ip route | grep default | awk '{print $3}')
sandowner@ENIGMATIC-MACHINE:~$ echo $hostip
172.18.16.1
sandowner@ENIGMATIC-MACHINE:~$ ping 172.18.16.1
PING 172.18.16.1 (172.18.16.1) 56(84) bytes of data.
64 bytes from 172.18.16.1: icmp_seq=1 ttl=128 time=0.514 ms
64 bytes from 172.18.16.1: icmp_seq=2 ttl=128 time=0.690 ms
^C
sandowner@ENIGMATIC-MACHINE:~$ ping $(hostname).local
PING ENIGMATIC-MACHINE (172.18.16.1) 56(84) bytes of data.
64 bytes from ENIGMATIC-MACHINE (172.18.16.1): icmp_seq=1 ttl=128 time=0.355 ms
64 bytes from ENIGMATIC-MACHINE (172.18.16.1): icmp_seq=2 ttl=128 time=0.729 ms
^C
sandowner@ENIGMATIC-MACHINE:~$ curl http://172.18.16.1:5000
^C (will timeout)
- Auf den Port 5000 des Hosts kann auch nicht über einen WSL2-Browser zugegriffen werden und er endet mit
ERR_CONNECTION_TIMED_OUT
(siehe Bild 2)
Für jede Hilfe bin ich dankbar! Danke!
Antwort1
Wenn Sie eine Verbindung herstellen möchtenvon WSL 2 zum Hostsind keine speziellen Mechanismen vorhanden. WSL 2 läuft in einer VM und ist für den Windows-Netzwerkstapel ein Remotehost. Das bedeutet:
- Sie können keine Anwendungen erreichen
localhost
, die an eine IP gebunden sind127.0.0.0/8
oder::1
- Die Firewall muss die eingehende Verbindung zulassen
Das virtuelle WSL 2-Netzwerk hat leider völlig unvorhersehbare dynamische Adressen. Wenn Sie also nur dort lauschen, müssen Sie die Netzwerkdienstkonfiguration ständig aktualisieren. Es ist einfacher, stattdessen an 0.0.0.0
oder ::
(„alle Schnittstellen“) zu binden. Das bedeutet, dass jeder eine Verbindung herstellen kann. Machen Sie sich also die Konsequenzen bewusst, wenn Sie sich in einem nicht vertrauenswürdigen Netzwerk befinden.