Как завернуть трафик в socks-прокси на iPhone
Смартфоны производства Apple «из коробки» умеют ходить в интернет через VPN, а также HTTP-прокси. Однако очевидного способа завернуть весь трафик в socks-прокси не предусмотрено. Тем не менее, есть неочевидный способ.
Если у вас имеется iPhone, то с большой вероятностью найдется и MacBook. Без потери общности, рассмотрим решение с использованием последнего.
Открываем терминал и определяем IP-адрес устройства в локальной сети:
$ ipconfig getifaddr en0
192.168.0.12
Нам понадобится файл proxy.pac:
$ mkdir -p /tmp/web
$ cd /tmp/web
$ nano proxy.pac
Содержимое указываем такое:
function FindProxyForURL(url, host)
{
return "SOCKS 192.168.0.34:3111";
}
Адрес и порт socks-сервера, естественно, заменяем на свои.
Далее запускаем веб-сервер, который будет отдавать proxy.pac:
$ cd /tmp
$ python -m http.server --directory web
Берем iPhone. Открываем Settings → Wi-Fi → (ваш SSID) → Configure Proxy. Выбираем вариант Automatic, а в поле URL указываем:
http://192.168.0.12:8000/proxy.pac
То есть, iPhone сходит за настройками сети на MacBook, и узнает от него, что нужно использовать socks-прокси. Само собой разумеется, вместо MacBook можно воспользоваться одноплатником, роутером под управлением OpenWrt, и так далее.