Назад к блогу

Приложение игнорирует прокси: 4 способа завернуть его трафик в 2026

Вы прописали прокси в системных настройках, а программа всё равно ходит с домашнего IP. Разбираем, почему системный прокси не принуждает приложения, и показываем четыре рабочих способа завернуть трафик конкретной программы в SOCKS5: Proxifier, ProxiFyre, proxychains-ng и TUN-режим. С ограничениями каждого, типичными ошибками и выбором типа прокси.

📅11 августа 2026 г.
Приложение игнорирует прокси: 4 способа завернуть его трафик в 2026

Вы прописали прокси в настройках Windows, перезапустили программу — а она всё равно ходит с домашнего IP. Или наоборот: браузер честно ушёл через прокси, а десктопный клиент рядом с ним продолжает светить реальным адресом. Это не баг прокси и не кривые креды. Это фундаментальное свойство того, как операционные системы обращаются с «системным прокси»: он не принуждает, а только предлагает.

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

Почему системный прокси не работает: короткая техническая правда

В Windows нет одного «системного прокси». Их как минимум два независимых набора настроек. Первый — WinINET: то, что вы правите в «Параметры → Сеть и Интернет → Прокси-сервер». Его читают Internet Explorer/Edge, часть приложений на .NET и всё, что использует стандартный пользовательский HTTP-стек. Второй — WinHTTP, которым пользуются системные службы и фоновые процессы. И вот ключевое: WinHTTP не использует настройки WinINET, пока вы их явно не импортируете. Делается это командой netsh winhttp import proxy source=ie, и — важная деталь из документации Microsoft — команда берёт снимок текущих настроек. Поменяли прокси в параметрах позже? Снимок не обновится сам, команду надо выполнить заново.

Но даже импорт не спасает от главной категории проблем. Огромное количество программ вообще не спрашивает систему: они используют собственный сетевой стек и открывают TCP-сокеты напрямую. Так устроены многие desktop-клиенты соцсетей и мессенджеров, игровые лаунчеры, торренты, часть Electron-приложений с зашитой конфигурацией, скомпилированные Go- и Rust-утилиты. Для них строка «прокси» в настройках ОС просто не существует как понятие.

Отсюда правило: если приложение не имеет своего поля для прокси, единственный надёжный путь — перехватить его трафик ниже уровня приложения. Способов ровно четыре класса, и они принципиально разные по цене, надёжности и требуемым правам.

Шаг 0: убедитесь, что проблема именно в этом

  1. Запустите приложение и посмотрите, какой IP оно показывает (профиль аккаунта, служебная страница сервиса, любой встроенный индикатор).
  2. Параллельно откройте браузер через тот же прокси и сверьте адрес. Разные IP = приложение игнорирует системную настройку.
  3. Проверьте, есть ли у программы собственные настройки прокси — часто они спрятаны в «Сеть», «Соединение» или в конфиг-файле. Нативная поддержка всегда лучше внешнего перехвата: меньше слоёв, меньше поломок.
  4. Отдельно проверьте DNS. Если приложение резолвит имена локально, а трафик идёт через прокси, ваш реальный провайдер всё равно видит, куда вы ходите.

Способ 1. Proxifier — коммерческий стандарт для Windows и macOS

Proxifier перехватывает соединения приложений и разворачивает их на указанный прокси по правилам: можно задать «этот exe — через прокси A, тот — через прокси B, остальное — напрямую», разделить по портам и адресам назначения, выстроить цепочку из нескольких прокси.

Актуальные версии на момент написания: 4.14 для Windows (релиз 23 апреля 2025) и 3.15 для macOS (18 сентября 2025). Лицензия — $39.95 за копию, разовая покупка, бессрочная, с бесплатными минорными обновлениями; есть 31-дневный полнофункциональный триал, оптовые скидки от двух копий и возврат в течение 30 дней.

