Сеть

Настройка прокси браузера: руководство по SOCKS5, HTTP и HTTPS

Полное руководство по настройке прокси SOCKS5, HTTP и HTTPS со встроенными учетными данными, географической привязкой и выборочной маршрутизацией.

Документация

Нужна поддерживаемая продуктовая документация?

У этой статьи есть соответствующая страница в центре документации. Используйте docs для каноничного сценария настройки, актуальных флагов и долгосрочной справки.

Введение

Одного профиля отпечатков недостаточно для согласованной идентичности браузера. Ваш IP-адрес, поведение DNS и географические метаданные должны соответствовать идентичности, которую представляет ваш профиль. Если ваш профиль говорит «пользователь Windows в Берлине», а ваш IP указывает на дата-центр в Вирджинии, несоответствие очевидно.

BotBrowser предоставляет расширенную поддержку прокси, встроенную непосредственно в движок браузера. В отличие от стандартного Chromium, BotBrowser принимает встроенные учетные данные в URL-адресах прокси, автоматически выводит географические настройки из IP вашего прокси и поддерживает протоколы SOCKS5, SOCKS5H, HTTP и HTTPS. Это руководство охватывает все аспекты настройки прокси, от базовой конфигурации до продвинутой выборочной маршрутизации.

Влияние на конфиденциальность

Без корректно настроенного прокси ваш реальный IP-адрес виден каждому посещаемому сайту. IP-адреса раскрывают вашего провайдера, приблизительное физическое местоположение и могут быть коррелированы между сессиями для построения устойчивого профиля отслеживания.

Даже при использовании прокси ошибки конфигурации могут подорвать вашу конфиденциальность. DNS-запросы могут утекать за пределы прокси-туннеля, раскрывая вашу активность просмотра вашему провайдеру. ICE-кандидаты WebRTC могут раскрыть ваш реальный IP через STUN-запросы, идущие мимо прокси. Несоответствия часового пояса и локали между вашей заявленной идентичностью и геолокацией IP создают несогласованности, которые системы отслеживания могут отметить.

BotBrowser решает все эти проблемы в единой модели конфигурации. Когда вы устанавливаете --proxy-server, BotBrowser автоматически определяет публичный IP прокси и выводит часовой пояс, локаль и языковые настройки для соответствия. Это означает, что один флаг может выровнять всю вашу географическую идентичность.

Техническая основа

Как работает проксирование браузера

Когда браузер использует прокси, HTTP и HTTPS-трафик пересылается через прокси-сервер вместо прямого подключения к назначению. Назначение видит IP-адрес прокси, а не ваш.

Разные протоколы прокси обрабатывают это по-разному:

SOCKS5 работает на транспортном уровне (Уровень 5). Он пересылает необработанные TCP-соединения и опционально обрабатывает разрешение DNS на стороне прокси (SOCKS5H). SOCKS5 поддерживает как TCP, так и UDP-трафик, что делает его наиболее универсальным протоколом для конфиденциальности.

HTTP-прокси используют метод CONNECT для установления туннеля для HTTPS-трафика. Прокси видит имя хоста назначения, но не зашифрованное содержимое. HTTP-прокси не обрабатывают UDP-трафик.

HTTPS-прокси шифруют соединение между вашим браузером и самим прокси-сервером. Это предотвращает видимость команд прокси для вашего провайдера, добавляя уровень конфиденциальности к прокси-соединению.

Обработка учетных данных в стандартном Chromium vs. BotBrowser

Флаг --proxy-server стандартного Chromium принимает только адрес прокси без учетных данных. Аутентификация требует отдельной обработки через системные запросы или API фреймворков вроде page.authenticate(). Это неудобно и может мешать автоматическому географическому определению BotBrowser.

BotBrowser расширяет --proxy-server для принятия учетных данных, встроенных непосредственно в URL:

protocol://username:password@host:port

Это устраняет необходимость в отдельных шагах аутентификации и хранит всю конфигурацию прокси в одном флаге.

Поддерживаемые типы прокси и конфигурация

BotBrowser поддерживает четыре протокола прокси через флаг --proxy-server:

ПротоколФормат URLВариант использования
SOCKS5socks5://user:pass@host:portОбщего назначения, TCP-трафик
SOCKS5Hsocks5h://user:pass@host:portDNS-разрешение внутри туннеля
HTTPhttp://user:pass@host:portШироко доступен, HTTP/HTTPS-трафик
HTTPShttps://user:pass@host:portЗашифрованное прокси-соединение

SOCKS5 vs. SOCKS5H

Разница между socks5:// и socks5h:// важна. С socks5:// DNS-разрешение происходит локально на вашей машине до отправки соединения через прокси. С socks5h:// имя хоста отправляется на прокси-сервер, который разрешает DNS от вашего имени. Для конфиденциальности socks5h:// - лучший выбор, потому что предотвращает утечку DNS-запросов к вашему локальному резолверу.

