Google Chrome и Firefox, настройка прокси без расширений
02.10.26
Флаги запуска для Chrome и Chromium, окно «Параметры соединения» в Firefox и SOCKS5 с DNS на стороне прокси

В Google Chrome настройка прокси своих полей не имеет: кнопка в настройках открывает окно Windows. Для одного профиля есть ключ запуска --proxy-server. Firefox устроен иначе. У него своё окно «Параметры соединения», и он работает через свой прокси независимо от Windows и остальных браузеров.
Самая неприятная ловушка в Chrome тихая. Ключ прокси на ярлыке игнорируется, если Chrome уже запущен, и никакой ошибки вы не увидите. Окно откроется, сайты загрузятся. Через ваш собственный адрес.
На ноутбуке с 6 ярлыками Chrome под разные проекты я так запустил профиль с прокси при открытом обычном Chrome и 25 минут работал в нём, пока на странице проверки IP случайно не увидел свой домашний адрес вместо адр еса прокси.
Chrome через системные настройки
Путь: chrome://settings/system, кнопка «Открыть настройки прокси-сервера для компьютера». Откроется страница прокси в Параметрах Windows. Всё, что там включено, получат Edge, Яндекс Браузер и остальные программы, которые берут сеть у системы. Как заполнить поля и не попасть в ловушку с исключениями для локальной сети, разобрано в статье про настройку прокси в Windows.
Если вместо кнопки Chrome пишет, что использует настройки прокси-сервера из расширения, системные параметры сейчас не действуют. Прокси задаёт расширение. Настраивайте его или отключите.
Google Chrome: настройка прокси ключом запуска
Ключ действует только на экземпляр, запущенный с ним, и Windows не трогает. Создайте ярлык и впишите в поле «Объект» одну из строк:
"C:\Program Files\Google\Chrome\Application\chrome.exe" --user-data-dir="D:\chrome\p1" --proxy-server="http://203.0.113.10:8080"
"C:\Program Files\Google\Chrome\Application\chrome.exe" --user-data-dir="D:\chrome\p2" --proxy-server="socks5://203.0.113.10:1080"Адрес и порт подставьте свои. Без схемы Chrome считает адрес HTTP-прокси.
Ключ --user-data-dir здесь главный. Chrome при старте ищет уже запущенный экземпляр с той же папкой профиля и, если находит, передаёт ему команду открыть окно, а все ключи из ярлыка теряются. Отдельная папка заставляет Chrome поднять новый процесс, и прокси применяется. Та же история была в моём случае выше.
Остальные полезные ключи:
--proxy-bypass-list="<local>;192.168.0.0/16" пускает напрямую имена без точки и всю подсеть 192.168.x.x;
--proxy-bypass-list="<-loopback>" отправляет через прокси даже localhost, кот орый Chrome по умолчанию пускает мимо;
--proxy-pac-url="http://192.168.1.10/proxy.pac" берёт маршруты из сценария PAC.
SOCKS5 в Chrome: DNS и логин
Со схемой socks5:// Chrome отдаёт прокси имя сайта целиком, и разрешает его в адрес уже сам прокси. Логин и пароль для SOCKS5 Chrome не поддерживает вовсе, ни в ключе, ни отдельным окном. Поэтому для SOCKS5 в Chrome нужна авторизация по IP: прокси ipv4 с привязкой внешнего адреса работают в таком ярлыке без единого окна входа.
Как проверить, что ключ сработал
Откройте chrome://net-internals/#proxy. В блоке действующих настроек должен стоять ваш адрес. Если там пусто или системные параметры, ключ не применился, и первое, что надо проверить, это --user-data-dir. Кнопка Clear bad proxies на той же странице сбрасывает список адресов, которые Chrome временно отложил после ошибок соединения.

