Quero me conectar ao meu Pi a partir de um dispositivo remoto usando o ponto de acesso sem fio fornecido pelo meu telefone Android. Abaixo está a configuração da rede:
Pi<->192.168.42.112<->192.168.42.129<->Telefone<->192.168.43.1<->192.168.43.x<->PC
- 192.168.42.112 (usb0 em Pi)
- 192.168.42.129 (rndis0 no telefone)
- 192.168.43.1 (wlan0 no telefone)
- 192.168.43.x (wlan0 no PC)
Meu Pi está conectado ao meu telefone usando tethering USB. Posso fazer ping de Pi para 192.168.43.1 (interface wlan0 no telefone). Também posso fazer ping do PC para 192.168.42.129 (interface rndis0 no telefone). O telefone pode conversar com o Pi e o PC, mas meu Pi e o PC não conseguem se comunicar. Como eu resolvo este problema? (Meu telefone está enraizado, então qualquer solução que exija privilégios de root está correta.)
Responder1
Ok, acabei de descobrir que o Android tem o encaminhamento de IP desabilitado por padrão. Para habilitá-lo, digite o seguinte:
sysctl -w net.ipv4.ip_forward=1
O acima irá permitir o encaminhamento de IP, mas ainda é preciso fazer mais:
iptables -F -t filter #Deletes all previous rules in filter table
iptables -P FORWARD ACCEPT #Allows IP forwarding
Agora, não sei se é uma boa ideia deletar as regras anteriores ou se é mesmo obrigatório, mas a boa notícia é que essas regras não são persistentes. Na próxima vez que você inicializar seu dispositivo Android, as regras serão revertidas para onde estavam. Isso também significa que você terá que repetir isso sempre que inicializar o dispositivo.