WSL 内のローカル API を物理デバイスとエミュレータに公開する

WSL 内のローカル API を物理デバイスとエミュレータに公開する

私は Windows 10 コンピューターから React Native アプリに取り組んでいます。WSL をインストールし、バックエンドのニーズを設定しました。Windows からローカルホストで API が応答しているのを確認できます。その点では問題ありません。

今、私はモバイル アプリからこれを呼び出したいと思います。Android Studio を使用した Android エミュレーターからと、Wi-Fi 経由で同じローカル ネットワークに接続された物理的な Android デバイス (Expo を使用) からの両方です。

Ngrok を使用すると、ローカルホストをパブリック URL に公開して機能する可能性がありますが、それは私が探しているものではありません。可能であれば、すべてをローカルのままにしておきたいのです。私の PC のローカル ipv4 は です10.0.0.8が、そのアドレスには何も表示されません (モバイル アプリからも、 で動作するデスクトップ ブラウザーからも何も表示されませんlocalhost)。

私の Ubuntu inside WSL には次のように表示されます:

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

電話またはエミュレータから API にアクセスするには、どの IP アドレスとどのポートを使用すればよいですか? また、これを公開して使用可能にするために、Ubuntu で他に何か行う必要があることはありますか?

関連情報