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
- Откройте меню Profile и выберите Proxy Servers.
- Нажмите Add.
- Введите адрес и порт и установите протокол SOCKS Version 5.
- Если прокси требует аутентификацию, включите её и введите учётные данные.
- Используйте встроенную кнопку Check, чтобы убедиться, что прокси отвечает, прежде чем строить на нём какие-либо правила.
Если проверка не проходит, причина почти всегда одна из трёх: неверный порт, учётные данные, требующие URL-кодирования из-за специальных символов, или провайдер, ограничивающий подключения IP-адресами из белого списка.
Шаг 2: Решите, как обрабатывается DNS
Это настройка, которую большинство пропускает, и именно она тихо порождает утечки. В настройках разрешения имён, обычно в разделе Profile → Name Resolution, вы выбираете между разрешением имён хостов локально или на прокси.
- Разрешать через прокси, когда ваша цель — скрыть ваше реальное местоположение и DNS-запросы. Это SOCKS5-эквивалент использования
socks5h://вместоsocks5://. - Разрешать локально только тогда, когда вам действительно нужно локальное поведение DNS, например, split-horizon имена в корпоративной сети.
Если сайт определяет геолокацию, совпадающую с вашим реальным местоположением, а не с местоположением прокси, это первая настройка, которую нужно проверить.
Шаг 3: Напишите правила проксификации
Правила находятся в разделе Profile → Proxification Rules. Они проверяются по порядку, и побеждает первое совпадение, поэтому порядок важнее любой отдельной записи.
Разумная начальная структура:
- Direct для локальных адресов. Loopback и ваша локальная сеть никогда не должны проксироваться.
- Direct для самого прокси-сервера. Без этого некоторые конфигурации пытаются отправить трафик прокси обратно через прокси.
- Proxy для конкретных приложений, которые вам важны. Одно правило на исполняемый файл, с действием, установленным на ваш SOCKS5-прокси.
- Direct или Block для всего остального. Осознанно выберите, что из этих двух должно быть по умолчанию.
Каждое правило может сопоставляться по:
- Applications — имена или пути исполняемых файлов.
- Target hosts — домены, подстановочные знаки или диапазоны IP.
- Target ports — полезно, чтобы направлять через прокси только, скажем, порт 443.
Держите список коротким. В наборе из тридцати пересекающихся записей невозможно разобраться, когда что-то ломается.
Шаг 4: Убедитесь, что трафик идёт туда, куда вы думаете
Проверка состоит из трёх частей:
- В журнале трафика убедитесь, что только что установленное соединение отнесено к SOCKS5-прокси, а не к Direct.
- Из приложения проверьте IP, который показывает страница проверки публичного IP.
- Из командной строки сравните прямой запрос с запросом через прокси:
# Напрямую
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 — и любое расхождение между ними считайте ошибкой сопоставления правил, а не проблемой прокси.