Структурированные имена пользователей прокси

Некоторые провайдеры прокси кодируют инструкции маршрутизации внутри имени пользователя, используя разделители вроде запятых или вертикальных черт. BotBrowser поддерживает такие структурированные имена пользователей:

--proxy-server=socks5://user_abc,type_mobile,country_GB,session_1234:password@portal.proxy.example.com:1080

Это распространено у резидентных провайдеров прокси, которые маршрутизируют трафик на основе параметров, встроенных в учетные данные.

Подход BotBrowser к интеграции прокси

Автоматическое географическое выравнивание

Когда BotBrowser подключается через прокси, он определяет публичный IP прокси и автоматически настраивает:

  • Часовой пояс: выведенный из геолокации IP
  • Локаль: сопоставленная со страной прокси
  • Языки: установленные на основе региона прокси
  • Геолокация: координаты, приблизительно определенные по IP

Это означает, что базовый запуск с одним --proxy-server уже производит географически согласованную идентичность:

chrome --bot-profile="/path/to/profile.enc" \
       --proxy-server=socks5://user:pass@de-proxy:1080

BotBrowser определит немецкий IP и автоматически настроит часовой пояс на Europe/Berlin, локаль на de-DE и языки на de-DE,de,en.

Ручные географические переопределения

Когда нужны конкретные географические настройки, отличающиеся от того, что предполагает IP, используйте флаги переопределения:

chrome --bot-profile="/path/to/profile.enc" \
       --proxy-server=socks5://user:pass@proxy:1080 \
       --bot-config-timezone=America/New_York \
       --bot-config-locale=en-US \
       --bot-config-languages=en-US,en \
       --bot-config-location=40.7128,-74.0060

Флаги CLI имеют наивысший приоритет конфигурации и переопределяют как настройки профиля, так и автоматически определенные значения.

Пропуск поиска IP с --proxy-ip

Если вы уже знаете публичный IP прокси, можно пропустить поиск IP для каждой страницы с помощью флага --proxy-ip (ENT Tier1):

chrome --bot-profile="/path/to/profile.enc" \
       --proxy-server=socks5://user:pass@proxy:1080 \
       --proxy-ip="203.0.113.1"

Это устраняет запрос определения IP при каждой загрузке страницы, улучшая скорость навигации.

Выборочная маршрутизация прокси с --proxy-bypass-rgx

Флаг --proxy-bypass-rgx (PRO) позволяет маршрутизировать определенные URL напрямую вместо прокси. Это полезно для уменьшения пропускной способности прокси на статических ресурсах:

chrome --bot-profile="/path/to/profile.enc" \
       --proxy-server=socks5://user:pass@proxy:1080 \
       --proxy-bypass-rgx="\.(js|css|png|jpg|svg)(\?|$)"

Паттерн использует синтаксис регулярных выражений RE2 и сопоставляется как с именем хоста, так и с полным путем URL.

Важно для использования в JavaScript: не включайте кавычки оболочки внутри значения:

// Правильно
launchArgs.push('--proxy-bypass-rgx=\\.js($|\\?)');

// Неправильно - кавычки становятся частью регулярного выражения
launchArgs.push('--proxy-bypass-rgx="\\.js$"');

Настройка и использование

Базовая настройка Playwright

const { chromium } = require('playwright-core');

(async () => {
  const browser = await chromium.launch({
    executablePath: '/path/to/botbrowser/chrome',
    args: [
      '--bot-profile=/path/to/profile.enc',
      '--proxy-server=socks5://user:pass@proxy-host:1080',
    ],
    headless: true,
  });

  const context = await browser.newContext();
  const page = await context.newPage();
  await page.goto('https://example.com');
  await browser.close();
})();

Настройка Puppeteer с географическими переопределениями

const puppeteer = require('puppeteer-core');

(async () => {
  const browser = await puppeteer.launch({
    executablePath: '/path/to/botbrowser/chrome',
    args: [
      '--bot-profile=/path/to/profile.enc',
      '--proxy-server=socks5://user:pass@de-proxy:1080',
      '--bot-config-timezone=Europe/Berlin',
      '--bot-config-locale=de-DE',
      '--bot-config-languages=de-DE,de,en',
    ],
    headless: true,
    defaultViewport: null,
  });

  const page = await browser.newPage();
  await page.goto('https://example.com');
  await browser.close();
})();

Распространенные конфигурации по регионам

РегионЧасовой поясЛокальЯзыки
Восток СШАAmerica/New_Yorken-USen-US,en
Запад СШАAmerica/Los_Angelesen-USen-US,en
ВеликобританияEurope/Londonen-GBen-GB,en
ГерманияEurope/Berlinde-DEde-DE,de,en
ЯпонияAsia/Tokyoja-JPja,en
БразилияAmerica/Sao_Paulopt-BRpt-BR,pt,en
Южная КореяAsia/Seoulko-KRko-KR,ko,en

Пользовательский сервис определения IP

