Как поднять прокси на андроид

Из этой статьи Вы узнаете как сделать мобильный прокси из своего телефона на андроиде, с доступом к нему удалённо.

Что нам понадобиться:
- телефон на андроиде;
- виртуальный сервер с ОС Debian8.

Приступим. Для начала приобретаем сервер где вам удобнее, я лично купил тут за 99 руб/мес., тариф MSK-KVM-SSD-1.

Этого хватит вполне для подключения 10ти телефонов и более.

Как только вам выдадут доступы к серверу можно приступать к настройке.

Нам нужно установить OpenVPN сервер на виртуальный сервер.

Для этого скачиваем архив, распаковываем его и ложим в корень сервера.

 

Переходим в терминал и вводим команды, можно все разом.

cd opt/ovpn-server         
chmod +x server-install.sh
./server-install.sh

Дожидаемся установки VPN! Выйдет сообщение:

You can start openvpn server with command:
service openvpn start

Запускаем OpenVPN сервер командой

service openvpn start

Сгенерируем профиль для мобильного устройства

chmod +x generate-client-config.sh
./generate-client-config.sh android-profile

 Если Вы хотите подключить несколько мобил, то генерим несколько профилей, например так:

./generate-client-config.sh android-profile2
./generate-client-config.sh android-profile3

Наши профили появятся в директории /etc/openvpn/client

Так же включите форвардинг ipv4
Для этого откройте

nano /etc/sysctl.conf

расскоментируйте строку (убрать знак #)

net.ipv4.ip_forward=1

Cохраните файл, нажатием клавишь Ctrl+O,  Enter, Ctrl+X

примените изменения

sysctl -p


Настройки с сервером закончили. Переходим к телефону.

Сохраняем профили на свой комп, а затем скидываем в сам телефон на внутренний носитель или на флэшку, по 1 профилю на телефон.

Скачиваем на андроид 2 приложения:

VPN Client и Socks Server

Почему сокс прокси - потомучто только в этом приложении я нашёл возможность установить авторизацию по логину и пароля на прокси (есть возможность и по ip). На других приложениях есть только авторизация по ip что не очень удобно в связке с VPN. Если вам нужны http/s прокси то можете поставить приложение Proxy Server, но имейте в виду софт не поддерживает авторизацию по лог пассу.


Да и socks, как показывает практика анонимнее чем http/s

Запускаем VPN Client и импортируем профиль, что сохранили ранее на телефон. И подключаемся к VPN серверу, перед этим убедитесь что у вас отключен wifi.

Подключаем по такому принципу все телефоны, из которых хотите сделать мобильные прокси.

Проверим, что подключение к серверу прошло успешно, командой:

netstat | grep openvpn

Увидим активные подключения со статусом ESTABLISHED

Значит всё гуд! Переходит к настройке прокси Socks Server.

Запускаем приложение и добавляем сервер

Server name произвольное, порт тоже произвольный из диапазона  5000-65000 (для каждого телефона прописываем свой порт и запоминаем), тип авторизации Username/Password. Остальные настройки оставляем по дефолту.

Добавляем Users, куда вписываем желаемый логин и пароль для прокси.

Нажимаем назад и сохраняем настройки.

Сохраняем сервер и запускаем его!

Возвращаемся к серверу. Осталось сделать настройки iptables , а именно перенаправляение портов.

Для этого забиваем следующие команды:

iptables -t nat -A PREROUTING -d 185.204.0.9 -p tcp -m tcp --dport 8812 -j DNAT --to-destination 10.8.0.13:8812
iptables -t nat -A POSTROUTING -d 10.8.0.13 -p tcp -m tcp --dport 8812 -j SNAT --to-source 10.8.0.1
iptables -t nat -A PREROUTING -d 185.204.0.9 -p tcp -m tcp --dport 8813 -j DNAT --to-destination 10.8.0.21:8813
iptables -t nat -A POSTROUTING -d 10.8.0.21 -p tcp -m tcp --dport 8813 -j SNAT --to-source 10.8.0.1

 ,где 

185.204.0.9 это основной ip нашего сервера

8812 -порт что указали в настройках приложения Socks Server для первого телефона

8813 порт что указали в настройках приложения Socks Server для второго телефона

10.8.0.13 ip адрес VPN клиента от первого телефона

10.8.0.21 ip адрес VPN клиента от второго телефона

IP адреса узнаём в приложении Socks Server, кнопка Info

Всё остальное оставляем по умолчанию, если сервер купили по ссылке из статьи.

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

echo "" > /etc/rc.local
cat > /etc/rc.local << END
#!/bin/bash
ulimit -n 600000
ulimit -u 600000
iptables -t nat -A PREROUTING -d 185.204.0.9 -p tcp -m tcp --dport 8812 -j DNAT --to-destination 10.8.0.13:8812
iptables -t nat -A POSTROUTING -d 10.8.0.13 -p tcp -m tcp --dport 8812 -j SNAT --to-source 10.8.0.1
iptables -t nat -A PREROUTING -d 185.204.0.9 -p tcp -m tcp --dport 8813 -j DNAT --to-destination 10.8.0.21:8813
iptables -t nat -A POSTROUTING -d 10.8.0.21 -p tcp -m tcp --dport 8813 -j SNAT --to-source 10.8.0.1
exit 0
END

Проверяем наши Socks прокси, указав в чекере или софте- ip от сервера, port, login/pass, что указывали в приложении Socks Server.

Статья ещё не закончена и будет дополняться. Нам осталось сделать автосмену ip по таймауту или по запросу.