![使用 Android 手機作為無線卡連接到 Raspberry Pi](https://rvso.com/image/1543362/%E4%BD%BF%E7%94%A8%20Android%20%E6%89%8B%E6%A9%9F%E4%BD%9C%E7%82%BA%E7%84%A1%E7%B7%9A%E5%8D%A1%E9%80%A3%E6%8E%A5%E5%88%B0%20Raspberry%20Pi.png)
我想使用 Android 手機提供的無線熱點從遠端裝置連接到我的 Pi。下面是網路配置:
Pi<->192.168.42.112<->192.168.42.129<->電話<->192.168.43.1<->192.168.43.x<->電腦
- 192.168.42.112(樹莓派上的 usb0)
- 192.168.42.129(電話上的 rndis0)
- 192.168.43.1(手機上的 wlan0)
- 192.168.43.x(PC 上的 wlan0)
我的 Pi 使用 USB 網路分享連接到我的手機。我可以從 Pi ping 到 192.168.43.1(手機上的 wlan0 介面)。我還可以從 PC ping 到 192.168.42.129(手機上的 rndis0 介面)。手機可以與 Pi 和 PC 通信,但我的 Pi 和 PC 無法互相通信。我該如何解決這個問題? (我的手機已取得 root 權限,因此任何需要 root 權限的解決方案都可以。)
答案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 裝置時,規則將恢復到原來的狀態。這也意味著您每次啟動裝置時都必須重複此操作。