![Подключитесь к Raspberry Pi, используя телефон Android в качестве беспроводной карты](https://rvso.com/image/1543362/%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D0%B5%D1%81%D1%8C%20%D0%BA%20Raspberry%20Pi%2C%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F%20%D1%82%D0%B5%D0%BB%D0%B5%D1%84%D0%BE%D0%BD%20Android%20%D0%B2%20%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B5%20%D0%B1%D0%B5%D1%81%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%BD%D0%BE%D0%B9%20%D0%BA%D0%B0%D1%80%D1%82%D1%8B.png)
Я хочу подключиться к своему Pi с удаленного устройства, используя беспроводную точку доступа, предоставляемую моим телефоном Android. Ниже приведена конфигурация сети:
Pi<->192.168.42.112<->192.168.42.129<->Телефон<->192.168.43.1<->192.168.43.x<->ПК
- 192.168.42.112 (usb0 на Pi)
- 192.168.42.129 (rndis0 на телефоне)
- 192.168.43.1 (wlan0 на телефоне)
- 192.168.43.x (wlan0 на ПК)
Мой Pi подключен к моему телефону с помощью USB-модема. Я могу выполнить ping с Pi на 192.168.43.1 (интерфейс wlan0 на телефоне). Я также могу выполнить ping с ПК на 192.168.42.129 (интерфейс rndis0 на телефоне). Телефон может общаться как с Pi, так и с ПК, но мой Pi и ПК не могут общаться друг с другом. Как решить эту проблему? (Мой телефон имеет права root, поэтому подойдет любое решение, требующее прав root.)
решение1
Ладно, я только что узнал, что в Android IP Forwarding отключен по умолчанию. Чтобы включить его, введите следующее:
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, правила будут возвращены туда, где они были. Это также означает, что вам придется повторять это каждый раз, когда вы загружаете устройство.