
Android スマートフォンが提供するワイヤレス ホットスポットを使用して、リモート デバイスから Pi に接続したいと考えています。以下はネットワーク構成です。
Pi<->192.168.42.112<->192.168.42.129<->電話<->192.168.43.1<->192.168.43.x<->PC
- 192.168.42.112 (Pi 上の usb0)
- 192.168.42.129 (電話の場合はrndis0)
- 192.168.43.1 (電話の wlan0)
- 192.168.43.x (PC 上の wlan0)
私の Pi は USB テザリングを使用して携帯電話に接続されています。Pi から 192.168.43.1 (携帯電話の wlan0 インターフェイス) に ping できます。また、PC から 192.168.42.129 (携帯電話の rndis0 インターフェイス) に ping することもできます。携帯電話は Pi と PC の両方と通信できますが、Pi と PC は相互に通信できません。この問題を解決するにはどうすればよいですか? (私の携帯電話はルート化されているため、ルート権限を必要とするソリューションであれば何でもかまいません。)
答え1
さて、Android では IP 転送がデフォルトで無効になっていることがわかりました。有効にするには、次のように入力します。
sysctl -w net.ipv4.ip_forward=1
上記により IP 転送が有効になりますが、さらに次の作業を行う必要があります。
iptables -F -t filter #Deletes all previous rules in filter table
iptables -P FORWARD ACCEPT #Allows IP forwarding
以前のルールを削除するのが良い考えなのか、そもそも削除する必要があるのかはわかりませんが、幸いなことに、これらのルールは永続的ではありません。次に Android デバイスを起動すると、ルールは以前の状態に戻ります。つまり、デバイスを起動するたびにこれを繰り返す必要があるということです。