Прокси из подручных средств

Мне по работе очень-очень редко бывает нужно протестировать сайты из разных сетей (в том числе и из-за рубежа). У меня есть доступ в эти сети только по 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, чтобы изменения быстрее вступили в силу.