Здравствуйте. Хотел поднять мобильный прокси сервер на Android с помощью программы servers ultimate.apk. Так как ip адреса от операторов не общедоступные, пробросил порт 8080 с удаленного сервера на локальный порт 8080 с помощью openvpn. Проблема в том что когда человек подключается к proxy серверу трафик уходит обратно на vpn сервер по такой цепочке user>vps_ip:8080>10.8.0.2:8080>vpn_server>google.com. Конечной точкой цепочки является vpn server, а Мне хотелось бы чтобы конечная точка была proxy server на Андроиде. Т.е. сейчас гугл видит ip от vpn сервера, а надо чтобы видел от proxy сервера. Буду благодарен за любую помощь.
Вот правила iptables: iptables -t nat -A PREROUTING -d 194.87.98.202 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 10.8.0.2:8080
iptables -t nat -A POSTROUTING -d 10.8.0.2 -p tcp -m tcp --dport 8080 -j SNAT --to-source 10.8.0.1
Видимо ВПН сервер является маршрутом по умолчанию на андроиде.
В конфиге OpenVPN андроида есть строка: push "redirect-gateway def1 bypass-dhcp"
Уберите. Это она добавляет маршрут по умолчанию через ВПН сервер.
Алим Абдуалим, Ошибся в ответе - эта опция находится в конфиге ВПН сервера.
Кстати, она действует на всех клиентов. Так что изменится поведение и для userа. А вам это не нужно.
Вам нужно использовать на ВПН сервере отдельные конфигурации для клиентов.
Это задается использованием опции в конфиге сервера: client-config-dir <client config directory>
В указанном каталоге должны лежать клиентские конфиги. Имена файлов конфигов должны совпадать с именами, указанными в клиентских ключах (если не ошибаюсь, параметр Common Name (CN) в ключе).
В клиентском конфиге можно указывать разные параметры. Например назначать фиксированный IP для клиента.
В клиентском конфиге для user вам надо указать вышеописанную опцию.
В конфиге для андроида - не надо указывать эту опцию.
Из общего серверного конфига опцию убрать.