Назад | Перейти на главную страницу

Как пересылать HTTP-запросы через прокси-сервер SOCKS5?

В настоящий момент я использую SSH-туннель (который предоставляет прокси-сервер socks5 на клиентском хосте) для подключения к удаленному серверу и его сети. Мне нужен доступ к различным службам WebUI, поэтому я использую профиль Firefox, чтобы настроить параметры прокси для прохождения через прокси SSH.

Теперь мне нужно сделать то же самое с другим сервером. Это означает, что я имею дело с 3 разными экземплярами Firefox, что может быть довольно запутанным.

Я помню, что использовал некоторые бесплатные прокси-сервисы, которые вы можете использовать из своего браузера, не меняя никаких настроек, просто вводя URL-адрес, по которому вы хотите перейти, перед прокси-сервисом. Например, чтобы перейти на google.com через прокси, вы должны пойти примерно так: http(s)://fake-proxy-provider.fake/?https://www.google.es

Есть ли способ сделать что-то подобное на моем локальном хосте? Коротко:

Вы могли бы использовать файл автонастройки прокси (PAC). Он имеет единственную функцию javascript, которая получает URL-адрес и возвращает прокси (если есть), который Firefox должен использовать для доступа к нему. Перейдите по ссылке, чтобы узнать, какие встроенные функции у вас есть. Вы можете сделать его настолько сложным, насколько захотите, но имейте в виду, что он будет вызываться для каждого запроса.

Обратите внимание, что файл PAC может быть где-то размещен, а это означает, что вам придется иметь дело только с одним экземпляром.

Пример:

function FindProxyForURL(url, host) {

    if (host == "webui-host1.intranet")
        return "SOCKS5 localhost:9001";

    else if (host == "webui-host2.intranet")
        return "SOCKS5 localhost:9002";

    else
        return "DIRECT";
}

В этом случае webui-host1.intranet будет использовать сервер SOCKS5 на localhost: 9001, а webui-host2.intranet будет использовать сервер SOCKS5 на localhost: 9002. Остальные URL-адреса не будут использовать прокси.

Тогда у вас, вероятно, будет что-то вроде этого:

$ ssh -D 9001 user@webui-host1.intranet

и

$ ssh -D 9002 user@webui-host2.intranet