私は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
---------------------- ----------------------------
助けてください。