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

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

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

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

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

  • В моем обычном экземпляре Firefox (без настроенного прокси-сервера) я иду куда-нибудь вроде http: // localhost: 8080 /? Https: //www.google.com
  • Это запросит https://www.google.com через прокси socks5
0
задан 19 April 2020 в 23:57
1 ответ

Можно использовать файл автоконфигурации прокси-сервера (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
0
ответ дан 20 April 2020 в 19:49

Теги

Похожие вопросы