Не уверен, что это правильное место, чтобы оставить этот вопрос.

Моя проблема на самом деле проста, у меня есть устройство Android с подключением к данным и настройка точки доступа на этом устройстве.

Я подключаю свой linux box к этой точке доступа, нет проблем.
Мой компьютер получает адрес 192.168.1.234 на wlan0
У меня на андроид устройстве 192.168.1.1 на wlan0
=> wlan0 UP 192.168.1.1/24

Я могу пинговать локальные адреса Wi-Fi с обеих сторон. Тем не менее, я не могу пропинговать сервер, расположенный в Интернете, с моего компьютера.

Я знаю, что есть что-то о пересылке трафика с одной стороны на другую, но я не могу понять, как это сделать.

Я так и сделал: на андроид устройстве

$ echo 1 > /proc/sys/net/ipv4/ip_forward
$ iptables -t nat -F
$ iptables -t nat -A POSTROUTING -j MASQUERADE

Ничего особенного на ПК, кроме добавления маршрута для специального сервера, я хочу, чтобы трафик проходил через wlan0.

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.162.105.1    0.0.0.0         UG    0      0        0 eth0
10.162.105.0    *               255.255.255.0   U     0      0        0 eth0
158.x.x.x       192.168.1.1     255.255.255.255 UGH   0      0        0 wlan0
192.168.1.0     *               255.255.255.0   U     0      0        0 wlan0
192.168.25.0    *               255.255.255.0   U     0      0        0 vmnet1
192.168.29.0    *               255.255.255.0   U     0      0        0 vmnet8

На андроиде я вижу трафик с моего компьютера т.е.

03:50:17.426155 IP 192.168.1.234 > 158.x.x.x: ICMP echo request, id 5782, seq 634, length 64
03:50:18.427529 IP 192.168.1.234 > 158.x.x.x: ICMP echo request, id 5782, seq 635, length 64
03:50:19.428445 IP 192.168.1.234 > 158.x.x.x: ICMP echo request, id 5782, seq 636, length 64
03:50:20.425667 IP 192.168.1.234 > 158.x.x.x: ICMP echo request, id 5782, seq 637, length 64
03:50:21.426491 IP 192.168.1.234 > 158.x.x.x: ICMP echo request, id 5782, seq 638, length 64
03:50:22.425759 IP 192.168.1.234 > 158.x.x.x: ICMP echo request, id 5782, seq 639, length 64
03:50:23.425759 IP 192.168.1.234 > 158.x.x.x: ICMP echo request, id 5782, seq 640, length 64

но никогда не вижу ответа, как если бы пакеты никогда не выходили из устройства Android.

Что я делаю неправильно?

Спасибо за помощь.

1 ответ1

1

Я получил ответ сам.

Проблема была с командой iptables. Необходимо было указать устройство вывода, а также установить политику пересылки.

iptables -t nat -A POSTROUTING -o rmnet_usb0 -j MASQUERADE
iptables -P FORWARD ACCEPT

После этого Интернет становится доступным на стороне Linux. Надеюсь, это поможет кому-то в такой же ситуации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .