OP-Proxy
ЦеныБлогРеселлингAPI
Личный кабинет
← Блог
Справочник·17 августа 2026 г.·обновлено 17 августа 2026 г.·3 мин чтения

Ошибки прокси в Python: почему найденные в поиске строки не совпадают с вашими

Главная сложность с питоновскими ошибками прокси не в них самих, а в том, что половина найденных в поиске ответов написана под версии библиотек пятилетней давности. Строки изменились, баги починили, а советы остались. Ниже — что ваша версия говорит на самом деле.

В этой статье

  • Строка изменилась
  • Миф про подсказку HTTP и HTTPS
  • Как читать вложенные исключения
  • SOCKS падает не тем исключением
  • Два устаревших утверждения про асинхронные клиенты
  • Как не попасть на это снова

Строка изменилась

Самая вставляемая в поиск строка — «Cannot connect to proxy.» — принадлежит urllib3 первой версии. Во второй её нет вовсе: там сообщение собирается иначе и звучит как «Unable to connect to proxy», без точки в конце. Если вы ищете по старой строке и ничего не находите в своём стектрейсе, дело не в вас.

text
# Проверено на urllib3 2.7.0, requests 2.34.2, aiohttp 3.14.3, httpx 0.28.1
#
# БЫЛО (urllib3 1.x)                 СТАЛО (urllib3 2.x)
  "Cannot connect to proxy."         "Unable to connect to proxy"
                                     <- без точки в конце
#
# ПОДСКАЗКА ПРО HTTP/HTTPS
  ". Your proxy appears to only use HTTP and not HTTPS, try changing your
     proxy URL to be HTTP."
  С 1.26.10 добавляется, только если схема прокси — https.
  До 1.26.10 добавлялась по совпадению текста ошибки TLS, то есть и там,
  где прокси был в порядке. Отсюда живучий миф.
#
# SOCKS БЕЗ ЗАВИСИМОСТИ
  requests -> InvalidSchema, а не ProxyError. Ставится: pip install requests[socks]
  httpx    -> другая библиотека: pip install httpx[socks]

Миф про подсказку HTTP и HTTPS

Дальше по популярности идёт подсказка «Your proxy appears to only use HTTP and not HTTPS». Про неё широко известно, что она врёт: приписывается по совпадению текста ошибки TLS и вылезает даже когда с прокси всё в порядке. Это было правдой ровно в двух версиях — 1.26.8 и 1.26.9.

В 1.26.10 добавили проверку схемы: теперь подсказка появляется, только если вы действительно обращаетесь к прокси по https. Соответствующее обращение в трекере закрыто ещё в 2022 году. Так что если подсказку видите вы — с большой вероятностью она права, и стоит посмотреть на схему в строке подключения, а не считать её ложной по инерции.

Как читать вложенные исключения

Исключения здесь вложены в несколько слоёв, и информативен внутренний, а не внешний. Снаружи обычно ProxyError из requests, под ним MaxRetryError из urllib3, под ним ProxyError уже из urllib3, а в самой глубине — исходная ошибка сокета. Правило простое: читайте трассировку с конца, потому что именно там написано, что произошло на самом деле — отказ соединения, таймаут или ошибка TLS.

Ловушка при обработке: ловить ConnectTimeout в requests, рассчитывая поймать отказ прокси, бесполезно — отказ соединения намеренно не отображается в этот класс. Ловите ProxyError и ConnectionError.

SOCKS падает не тем исключением

Если в requests указать socks5-прокси без установленной зависимости, придёт не ProxyError, а InvalidSchema — то есть библиотека сообщает, что не понимает схему, а не что прокси недоступен. Отсюда поиски проблем в прокси там, где не хватает пакета. Ставится это как requests[socks]; у httpx для того же нужна другая библиотека, и её ставят как httpx[socks].

Отдельно: неработающий SOCKS-прокси в requests приходит как ConnectionError, а не как ProxyError. То есть по классу исключения отличить «нет зависимости», «прокси мёртв» и «прокси отказал» нельзя — нужен текст.

Два устаревших утверждения про асинхронные клиенты

Первое: «aiohttp не поддерживает HTTPS-прокси». Поддерживает, начиная с Python 3.11 — ограничение было не в самой библиотеке, а в асинхронном транспорте. В документации до сих пор попадается фраза про недоступность TLS внутри TLS, и она устарела.

Второе: «в httpx используйте proxies=». Этот параметр не просто устарел, а удалён в версии 0.28.0 — код с ним падает с TypeError. Актуальное имя параметра — proxy. Заодно полезно знать, что httpx поднимает исключение при отказе авторизации только для https-целей, где используется CONNECT; для http-целей вы получите обычный ответ с кодом 407.

И то, что не изменилось: aiohttp по умолчанию игнорирует переменные окружения с адресом прокси. Чтобы он их читал, нужен trust_env. Это не баг и не регресс, а поведение по умолчанию с давних версий — но оно исправно порождает вопрос «почему мой HTTP_PROXY не работает».

Как не попасть на это снова

Практика, которая экономит часы: при поиске по тексту ошибки смотрите на дату ответа и на версию, для которой он написан, а сомнительное утверждение проверяйте в исходниках своей установленной версии. Библиотеки лежат прямо в окружении, и поиск по строке ошибки находит и место, где она возникает, и условие, при котором она добавляется.

Если ошибка всё-таки в прокси

Отделить проблему клиента от проблемы прокси помогает проверка одной командой — и наши бесплатные инструменты. Ротационные IPv6 — от 650 ₽ за 50 потоков.

Смотреть тарифы

Прокси под эту задачу

  • Для парсинга и скрапинга
  • Для многопоточного софта
  • Ротационные IPv6 и IPv4

Проверить нашими инструментами

  • Мой IP-адрес

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

  • Как подключить прокси в Python: requests, Scrapy и SeleniumРабочие примеры для трёх самых частых случаев, разница между socks5 и socks5h и почему в браузере удобнее авторизация по IP.
  • Ошибка 407 Proxy Authentication Required: почему прокси не пускает парсер407 возвращает прокси, а не целевой сайт. Пять причин по частоте, проверка одной командой и что делать, если софт умеет только ip:port.
  • Ошибки прокси в Chrome: что означает каждый код и чем −111 отличается от −130ERR_TUNNEL_CONNECTION_FAILED и ERR_PROXY_CONNECTION_FAILED звучат одинаково, а означают разные стадии. Таблица кодов, сверенная с исходниками, и разбор того, что Chrome делает при отказе прокси.
OP-Proxy
Планы и информация
ЦеныБлогРеселлингAPIПользовательское соглашениеПолитика конфиденциальности
Прокси под задачу
Для парсинга и скрапингаДля многопоточного софтаДля маркетплейсовДля антидетект-браузеровДля капча-софтаДля SEO и съёма выдачиРотационные IPv6 и IPv4IPv6-проксиСтатические датацентр-IPv4
Инструменты
Мой IP адресТест скоростиПроверка анонимностиWHOIS запросТест утечки DNSПроверка сайта
ИП Артамонов Анатолий Михайлович ОГРНИП 324700000026212 ИНН 701755408691