Сценарий

Прокси для Python-скриптов и консольных программ

Скрипту нужен другой IP, а лезть в код не хочется или нельзя: он чужой, собран в .exe или библиотека не видит переменные окружения. ProxyBridge направляет трафик процесса python.exe или любой консольной утилиты через твой прокси на уровне драйвера. Ниже о том, когда хватает настроек в коде, а когда удобнее правило для процесса в ProxyBridge (такой режим ещё называют split tunneling).

Как прокси подключают в самом Python

Прокси для Python-скрипта проще всего задать в коде. В requests это аргумент proxies со словарём для http и https, в httpx параметр proxy у клиента (в старых версиях proxies). Для SOCKS5 в requests нужен дополнительный пакет requests[socks], адрес пишется как socks5://user:pass@ip:port. Второй путь: переменные окружения HTTP_PROXY и HTTPS_PROXY. Их по умолчанию читают requests, httpx и urllib, так что скрипт можно пустить через прокси, не трогая ни строчки.

Проблема в том, что переменные окружения работают не везде. Сырые сокеты, драйверы баз данных и часть асинхронных библиотек их не учитывают (aiohttp, например, читает их только с параметром trust_env). То же с консольными программами на других языках: одни понимают HTTP_PROXY, другие ждут свой ключ в командной строке, третьи прокси не поддерживают вообще.

Как сделать в ProxyBridge

  1. Установи ProxyBridge от имени администратора и введи ключ при первом запуске.
  2. На вкладке «Прокси» вставь адрес в формате socks5://user:pass@ip:port, http://user:pass@ip:port или ip:port:user:pass и нажми «Добавить».
  3. Нажми «Проверить» и сверь задержку, внешний IP и страну.
  4. На вкладке «Главная» нажми «Добавить программу» и укажи python.exe через «Выбрать файл...» или в списке запущенных, если скрипт уже работает.
  5. Справа в строке python.exe выбери этот прокси, у «Все остальные программы» оставь «Напрямую» и нажми «Подключить».

Когда код править нельзя или неудобно

В этих случаях прокси для консольной программы проще назначить снаружи. ProxyBridge перехватывает соединения на уровне сетевого драйвера и отправляет их в указанный HTTP или SOCKS5 прокси, поэтому самой программе ничего знать о прокси не нужно. По сути это requests через прокси без кода: скрипт остаётся прежним, меняется только путь трафика.

  • Чужой скрипт, который ты запускаешь как есть и не хочешь поддерживать свою копию.
  • Программа, собранная PyInstaller или Nuitka в один .exe, исходника под рукой нет.
  • Консольная утилита без ключа --proxy и без поддержки переменных окружения.
  • Скрипт на нескольких библиотеках, где одна ходит через прокси, а другая напрямую, и искать виновника долго.

Правило по имени процесса

На вкладке «Главная» правило привязано к имени процесса. Добавляешь строку с python.exe, выбираешь для неё сохранённый прокси, и весь TCP-трафик интерпретатора идёт через этот адрес, а браузер, мессенджер и обновления Windows остаются на прямом подключении, потому что в строке «Все остальные программы» стоит «Напрямую». Правило действует на все скрипты, запущенные этим интерпретатором: два скрипта через python.exe получат один IP. Если их нужно развести по разным адресам, собери один в отдельный .exe, у него будет своё имя процесса и своё правило. На Mac то же самое: добавь python3 по пути к исполняемому файлу.

Какие прокси брать, зависит от задачи. Для запросов к API и открытым данным обычно хватает серверных IPv4: они недорогие и стабильные. IPv6 дешевле, но подходит, только если целевой сервер принимает IPv6-подключения. Резидентные и мобильные адреса нужны реже, когда сервис по-разному отвечает домашним и серверным сетям. Прокси можно купить прямо в ProxyBridge или у провайдера, список есть на странице провайдеров.

Что стоит знать заранее

  • Один процесс, один прокси. Смены IP на каждый запрос нет: если она нужна, её делают в коде или через шлюз провайдера с ротацией.
  • Переключение адресов ручное: сохрани несколько прокси на вкладке «Прокси» (удобно через «Импорт из файла») и выбери нужный в строке python.exe. Изменение применяется сразу, даже во время подключения.
  • UDP идёт через прокси, если это SOCKS5 с поддержкой UDP, иначе блокируется. DNS-запросы по умолчанию идут через прокси, это переключается в настройках.
  • VPN-клиент выключать не нужно: ProxyBridge работает вместе с WireGuard, AmneziaWG и подобными программами.

Частые вопросы

Как запустить Python-скрипт через прокси без изменения кода?

Задай переменные окружения HTTP_PROXY и HTTPS_PROXY, если библиотека их читает. Если не читает, добавь python.exe на вкладке «Главная» ProxyBridge и выбери для него прокси: трафик пойдёт через прокси на уровне драйвера.

Можно ли дать разным Python-скриптам разные прокси?

Внутри одного python.exe нельзя: ProxyBridge различает программы по имени процесса. Разные IP получатся, если скрипты запускаются разными исполняемыми файлами, например один собран в отдельный .exe.

Есть ли ротация прокси для скрипта?

Автоматической смены IP по запросам в ProxyBridge нет. Ротацию делают в коде, через шлюз провайдера, который сам меняет IP, или вручную выбирают другой сохранённый прокси в строке программы.

Читайте также

Направь трафик по своим правилам

Ключ от 99 ₽, работает на двух устройствах: ПК, Mac, Android или iPhone. Без автосписаний.

Купить ключ ↗