# Настройка прокси для использования в браузере: уникальные IP-адреса для каждой сессии

Ищите прокси для использования в браузере, и Google предлагает вам диалог настроек Chrome. Это другое: маршрутизация библиотеки AI-агента для использования в браузере через аутентифицированные резидентные IP, по одному на каждого агента.

Ищите **прокси для использования в браузере**, и Google предлагает вам диалог настроек Chrome, API расширения `chrome.proxy` и руководство по корпоративному PAC-файлу. Ничего из этого не то, что вы искали. Вы хотите маршрутизировать [browser-use](https://github.com/browser-use/browser-use) - библиотеку Python с 108k звездами на GitHub, которая позволяет LLM управлять реальным браузером - через аутентифицированный прокси, чтобы ваш агент не атаковал цель с IP вашего офиса. Это то руководство: где на самом деле находится параметр, почему он тихо перестает работать после обновления, как дать каждому параллельному агенту свой выходной IP и что происходит с долгой задачей, когда IP меняется под ней.

## Где на самом деле находится параметр прокси для использования в браузере

Прокси является свойством *сессии браузера*, а не агента. В текущей библиотеке `Browser` является псевдонимом для `BrowserSession` - документация четко указывает, что это один и тот же класс - поэтому любое руководство, которое вы найдете, используя одно имя, применимо и к другому. Параметр - это `proxy`, и в документации он указан как `ProxySettings` с четырьмя полями: `server`, `bypass`, `username` и `password`. Работает также эквивалентный словарь, который и передают большинство людей:

```python
import asyncio
from browser_use import Agent, Browser
# llm = ...  your model of choice; see the browser-use docs for the import

PROXY = {
    "server": "http://residentialpremium.quantumproxies.io:8080",  # scheme is mandatory
    "username": "USER",
    "password": "PASS",
    "bypass": "localhost,127.0.0.1",                  # keep local calls off the proxy
}

browser = Browser(proxy=PROXY, headless=False)

async def main():
    agent = Agent(
        task="Open https://api.ipify.org?format=json and report the IP you see",
        llm=llm,
        browser_session=browser,
    )
    await agent.run()

asyncio.run(main())
```

Две детали, которые люди часто путают. Во-первых, учетные данные должны находиться в полях `username` и `password`, а не быть вставлены в `server` - Chromium не ответит на запрос аутентификации прокси с паролем, встроенным в URL, и у browser-use нет диалога для его ввода. Во-вторых, `server` нуждается в схеме. `residentialpremium.quantumproxies.io:8080` не является URL прокси; `http://residentialpremium.quantumproxies.io:8080` является. Если учетные данные вызывают у вас проблемы, [внесение в белый список IP вашего сервера](https://quantumproxies.io/residential-proxies) полностью исключает необходимость в user:pass - шлюз распознает вызывающего, и браузер никогда не видит 407.

## Почему ваша конфигурация прокси для использования в браузере тихо не работает

Самая посещаемая страница по этой теме после документации - это проблема GitHub #2445, поданная в июле 2025 года: прокси, который работал в версии 0.1.45, перестал действовать в версии 0.5.4, и единственная подсказка была в том, что агент радостно сообщал `DNS_PROBE_FINISHED_NXDOMAIN` в своем собственном резюме. Этот режим отказа - агент, описывающий сетевую ошибку, как будто это факт о веб-сайте - является признаком прокси, который наполовину настроен. Пройдитесь по этому списку, прежде чем сжигать больше токенов:

1. Вы передали `proxy=` сессии, которую агент никогда не получил. Создайте один `Browser`, передайте именно этот объект и не позволяйте создать сессию по умолчанию за вашей спиной.
2. Вы установили `cdp_url`. Подключение к уже запущенному Chrome означает, что прокси принадлежит флагам запуска этого браузера (`--proxy-server=...`), а не вашей конфигурации сессии - browser-use не может его доработать.
3. Глобальная переменная окружения `HTTP_PROXY` или `HTTPS_PROXY` конфликтует с настройкой сессии или, что еще хуже, тихо маршрутизирует ваши вызовы LLM API через измеряемую пропускную способность.
4. Сам прокси не работает. Проверьте его вне агента сначала - это ничего не стоит и исключает половину пространства поиска.

```python
import requests

PROXY_URL = "http://USER:PASS@residentialpremium.quantumproxies.io:8080"
r = requests.get(
    "https://api.ipify.org?format=json",
    proxies={"http": PROXY_URL, "https": PROXY_URL},
    timeout=20,
)
print(r.status_code, r.text)   # must NOT be your own IP
```

Если это выводит иностранный IP, учетные данные и шлюз в порядке, и проблема в подключении сессии. Если это выводит ваш собственный адрес или 407, исправьте это сначала. Наш бесплатный [проверщик IP](https://quantumproxies.io/ip-checker) показывает, как выглядит выход с другой стороны - ASN, тип и репутация - что является второй вещью, которую нужно проверить, когда страницы загружаются, но каждая из них - CAPTCHA.

![Агент browser-use, которого попросили сообщить свой IP, пересказывает DNS_PROBE_FINISHED_NXDOMAIN так, будто это факт о сайте, что выдает наполовину настроенный прокси. Карточка сопоставляет симптомы и исправления: ошибка DNS, виден ваш собственный IP, конфигурация, работавшая на 0.1.45, или глобальная переменная HTTPS_PROXY, конфликтующая с сессией.](https://res.cloudinary.com/dmqliab0t/image/upload/f_auto,q_auto,w_1200/v1785776552/blog/generated/qp-b10-005-diag1.png)
*Конфигурация обычно выглядит правильно. Ошибка почти всегда в сессии, которую агент на самом деле получил, в отсутствии схемы или в глобальной переменной окружения.*

## Один прокси на сессию, чтобы параллельные агенты не делили выходной IP

Это вся причина, по которой параметр находится на сессии, а не в глобальной конфигурации. Запустите десять агентов через один общий `Browser`, и цель увидит в десять раз больше трафика с одного адреса, что является самым быстрым способом сжечь резидентный IP. Создайте сессию внутри корутины вместо этого и дайте каждому из них свой собственный идентификатор сессии с фиксированным IP, чтобы шлюз закрепил его за одним выходом на протяжении всей задачи:

```python
import asyncio, secrets
from browser_use import Agent, Browser

def session_proxy(sid: str, country: str = "us"):
    return {
        "server": "http://residentialpremium.quantumproxies.io:8080",
        "username": f"USER-country-{country}-sid-{sid}-ttl-30m",
        "password": "PASS",
    }

async def run_task(task: str, country: str):
    sid = secrets.token_hex(3)                  # e.g. a1b2c3
    browser = Browser(
        proxy=session_proxy(sid, country),
        user_data_dir=None,                     # incognito: no shared cookies
        allowed_domains=["*.example.com"],      # keep the agent on target
    )
    agent = Agent(task=task, llm=llm, browser_session=browser)
    return await agent.run()

async def main():
    await asyncio.gather(
        run_task("Find the price of SKU-1", "us"),
        run_task("Find the price of SKU-1", "de"),
        run_task("Find the price of SKU-1", "gb"),
    )

asyncio.run(main())
```

Три флага действительно работают здесь. `user_data_dir=None` запускает в режиме инкогнито, чтобы агенты не могли наследовать куки друг друга и тихо объединять две идентичности в один профиль. `allowed_domains` ограничивает навигацию списком шаблонов - обратите внимание, что подстановочные знаки в позиции TLD, такие как `example.*`, намеренно отклоняются, а списки более ста записей оптимизируются в наборы с отключенным сопоставлением шаблонов. А идентификатор сессии в имени пользователя делает выходной IP стабильным; точные имена флагов для страны и сессии находятся в вашей панели управления, но форма везде одинакова.

## Выбор страны выхода для каждой задачи

Агенты, которые покупают, сравнивают цены или проверяют доступность, по умолчанию ошибаются, если они просматривают из неправильной страны. Поскольку прокси является сессионным, страна - это аргумент для каждой задачи - замените `country-us` на `country-de`, и та же задача вернет немецкие цены. Выберите из более чем 200 стран в пуле и держите остальную часть браузера в соответствии с этим: передайте соответствующий язык через `args` (Chromium принимает `--lang=de-DE`) вместо того, чтобы позволить немецкому выходному IP запрашивать страницы на американском английском. Для мобильных поверхностей и самых надежных выходов [мобильные IP](https://quantumproxies.io/mobile-proxies) ведут себя иначе, потому что NAT оператора связи ставит тысячи реальных пользователей за один адрес.

[Дайте каждому агенту свой собственный резидентный выходной IP](https://quantumproxies.io/residential-proxies)

![Три агента browser-use, каждый из которых создан внутри своей задачи со своим Browser и фиксированной сессией прокси в имени пользователя, обращаются к одной цели с разных резидентных выходов в США, Германии и Великобритании. Карточка перечисляет правила: один Browser на агента, одна фиксированная сессия на Browser, никаких общих cookie.](https://res.cloudinary.com/dmqliab0t/image/upload/f_auto,q_auto,w_1200/v1785776552/blog/generated/qp-b10-005-diag2.png)
*Создайте сессию внутри задачи, а не снаружи. Один Browser на агента, одна сессия с фиксированным IP на Browser, один IP на идентичность.*

## Что происходит, когда IP меняется во время выполнения задачи

Агенты медленные так, как скрейперы не медленные. Между стандартной паузой в 0,5 секунды после каждого действия, минимальным ожиданием состояния страницы в 0,25 секунды и ожиданием сетевой неактивности в 0,5 секунды, browser-use тратит более секунды на каждый шаг, прежде чем модель что-либо скажет - а время кругового трипа модели обычно занимает несколько секунд больше. Задача в пятнадцать шагов, следовательно, выполняется от одной до двух минут по реальному времени. Если ваш выходной IP меняется на каждый запрос, сайт увидит другой адрес на каждом из этих шагов: вход в систему прерывается, корзина очищается, и агент сообщает, что кнопка оформления заказа исчезла.

Решение - это сессия с фиксированным IP, окно которой комфортно превышает вашу наихудшую продолжительность задачи, а не среднюю. Проведите несколько реальных запусков, возьмите самый медленный и добавьте запас - агенты повторяют попытки, и повтор удваивает время. Когда задача действительно должна пережить любое окно с фиксированным IP, разделите ее: войдите в систему и экспортируйте состояние, затем возобновите в новой сессии с куками, которые вы сохранили через `storage_state`. И если вы выбираете между ротацией на каждый запрос и фиксированным IP вообще, наш [контрольный список инфраструктуры для AI-агентов](https://quantumproxies.io/blog/web-infrastructure-ai-agents) охватывает остальной слой вокруг этого решения.

## Держите прокси подальше от ваших вызовов LLM

Это стоит реальных денег, и почти никто этого не замечает. Установка `HTTPS_PROXY` в качестве переменной окружения, чтобы прокси "применялся везде", также маршрутизирует каждый вызов API модели через ваш резидентный шлюз - запросы и ответы, на каждом шаге, оплачиваемые за гигабайт за привилегию идти длинным путем. Настройте прокси только на `Browser` и оставьте окружение процесса в покое. Пока вы считаете байты, обратите внимание, что browser-use загружает uBlock Origin по умолчанию через `enable_default_extensions`: оставьте его включенным, потому что каждый рекламный запрос, который он убивает, - это тот, за который вы не платите. Полная арифметика в нашем разборе [сколько стоит AI-агент в пропускной способности](https://quantumproxies.io/blog/ai-agent-bandwidth-cost-proxies), а классическая версия компромисса для скрейпинга находится в [безголовый браузер против HTTP-запросов](https://quantumproxies.io/blog/headless-browser-vs-http-requests-cost).

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

### Как настроить прокси в browser-use?

Передайте `proxy=`, когда создаете `Browser` (также экспортируется как `BrowserSession`), затем передайте этот объект `Agent`. Значение содержит `server` с явной схемой `http://`, а также `username`, `password` и необязательный список `bypass`. На уровне агента настройки прокси нет - она принадлежит сессии.

### Почему моя конфигурация прокси для использования в браузере не работает?

По степени вероятности: агент работает в другой сессии, чем та, которую вы настроили, `server` отсутствует схема, вы установили `cdp_url`, поэтому браузер был запущен в другом месте без флагов прокси, или глобальная переменная окружения прокси переопределяет вас. Проверьте прокси с помощью простого HTTP-клиента сначала - ошибка DNS в журнале агента обычно означает, что прокси вообще не подключен.

### Может ли каждый агент browser-use использовать другой IP?

Да, и вы должны. Создайте `Browser` внутри каждой корутины задачи с собственными учетными данными прокси, а не делитесь одним экземпляром. Добавление уникального идентификатора сессии к имени пользователя шлюза закрепляет каждого агента за отдельным выходом на протяжении всего его выполнения, так что десять параллельных агентов выглядят как десять пользователей, а не один очень занятый.

### Какой тип прокси лучше всего подходит для агентов browser-use?

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

### Останавливает ли прокси обнаружение browser-use?

Нет. Прокси исправляет только IP-уровень; отпечаток автоматизированного Chromium - это отдельная проблема, как и поведение агента, который кликает с миллисекундной точностью. Доверенные резидентные выходы убирают самый легкий сигнал, но сочетайте их с браузером, ориентированным на скрытность, если цель использует серьезное управление ботами.

Здесь нет ничего экзотического: прокси - это свойство сессии, и две вещи, которые его ломают, - это отсутствие схемы и сессия, которую вы никогда не передали. Сделайте это правильно, дайте каждому параллельному агенту свой собственный фиксированный выход и держите шлюз подальше от ваших вызовов модели API. Для более широкой картины смотрите нашу [карту антидетект-фреймворков и аутентифицированных прокси](https://quantumproxies.io/blog/anti-detect-frameworks-authenticated-proxies-map).

[Запустите browser-use на более чем 90 миллионов резидентных IP в более чем 200 странах](https://quantumproxies.io/residential-proxies)
