Verfügbarmachen der lokalen API innerhalb von WSL für physische Geräte und Emulatoren

Verfügbarmachen der lokalen API innerhalb von WSL für physische Geräte und Emulatoren

Ich arbeite an einer React Native-App auf einem Windows 10-Computer. Ich habe WSL installiert, meine Backend-Anforderungen darauf eingerichtet und kann sehen, dass meine API auf dem lokalen Host von Windows aus antwortet, auf dieser Seite gibt es kein Problem.

Jetzt möchte ich es von meiner mobilen App aus aufrufen – sowohl von einem Android-Emulator mit Android Studio als auch von meinem physischen Android-Gerät (mit Expo), das über WLAN mit demselben lokalen Netzwerk verbunden ist.

Mit Ngrok könnte es funktionieren, indem mein lokaler Host einer öffentlichen URL zugänglich gemacht wird, aber das ist nicht das, wonach ich suche. Ich möchte, dass alles möglichst lokal bleibt. Die lokale IPv4 meines PCs ist 10.0.0.8, aber unter dieser Adresse kommt nichts heraus (weder von der mobilen App noch von meinem Desktop-Browser, der unter funktioniert localhost).

Mein Ubuntu innerhalb von WSL sagt:

~$ cat /etc/hosts

# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateHosts = false
127.0.0.1       localhost
127.0.1.1       JB-PC.localdomain       JB-PC

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Mein ipconfig:

Carte Ethernet Ethernet :

   Suffixe DNS propre à la connexion. . . : Home
   Adresse IPv6 de liaison locale. . . . .: fe80::f04e:ae2b:40b9:3d82%6
   Adresse IPv4. . . . . . . . . . . . . .: 10.0.0.8
   Masque de sous-réseau. . . . . . . . . : 255.255.255.0
   Passerelle par défaut. . . . . . . . . : 10.0.0.138

Carte Ethernet vEthernet (WSL) :

   Suffixe DNS propre à la connexion. . . :
   Adresse IPv6 de liaison locale. . . . .: fe80::68c3:25c9:588a:a957%17
   Adresse IPv4. . . . . . . . . . . . . .: 172.20.32.1
   Masque de sous-réseau. . . . . . . . . : 255.255.240.0
   Passerelle par défaut. . . . . . . . . :

Welche IP-Adresse und welchen Port muss ich verwenden, um vom Telefon oder den Emulatoren aus auf die API zuzugreifen? Und muss ich auf meinem Ubuntu noch etwas anderes tun, um es verfügbar zu machen, damit es nutzbar ist?

verwandte Informationen