Практика настройки:

  1. Proxy Servers → Add: укажите адрес, порт, протокол SOCKS5 и креды. Нажмите Check — тест должен пройти до создания правил, иначе вы будете отлаживать две проблемы сразу.
  2. Proxification Rules → Add: в Applications выберите конкретный исполняемый файл, в Action — ваш прокси.
  3. Правило Default оставьте Direct, если не хотите завернуть вообще всю машину. Это самая частая ошибка новичков: Default → Proxy кладёт в туннель и апдейтер ОС, и антивирус, и лишний трафик, за который вы платите по гигабайтам.
  4. Смотрите вкладку Connections в реальном времени: там видно, какое соединение ушло через прокси, а какое — напрямую.

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

Способ 2. ProxiFyre — бесплатная альтернатива под Windows с поддержкой UDP

Если бюджет нулевой, а платформа Windows, есть открытый проект ProxiFyre (лицензия AGPL-3.0). Он построен на NDISAPI/Windows Packet Filter — то есть работает на уровне драйвера фильтрации пакетов и умеет то, чего часто не хватает: прозрачно заворачивать не только TCP, но и UDP по каждому приложению отдельно. Это принципиально для всего, что живёт на UDP и QUIC — голосовых каналов, игровых клиентов, части современных браузерных соединений.

Из полезного в свежих версиях: поддержка IPv6 появилась в v2.3.0, SOCKS5-over-TLS — в v2.4.0, есть правила-исключения для приложений и catch-all для всех остальных. Требования: установленный Windows Packet Filter, runtime-библиотеки Visual Studio и права администратора.

Настройка ведётся через конфигурационный файл со списком приложений и привязанных к ним SOCKS5-эндпоинтов. Порог входа выше, чем у Proxifier, зато вы не платите и получаете UDP.

Способ 3. proxychains-ng — быстрый вариант для Linux, с оговорками

Классика для Unix-систем: proxychains4 curl https://example.com. Механизм — LD_PRELOAD: библиотека подменяет вызовы сокетов в динамически слинкованной программе и уводит их в SOCKS.

Ограничения, которые надо знать до того, как вы построите на этом рабочий процесс:

  • Только TCP. UDP и ICMP не заворачиваются вообще — ping через proxychains не проверяет ничего осмысленного.
  • Только динамически слинкованные бинарники. Статически собранные утилиты (типичная ситуация для Go) LD_PRELOAD игнорируют молча — трафик пойдёт напрямую, и вы этого не заметите.
  • На macOS упирается в SIP. System Integrity Protection блокирует подгрузку библиотеки в системные бинарники: proxychains4 ssh user@host не сработает. Рабочий обходной путь — скопировать бинарник в свой каталог (cp /usr/bin/ssh ~/.local/bin/) и запускать копию. Отключать SIP ради удобства я не советую: вы ослабляете защиту всей системы ради одной утилиты.

Для точечных задач (curl, python-скрипт, консольная утилита) proxychains остаётся самым быстрым способом — ставится одной командой и не требует root.

Способ 4. TUN-режим: перехват на уровне виртуального интерфейса

Самый универсальный класс решений. Создаётся виртуальный сетевой интерфейс, маршруты системы заворачиваются в него, а пользовательский TCP/IP-стек разбирает пакеты и выдаёт их наружу через SOCKS5. Так работают tun2socks (использует стек gVisor, умеет TCP и UDP, есть под все платформы) и sing-box в режиме TUN.

Ключевое преимущество перед LD_PRELOAD: перехватывается вообще всё, включая статические бинарники и приложения с собственным стеком. У sing-box дополнительно есть маршрутизация по процессам — поля process_name, process_path и process_path_regex, что даёт настоящие per-app правила; по документации это поддерживается на Linux, Windows и macOS (на мобильных платформах правила задаются по package name или bundle ID).

