Мне по работе очень-очень редко бывает нужно протестировать сайты из разных сетей (в том числе и из-за рубежа). У меня есть доступ в эти сети только по SSH.
Я запускаю в терминале команду, чтобы проложить туннель:
ssh -N -D 10.1.1.1:44444 user@example.com
- 10.1.1.1 — это адрес моего компьютера;
- 44444 — порт, на котором будет создан туннель (может быть любым);
- user@example.com — реквизиты для доступа к удалённому компьютеру.
Если в настройках браузера на любом компьютере в моей локальной сети указать адрес 10.1.1.1
и порт 44444
в разделе SOCKS-прокси, то все запросы будут проксироваться на удалённый компьютер.
В iOS, к сожалению, нельзя сразу сделать такие настройки. Там можно указать только адрес HTTP-прокси. Зато там можно указать адрес скрипта для автоматический конфигурации.
Я создаю файл proxy.pac
с примерно таким содержимым:
function FindProxyForURL(url, host)
{
return "SOCKS 10.1.1.1:44444";
}
И положу его на HTTP-сервер, который есть у меня на локальном компьютере. Проверяю, что файл отдаётся с правильным MIME-типом:
$ curl -Is http://10.1.1.1/proxy.pac | grep Content-Type
Content-Type: application/x-ns-proxy-autoconfig
Теперь я могу в настройках своего айФона указать URL для автоматической конфигурации прокси — http://10.1.1.1/proxy.pac
. Иногда нужно выключить и включить WiFi, чтобы изменения быстрее вступили в силу.