Chromium: те же ключи, другие источники настроек
Настройка прокси в Chromium повторяет Chrome: ключи, расширения, системные параметры. Edge понимает те же ключи. Сборки Chromium под Windows читают настройки Windows. Ключ работает и в headless-режиме, и именно так прокси передают браузеру из скриптов: строка --proxy-server уходит в список аргументов запуска.
На Linux порядок свой. Под GNOME или KDE Chromium берёт прокси из настроек рабочего стола. Без них работают переменные окружения http_proxy, https_proxy, all_proxy и no_proxy. Ключ --proxy-server перекрывает и то и другое, поэтому на серверах и в контейнерах я задаю прокси только ключом, так конфигурация видна в одной строке запуска.
Ещё одна деталь Linux. Переменные окружения видит только процесс, который их унаследовал. Экспортировали https_proxy в одном терминале и запустили Chromium из меню рабочего стола, и браузер о прокси не узнает. Системные настройки Linux разобраны в статье о настройке прокси в Linux и Ubuntu.
Firefox: своё окно, свои правила
Наберите в адресной строке about:preferences и нажмите Enter.
На вкладке «Основные» прокрутите в самый низ, до блока с прокси. Быстрее набрать «прокси» в поиске по настройкам.
Нажмите кнопку «Настроить», откроется окно «Параметры соединения».
Выберите «Ручная настройка прокси».
Для HTTP-прокси заполните «HTTP прокси» и «Порт», отметьте «Также использовать этот прокси для HTTPS».
Для SOCKS5 заполните «Узел SOCKS» и порт, выберите «SOCKS 5» и включите отправку DNS-запросов через прокси при использовании SOCKS 5.
В поле «Не использовать прокси для» перечислите исключения через запятую.
Сохраните кнопкой OK.
Галочка «Также использовать этот прокси для HTTPS» нужна в 99 случаях из 100. Без неё мимо HTTP-прокси пойдут все HTTPS-сайты. Это почти весь интернет.
По умолчанию стоит режим «Использовать системные настройки прокси». Пока он выбран, Firefox ведёт себя как Chrome и берёт прокси у Windows. Ручной режим отвязывает его от системы: Firefox работает через свой адрес, и Windows с остальными браузерами об этом ничего не знают. Я пользуюсь этим как вторым рабочим местом: Chrome живёт с обычными настройками, Firefox ходит через прокси, и для этого не нужны ни ярлыки, ни ключи, ни правка системы.
Исключения Firefox пишет через запятую, подсеть можно указать маской: .local, 192.168.0.0/16. Соединения с localhost и 127.0.0.1 он через прокси не пускает никогда, это написано прямо под полем. Новые настройки Firefox применяет сразу, ко всем окнам профиля, без перезапуска.
Если поля серые и не меняются, прокси закреплён политикой организации. Страница about:policies покажет, какой именно.

URL автоматической настройки прокси в Firefox
Тот же сценарий PAC, что работает в Windows и Chrome, подходит и Firefox. Выберите «URL автоматической настройки прокси», вставьте ссылку и нажмите «Обновить», чтобы Firefox перечитал файл без перезапуска. Держите сценарий на http или https, тогда одна ссылка одинаково работает во всех трёх местах. Для Firefox и Chrome сценарий может вернуть кроме PROXY адрес:порт ещё и SOCKS5 адрес:порт.
Профили и about:config
Firefox хранит настройки прокси в профиле. Страница about:profiles создаёт новый профиль и запускает его отдельным окном, и у каждого профиля свой адрес. У меня так работают 3 профиля под разные проекты.
Для массовой правки в about:config есть параметр network.proxy.type: 0 без прокси, 1 ручная настройка, 2 сценарий PAC, 4 автоопределение, 5 системные настройки.
Логин и пароль в двух браузерах
Chrome спрашивает логин и пароль HTTP-прокси отдельным окном при первом запросе после запуска. Firefox показывает своё окно и умеет запоминать пароль: галочка «Не запрашивать аутентификацию (если был сохранён пароль)» в «Параметрах соединения» убирает повторные запросы. Для SOCKS5 полей логина нет ни в окне Firefox, ни в ключах Chrome. Под SOCKS5 в браузере берут авторизацию по IP.
Для HTTP-прокси с логином есть ещё расширения, которые подставляют данные сами. Их ставят, когда пр офилей много и вводить пароль в каждом после запуска уже надоело.
Что значат ошибки браузера
Ошибки при работе через прокси у двух браузеров выглядят по-разному, но указывают на одни и те же места:
ERR_PROXY_CONNECTION_FAILED в Chrome: до прокси достучаться не удалось. Проверьте адрес, порт и привязку IP.
ERR_TUNNEL_CONNECTION_FAILED: прокси ответил, но тоннель к сайту не поднял. Проверьте этот сайт отдельно через curl -x.
ERR_SOCKS_CONNECTION_FAILED: SOCKS-соединение не сложилось. Сверьте схему socks5:// и порт именно SOCKS5.
В Firefox страница с отказом в соединении при подключении к прокси-серверу означает то же, что первая ошибка Chrome.
После исправления закройте окно профиля целиком и запустите заново. Chrome держит открытые соединения, и старые вкладки могут ещё какое-то время работать по прежней схеме.
От одного окна к потоку экземпляров
Ручной прокси в браузере закрывает работу в одном окне. Когда тот же Chrome запускают десятками экземпляров из скрипта, в дело идёт тот же ключ --proxy-server, только в коде, и вся нагрузка ложится на адреса из ключа. Один IP на 30 экземпляров быстро упирается в рейт-лимит сайта, и в логе пойдут 429.
Под такую схему у WinGate есть прокси для selenium и прокси для puppeteer с автоматической ротацией: новый IP на каждый запрос, безлимитный трафик, до 5000 потоков, протоколы HTTP, HTTPS и SOCKS5. Авторизация по IP закрывает вопрос с SOCKS5 в Chrome. Строка IP:PORT:LOGIN:PASS подходит для HTTP-прокси с окном входа.
Сценарий с ключом запуска удобно сверить на тестовых прокси WinGate: запустите профиль, откройте страницу проверки IP и прогоните привычную задачу в разумном темпе. Тест бесплатный, до 2 часов.
Свежие статьи
