将 WSL 中的本地 API 暴露给物理设备和模拟器

将 WSL 中的本地 API 暴露给物理设备和模拟器

我正在 Windows 10 电脑上开发 React Native 应用。我安装了 WSL,在其上设置了后端需求,我可以从 Windows 上看到我的 API 在本地主机上响应,这方面没有问题。

现在我想从我的移动应用程序调用它 - 从使用Android Studio的Android模拟器和从通过wifi连接到同一本地网络的物理Android设备(使用Expo)。

使用 Ngrok 可以工作,将我的本地主机暴露给公共 URL,但这不是我想要的。如果可能的话,我希望一切都保持本地状态。我的电脑的本地 ipv4 是10.0.0.8,但该地址没有任何内容(无论是从移动应用程序还是从我的桌面浏览器,它都可以在 上运行localhost)。

我的 WSL 中的 Ubuntu 显示:

~$ 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

我的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. . . . . . . . . :

我应该使用哪个 IP 地址和哪个端口从手机或模拟器访问 API?此外,我是否还需要在 ubuntu 上执行其他操作才能将其公开以便使用?

相关内容