Как работают прокси-серверы в браузерах
От создания сокетов и анализа правил PAC до HTTP-туннелей CONNECT и установки соединения по протоколу TLS — как современные браузеры распределяют веб-трафик.
- Делегирование на уровне сокетов — браузеры перенаправляют исходящие TCP-рукопожатия на указанный прокси-сокет до разрешения DNS-имени исходного ресурса.
- Оценка PAC и WPAD — правила маршрутизации JavaScript выполняются внутри песочниц Chromium для отделения интрасети от публичного трафика.
- Прозрачное туннелирование HTTP CONNECT — потоки TLS проходят от конца до конца без проверки сертификатов клиентов и без прокси-атак «человек посередине» (MITM).
- Изолированные пулы сокетов — современные браузеры изолируют заголовки аутентификации и параметры поддержания соединения для каждого профиля вкладки.
Сеансы браузера маскируются под подсети домашних и мобильных сотовых сетей.
Определение адреса удалённого хоста предотвращает перехват данных со стороны локального резолвера интернет-провайдера.
Жизненный цикл прокси-запроса в браузере: от сокета до рендеринга
Когда вы вводите URL-адрес в веб-браузере, настроенном на использование прокси-сервера, браузер изменяет свой стандартный цикл сетевых операций перед открытием любого исходящего сокета. В конфигурации с прямым подключением к сети браузер выполняет системный вызов getaddrinfo() для преобразования имени хоста с помощью локальных DNS-резолверов операционной системы, осуществляет трёхстороннее рукопожатие TCP с IP-адресом исходного сервера, который был найден, и напрямую завершает рукопожатие TLS. При настроенном прокси всё соединение передаётся посредническому сокету прокси-сервера.
-
Фильтр распределения сокетов и маршрутизации
Перед отправкой запроса к системным резолверам браузер проверяет настроенные правила прокси-сервера. Если домен назначения входит в список исключений, сокет выделяется напрямую; в противном случае браузер открывает TCP-поток на IP-адрес прокси-сервера.
-
Установление соединения через HTTP CONNECT
В случае HTTPS-адресов браузер отправляет незашифрованный HTTP-запрос CONNECT, содержащий имя целевого хоста и порт (например, CONNECT example.com:443 HTTP/1.1). Прокси-сервер выполняет разрешение DNS в своей сети и устанавливает соединение с целевым сервером.
-
Сквозной TLS-рукопожатие
Как только прокси-сервер отвечает кодом HTTP/1.1 200 «Connection Established», он переходит в режим «слепой» ретрансляции байтов. Браузер инициирует установку соединения по протоколу TLS напрямую с целевым сервером через установленный туннель, обеспечивая полное шифрование полезных данных.
Автоматическая настройка маршрутизации: файлы PAC, WPAD и флаги среды
Предприятия и высокопроизводительные автоматизированные системы избегают ручного переключения прокси-серверов за счёт использования скриптов автоматической настройки прокси (PAC). Файл PAC содержит функцию JavaScript с именем FindProxyForURL(url, host), которая выполняется в изолированной песочнице внутри процесса сетевых служб Chromium.
function FindProxyForURL(url, host) {
// 1. Bypass proxy for local LAN and internal intranet domains
if (isPlainHostName(host) ||
shExpMatch(host, "*.internal.lan") ||
isInNet(dnsResolve(host), "10.0.0.0", "255.0.0.0") ||
isInNet(dnsResolve(host), "192.168.0.0", "255.255.0.0")) {
return "DIRECT";
}
// 2. High-security targets route through dedicated cellular SOCKS5 proxy
if (shExpMatch(host, "*.instagram.com") || shExpMatch(host, "*.tiktok.com")) {
return "SOCKS5 185.220.101.5:1080; SOCKS 185.220.101.5:1080";
}
// 3. Fallback standard web traffic through HTTP proxy gateway
return "PROXY 185.220.101.5:8080; DIRECT";
}
Протокол автоматического обнаружения веб-прокси (WPAD) расширяет возможности PAC, позволяя определять URL-адрес PAC с помощью опции DHCP 252 или DNS-запросов к wpad.yourdomain.local. Хотя этот протокол удобен для корпоративных сетей, он создает уязвимости в безопасности, если злоумышленники из локальной сети подделывают DNS-ответы.
Настройки для конкретных браузеров: флаги Chrome, Firefox и Chromium
Различные движки браузеров обрабатывают настройки прокси с помощью разных внутренних архитектур:
| Ядро браузера | Область применения конфигурации | Флаги автоматизации CLI | Обработка DNS |
|---|---|---|---|
| Google Chrome / Brave / Edge | Настройки по умолчанию системы (сетевой стек ОС) | --proxy-server="http://ip:port" |
«Local» для socks5://, «Remote» для socks5h:// |
| Mozilla Firefox | Индивидуальные настройки для каждого профиля | about:config network.proxy.* |
network.proxy.socks_remote_dns=true |
| Apple Safari | Настройки сети в macOS | networksetup -setwebproxy |
Интеграция системного резолвера |
Диагностика утечек браузера, запросов на авторизацию и ошибок 407
При автоматизации работы браузеров или настройке сеансов просмотра с повышенной конфиденциальностью часто возникают три основные ошибки, которые препятствуют работе:
1. HTTP 407: Требуется аутентификация прокси-сервера
Browsers cannot pre-authenticate HTTP CONNECT requests before knowing what authentication scheme the proxy demands. The proxy responds with a 407 status code containing a Proxy-Authenticate header (e.g. Basic realm="Proxy"). In headless Puppeteer or Playwright instances, failure to register page.authenticate({username, password}) causes immediate request termination.
2. Утечки локальных и публичных IP-адресов в WebRTC
Даже если весь HTTP- и HTTPS-трафик проходит через выделенный мобильный прокси-сервер, реализации WebRTC в браузерах могут обойти пул сокетов прокси-сервера для установления одноранговых медиапотоков. Запросы WebRTC STUN отправляются на удаленные серверы STUN по необработанному UDP, раскрывая реальный публичный IP-адрес вашего хост-компьютера. Отключите WebRTC или настройте маршрутизацию исключительно через прокси с помощью флагов.
Разверните выделенные мобильные прокси в браузере
Высококачественное мобильное оборудование в местах с реальным трафиком — обход блокировок по отпечаткам браузера:
Великобритания
Испания
Индия
Часто задаваемые вопросы
Почему Chrome игнорирует настройки прокси, заданные в настройках браузера?
В системах Windows и macOS Google Chrome передаёт управление настройками прокси на системном уровне сетевому стеку операционной системы. Чтобы заставить Chrome самостоятельно использовать маршрутизацию через выделенные учетные данные, необходимо запустить браузер с параметрами командной строки, такими как --proxy-server, либо установить расширение, использующее API исполняемой среды chrome.proxy.
В чём заключается разница между настройкой прокси в операционной системе и настройкой прокси в Firefox?
Firefox использует собственный сетевой стек с внутренними пулами сокетов. Настройка параметров прокси в настройках Firefox позволяет изолировать трафик браузера от фоновых служб ОС, предотвращая перегрузку прокси-соединений системными обновлениями или фоновыми демонами.
Как файлы PAC обеспечивают прямую маршрутизацию внутреннего трафика интранета при одновременном проксировании внешнего веб-трафика?
Файлы автоматической настройки прокси выполняют функцию JavaScript FindProxyForURL() для каждого запроса. Хосты интрасети, для которых выполняются условия isInNet() или dnsDomainIs(), возвращают значение DIRECT, тогда как общедоступные внешние адреса возвращают адрес и порт прокси-сервера.
Почему браузеры постоянно выдают ошибку 407 «Требуется аутентификация прокси»?
Статус 407 означает, что прокси-сервер отклонил неавторизованные начальные запросы. Если браузер не сохраняет учетные данные или их проверка завершается неудачей при обновлении сокета Keep-Alive, браузер вызывает модальное диалоговое окно аутентификации.
Шифрует ли прокси-браузер весь трафик между моим компьютером и веб-сайтом?
Прокси-сервер туннелирует ваш HTTPS-трафик, благодаря чему данные остаются зашифрованными с помощью сертификата TLS исходного сервера. Однако при использовании простых HTTP-прокси-серверов без TLS соединение между вашим устройством и самим прокси-сервером не шифруется, если не применяются протокол SOCKS5 или TLS на верхнем уровне.
Связанные руководства по мобильным прокси-серверам
Расширьте свои знания об архитектурах прокси-серверов, протоколах и автоматизации сетей с помощью наших серий технических руководств:
Основные принципы
Текущие запасы и инструментарий
Разверните выделенные сотовые прокси в вашем браузере
Обходите блокировки по «отпечаткам» браузера, CAPTCHA и запреты на подсети с помощью реальных IP-адресов операторов связи на выделенном оборудовании 4G/5G.
Заказать выделенные мобильные прокси