Если вы используете собственную точку определения IP, настройте ее с --bot-ip-service:

chrome --bot-profile="/path/to/profile.enc" \
       --proxy-server=socks5://user:pass@proxy:1080 \
       --bot-ip-service="https://ip.example.com"

Вы можете указать несколько конечных точек через запятую. BotBrowser запрашивает их параллельно и использует самый быстрый ответ:

--bot-ip-service="https://ip1.example.com,https://ip2.example.com"

Верификация

После запуска BotBrowser с прокси проверьте конфигурацию:

const page = await context.newPage();

// Проверка публичного IP
await page.goto('https://httpbin.org/ip');
const ipData = await page.textContent('body');
console.log('Public IP:', ipData);

// Проверка часового пояса
const tz = await page.evaluate(() =>
  Intl.DateTimeFormat().resolvedOptions().timeZone
);
console.log('Timezone:', tz);

// Проверка языка
const lang = await page.evaluate(() => navigator.language);
console.log('Language:', lang);

// Проверка локали
const locale = await page.evaluate(() =>
  Intl.NumberFormat().resolvedOptions().locale
);
console.log('Locale:', locale);

Подтвердите, что:

  1. IP соответствует ожидаемому адресу вашего прокси
  2. Часовой пояс соответствует географическому региону прокси
  3. Язык и локаль согласованы с часовым поясом
  4. Утечки DNS не видны (см. руководство DNS Leak Prevention)

Лучшие практики

  1. Используйте SOCKS5H для конфиденциальности DNS. Протокол socks5h:// разрешает DNS через прокси, предотвращая попадание DNS-запросов к вашему локальному провайдеру.

  2. Позвольте BotBrowser автоматически определять географию. Если вам не нужны конкретные переопределения, автоматическое определение на основе IP дает согласованные результаты с меньшей конфигурацией.

  3. URL-кодируйте специальные символы в паролях. Символы вроде @, # и % должны быть закодированы. Например, p@ss становится p%40ss.

  4. Комбинируйте с --bot-local-dns. Для максимальной конфиденциальности DNS используйте локальный DNS-резолвер наряду с конфигурацией прокси.

  5. Сначала протестируйте с curl. Перед настройкой BotBrowser проверьте связь с прокси: curl --proxy socks5://user:pass@host:port https://httpbin.org/ip.

  6. Используйте --proxy-ip, когда IP известен. Это устраняет накладные расходы на поиск для каждой страницы и ускоряет навигацию.

Часто задаваемые вопросы

Какой протокол прокси использовать? SOCKS5H рекомендуется для большинства случаев. Он поддерживает TCP-трафик, обрабатывает DNS-разрешение через прокси и работает с самым широким спектром провайдеров.

Можно ли использовать прокси, требующий белого списка IP? Да. Убедитесь, что IP вашей машины добавлен в белый список у провайдера прокси, затем используйте URL прокси без учетных данных, если провайдер аутентифицирует по IP.

Поддерживает ли BotBrowser цепочки прокси? BotBrowser подключается к прокси, указанному в --proxy-server. Если нужны цепочки прокси, настройте их на стороне инфраструктуры прокси.

Почему мой часовой пояс не соответствует местоположению прокси? Если вы установили --bot-config-timezone вручную, это переопределяет автоматическое определение. Уберите ручное переопределение, чтобы позволить BotBrowser вывести часовой пояс из IP прокси.

Можно ли использовать разные прокси для разных вкладок? Да. Используйте browser.newContext({ proxy: ... }) в Playwright для назначения разных прокси каждому контексту. См. Dynamic Proxy Switching для деталей.

Что происходит, если прокси-соединение не удается? BotBrowser не будет переключаться на прямое соединение. Если прокси недоступен, загрузка страниц будет неудачной, что является более безопасным поведением для конфиденциальности.

Как обрабатывать ротацию прокси? Создайте новый контекст браузера для каждой ротации прокси. Закрытие старого контекста и открытие нового с другим прокси-сервером - самый чистый подход. См. Dynamic Proxy Switching.

Итоги

Настройка прокси - сетевая основа согласованной идентичности браузера. BotBrowser упрощает настройку прокси со встроенными учетными данными, автоматическим географическим выравниванием и поддержкой протоколов SOCKS5, SOCKS5H, HTTP и HTTPS. В сочетании с профилями отпечатков конфигурация прокси обеспечивает, что ваш IP, часовой пояс, локаль и язык рассказывают одну историю.

Для рабочих процессов с несколькими прокси см. Dynamic Proxy Switching. Для предотвращения утечек DNS и WebRTC наряду с прокси см. DNS Leak Prevention и WebRTC Leak Prevention.

#прокси#Socks5#Http#Network#Configuration

Переведите BotBrowser из исследований в продакшн

Используйте эти руководства, чтобы понять модель, а затем перейти к кроссплатформенной валидации, изолированным контекстам и масштабируемому браузерному развертыванию.