Skip to content
Статья / 1 мин. чтения

Proxifier + SOCKS5: направляйте через прокси только выбранные приложения

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

Большинство настроек прокси работают по принципу «всё или ничего». Либо вы меняете системную настройку, и всё идёт через прокси, либо настраиваете одно приложение, а всё остальное его игнорирует. Proxifier находится посередине: он перехватывает исходящие соединения на уровне сокетов и применяет правила — это приложение использует прокси, то идёт напрямую, этот хост полностью заблокирован.

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

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

Что даёт Proxifier, чего не могут системные настройки

  • Маршрутизация на уровне приложений. Отправьте один браузер через прокси, а всё остальное оставьте напрямую.
  • Маршрутизация на уровне целей. Проксируйте трафик к определённым доменам или диапазонам IP, а остальное отправляйте напрямую.
  • Проксирование, не зависящее от протокола. Любое TCP-приложение можно направить через SOCKS5-прокси, даже если в нём самом нет настроек прокси.
  • Цепочки. Маршрутизация через прокси, а затем через ещё один узел.
  • Журнал трафика. Вы точно видите, какое соединение куда пошло, что бесценно, когда что-то утекает.

Перед началом: соберите данные прокси

От вашего провайдера прокси вам понадобятся:

  • Имя хоста или IP-адрес, а также порт.
  • Протокол: SOCKS5.
  • Имя пользователя и пароль, если требуется аутентификация.
  • Выдаёт ли endpoint ротацию IP или липкую сессию (sticky session), потому что от этого зависит, будут ли работать многошаговые сценарии с сохранением состояния.

Заранее решите, должен ли DNS разрешаться на прокси. При использовании SOCKS5 разрешение имён хостов на вашей собственной машине — самая распространённая причина утечек местоположения. Большинство провайдеров предоставляют удалённый DNS либо через настройку на стороне клиента, либо через флаг в имени пользователя.

Шаг 1: Добавьте SOCKS5-прокси в Proxifier

  1. Откройте меню Profile и выберите Proxy Servers.
  2. Нажмите Add.
  3. Введите адрес и порт и установите протокол SOCKS Version 5.
  4. Если прокси требует аутентификацию, включите её и введите учётные данные.
  5. Используйте встроенную кнопку Check, чтобы убедиться, что прокси отвечает, прежде чем строить на нём какие-либо правила.

Если проверка не проходит, причина почти всегда одна из трёх: неверный порт, учётные данные, требующие URL-кодирования из-за специальных символов, или провайдер, ограничивающий подключения IP-адресами из белого списка.

Шаг 2: Решите, как обрабатывается DNS

Это настройка, которую большинство пропускает, и именно она тихо порождает утечки. В настройках разрешения имён, обычно в разделе Profile → Name Resolution, вы выбираете между разрешением имён хостов локально или на прокси.

  • Разрешать через прокси, когда ваша цель — скрыть ваше реальное местоположение и DNS-запросы. Это SOCKS5-эквивалент использования socks5h:// вместо socks5://.
  • Разрешать локально только тогда, когда вам действительно нужно локальное поведение DNS, например, split-horizon имена в корпоративной сети.

Если сайт определяет геолокацию, совпадающую с вашим реальным местоположением, а не с местоположением прокси, это первая настройка, которую нужно проверить.

Шаг 3: Напишите правила проксификации

Правила находятся в разделе Profile → Proxification Rules. Они проверяются по порядку, и побеждает первое совпадение, поэтому порядок важнее любой отдельной записи.

Разумная начальная структура:

  1. Direct для локальных адресов. Loopback и ваша локальная сеть никогда не должны проксироваться.
  2. Direct для самого прокси-сервера. Без этого некоторые конфигурации пытаются отправить трафик прокси обратно через прокси.
  3. Proxy для конкретных приложений, которые вам важны. Одно правило на исполняемый файл, с действием, установленным на ваш SOCKS5-прокси.
  4. Direct или Block для всего остального. Осознанно выберите, что из этих двух должно быть по умолчанию.

Каждое правило может сопоставляться по:

  • Applications — имена или пути исполняемых файлов.
  • Target hosts — домены, подстановочные знаки или диапазоны IP.
  • Target ports — полезно, чтобы направлять через прокси только, скажем, порт 443.

Держите список коротким. В наборе из тридцати пересекающихся записей невозможно разобраться, когда что-то ломается.

Шаг 4: Убедитесь, что трафик идёт туда, куда вы думаете

Проверка состоит из трёх частей:

  1. В журнале трафика убедитесь, что только что установленное соединение отнесено к SOCKS5-прокси, а не к Direct.
  2. Из приложения проверьте IP, который показывает страница проверки публичного IP.
  3. Из командной строки сравните прямой запрос с запросом через прокси:
# Напрямую
curl -s https://api.ipify.org; echo

# Через SOCKS5-прокси с удалённым разрешением DNS
curl -s --proxy socks5h://user:[email protected]:1080 https://api.ipify.org; echo

Если эти две команды дают разный результат, ваше правило не сопоставляется с приложением, с которым, как вы думали, оно сопоставляется. Обычно это проблема порядка или правило, которое сопоставляется с лаунчером, а не с процессом, выполняющим сетевые операции.

Частые проблемы Proxifier + SOCKS5

  • Правило сопоставляется с лаунчером, а не с процессом. Браузеры и среды выполнения часто порождают отдельный дочерний процесс, который открывает сокеты. Сопоставляйте с процессом, который фактически устанавливает соединение.
  • Утечки DNS. Описаны выше, но это по-прежнему причина номер один ситуации «мой IP изменился, а сайт всё равно знает, где я».
  • Сам прокси-клиент попадает под проксирование. Легко создать цикл с чрезмерно широким правилом для приложения.
  • Конфликты с VPN или драйвером фильтрации антивируса. Многоуровневый перехват сети хрупок. Если запущен VPN-клиент, сначала протестируйте Proxifier отдельно.
  • Приложения в песочнице. Приложения, работающие в ограниченной песочнице, могут не перехватываться тем же механизмом, что и обычное настольное ПО.

Когда Proxifier вообще не нужен

Если прокси нужен только вашему браузеру, настройка на уровне браузера проще. Если SOCKS5 нужен для инструментов командной строки, динамическое перенаправление SSH в сочетании с обёрткой вроде proxychains выполняет похожую задачу. Если вы хотите, чтобы все приложения на устройстве шли через прокси, и вам не нужны правила для отдельных приложений, VPN — более чистое решение. Proxifier оправдывает своё место именно тогда, когда требуется выборочная маршрутизация для отдельных приложений.

Главное

Сначала добавьте SOCKS5-прокси и убедитесь, что он отвечает, осознанно решите, разрешается ли DNS локально или на прокси, затем держите список правил коротким и упорядоченным, чтобы первое совпадение всегда было тем, которое вы ожидаете. Проверяйте с помощью журнала трафика и проверки IP — и любое расхождение между ними считайте ошибкой сопоставления правил, а не проблемой прокси.