Две ловушки, на которых спотыкаются практически все:

  1. Маршрутная петля. Если весь трафик уходит в TUN, то и соединение к самому SOCKS5-серверу пытается уйти в TUN — туннель начинает заворачивать сам себя. Лечится явным маршрутом-исключением до IP прокси через физический интерфейс. Это известная и регулярно всплывающая проблема конфигураций sing-box.
  2. Права. Создание TUN-интерфейса и правка таблицы маршрутизации требуют root/администратора. На корпоративной машине с политиками это может быть недоступно.

На Linux есть ещё два родственных подхода: redsocks — перехват через правила iptables с редиректом на локальный порт (только Linux, нужен root), и sshuttle, который поднимает VPN-подобную маршрутизацию поверх обычного SSH-доступа, обходя классическую проблему «TCP поверх TCP».

Что ломается чаще всего

  • DNS-утечка. Даже с корректно настроенным SOCKS5 приложение может резолвить домены локально. Проверяйте, что резолв уходит на сторону прокси, а не вашего провайдера.
  • Выбран SOCKS4 вместо SOCKS5. SOCKS4 не поддерживает UDP в принципе и не умеет передавать доменное имя в ряде реализаций. Для перехвата произвольного трафика берите только SOCKS5 — почему именно так, подробно разобрано в материале о принципах работы SOCKS5.
  • HTTP-прокси вместо SOCKS. HTTP-прокси умеет проксировать HTTP и через CONNECT — TLS-соединения. Произвольный TCP-трафик игрового клиента или мессенджера он не заворачивает.
  • Default-правило на весь трафик. Заворачивая всю машину, вы сжигаете трафик резидентного пула на обновлениях и телеметрии.
  • Отсутствие проверки после настройки. Всегда перепроверяйте фактический выходной IP из самого приложения, а не из браузера рядом.

Какой тип прокси брать под перехват

Технически перехват работает с любым SOCKS5-эндпоинтом, но выбор типа определяет, доживёт ли ваш сценарий до результата.

  • Резидентные — когда приложение работает с сервисом, который оценивает репутацию IP: соцсети, маркетплейсы, рекламные кабинеты, платёжные формы. Датацентр-адрес там опознаётся почти мгновенно. Подойдут резидентные прокси с поддержкой SOCKS5 и sticky-сессий — последнее критично, потому что смена IP посреди активной сессии выглядит для антифрода хуже, чем «чужой» IP изначально.
  • Датацентр — для технических задач без строгого антифрода: доступ к API, внутренние сервисы, тестовые стенды, всё, где важна скорость и стабильность канала, а не «жилой» вид адреса. Здесь датацентр-прокси дают лучший пинг и предсказуемость.
  • Мобильные — когда приложение мобильное по природе (эмулятор, клиент соцсети) и требуется максимальное доверие площадки.

Отдельно: перехват на уровне приложения — это не VPN, и подменять одно другим не стоит. Если вам нужен именно один защищённый канал для всей машины, а не разные IP для разных программ, сравнение подходов есть в разборе WireGuard против прокси.

Как выбрать способ за минуту

  1. Приложение имеет свои настройки прокси → используйте их, ничего не перехватывайте.
  2. Windows, нужен результат сегодня, бюджет есть → Proxifier.
  3. Windows, нужен UDP и бесплатно → ProxiFyre.
  4. Linux, разовая задача с консольной утилитой → proxychains-ng.
  5. Нужно перехватить статический бинарник, игру или всё сразу с per-app правилами → TUN-режим (sing-box, tun2socks), не забыв про маршрут-исключение до прокси.

Главный вывод простой: «прокси не работает» в девяти случаях из десяти означает «прокси настроен не на том уровне». Системная настройка — это вежливая просьба к приложению, а перехват на уровне драйвера, LD_PRELOAD или TUN-интерфейса — принуждение. Выберите слой правильно, проверьте фактический выходной IP из самого приложения и не забудьте про DNS — и проблема закрывается один раз, а не всплывает после каждого обновления программы.