3

私は2つのubuntuシステムAとBを持っています。

AのIPアドレスは192.168.0.5です。BのIPアドレスは192.168.0.3です。

システムAはAndroidエミュレーターを実行します。システムBと通信する必要のあるTCPクライアントアプリがあります。

Androidアプリはローカルホスト(10.0.2.2として)しか「見る」ことができないため、クライアントアプリはポートPbで10.0.2.2にメッセージを送信します。

ここで、システムAは、ポートPbのローカルホスト(つまり、エミュレーターの場合は10.0.2.2である127.0.0.1)で受信したメッセージを、ポートPbのシステムB192.168.0.3に転送する必要があることを確認する必要があると想定しています。したがって、システムAに次のように設定します。

echo "1" </ proc / sys / net / ipv4 / ip_forward

sudo iptables -t nat -A PREROUTING -p tcp -s 127.0.0.1 -d 127.0.0.1 --dport Pb -j DNAT --to-destination 192.168.0.3:Pb

システムBは、IP192.168.0.3およびポートPbでTCPサーバーを実行します

これらのルールをシステムAとBに設定して、システムAでAndroidエミュレーターを起動し、次にAndoidでTCPクライアントアプリを起動します。

Wiresharkツールは127.0.0.1に到着するパッケージを表示しますが、システムBのサーバーはパケットをまったく受信しません:(

なにが問題ですか?

--------------------              --------------------------

  System A                        System B
  192.168.0.5 wlan0               192.168.0.3 wlan0
  127.0.0.1   lo                  127.0.0.1 lo
                <---------------->

  Android EMULATOR                TCP Server
  TCP CLient App                  at 192.168.0.3, port Pb
  at 10.0.2.2
----------------------            ----------------------------

助けてください。

4

0 に答える 0