Софт

Настройка проксирования процессов в v2rayN: TUN-режим

Пошаговое руководство по настройке v2rayN для проксирования только указанных процессов (Discord.exe, chrome.exe и др.) через TUN-режим с маршрутизацией. Остальной трафик bypass напрямую. Включение sing-box, создание правил и устранение ошибок.

6 ответов 1 просмотр

Как настроить проксирование только для отдельных процессов в v2rayN, отправляя остальной трафик напрямую (bypass)? Например, проксировать Discord.exe, chrome.exe, remoting_host.exe, Hand2Note.exe, Lobby.exe, а всё остальное — напрямую. Где в настройках v2rayN это реализуется?

Настройка проксирования отдельных процессов в v2rayN с отправкой остального трафика напрямую реализуется через функцию маршрутизации процессов в TUN-режиме. Для этого необходимо указать имена конкретных приложений в настройках маршрутизации, создав правила с тегом “proxy” для нужных процессов и глобальное правило с тегом “direct” для bypass остального трафика.


Содержание


Настройка проксирования отдельных процессов в v2rayN

Основная задача настройки проксирования отдельных процессов в v2rayN заключается в том, чтобы направить трафик указанных приложений через прокси-сервер, в то время как весь остальной трафик будет проходить напрямую (bypass). Эта функциональность особенно полезна, когда вам нужно проксировать только определенные программы, например, браузер или мессенджер, оставляя системные обновления или другие приложения без прокси.

В v2rayN такая реализуется через систему правил маршрутизации, которая работает в TUN-режиме. В отличие от традиционного системного прокси, который проксирует весь трафик приложения, маршрутизация процессов позволяет выбрать, какие именно программы будут использовать прокси, а какие - подключаться напрямую.

Для начала работы необходимо:

  1. Убедиться, что у вас установлена актуальная версия v2rayN
  2. Настроить сервер подключения (вкладка “Server”)
  3. Перейти в раздел “Routing Settings” для настройки правил

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


Включение TUN-режима для маршрутизации процессов

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

TUN-режим (Tunneling) в v2rayN создает виртуальный сетевой интерфейс, который перехватывает весь трафик системы и направляет его через движок v2ray для последующей маршрутизации в соответствии с заданными правилами. Именно этот режим позволяет идентифицировать трафик по исходящему процессу и применять к нему соответствующие правила.

Для включения TUN-режима выполните следующие действия:

  1. Откройте v2rayN и перейдите в раздел “Settings” (Настройки)
  2. Выберите вкладку “Option Setting” (Дополнительные настройки)
  3. Найдите параметр “Core Type” (Тип ядра) и убедитесь, что выбрано ядро “sing-box”
  4. Включите опцию “Enable TUN Mode” (Включить TUN-режим)
  5. Сохраните настройки

Важно отметить, что для стабильной работы маршрутизации процессов рекомендуется использовать ядро sing-box. Это более современное ядро, которое обеспечивает лучшую производительность и более надежную работу правил маршрутизации по сравнению с более старыми версиями.

После включения TUN-режима система может запросить разрешение на создание виртуального сетевого адаптера. Это нормальное поведение, необходимое для работы режима. Разрешите создание адаптера, если система запросит соответствующие права.


Создание правил маршрутизации для конкретных приложений

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

Для настройки правил маршрутизации в v2rayN:

  1. Откройте раздел “Routing Settings” (Настройки маршрутизации)
  2. Вы увидите список существующих правил или пустую область, если правил еще нет
  3. Нажмите кнопку “Add” (Добавить) для создания нового правила

Для каждого приложения, которое вы хотите добавить в прокси, создайте отдельное правило со следующими параметрами:

  • Domain: оставьте пустым (применяется ко всему трафику)
  • IP: оставьте пустым (применяется ко всему трафику)
  • Process: введите имя исполняемого файла приложения (например, “Discord.exe”)
  • Port: оставьте пустым (применяется ко всем портам)
  • Network: оставьте пустым (применяется ко всем типам трафика)
  • OutboundTag: выберите “proxy” (или название вашего прокси-соединения)

Для вашего случая нужно создать следующие правила:

  • Для Discord.exe: Process = “Discord.exe”, OutboundTag = “proxy”
  • Для chrome.exe: Process = “chrome.exe”, OutboundTag = “proxy”
  • Для remoting_host.exe: Process = “remoting_host.exe”, OutboundTag = “proxy”
  • Для Hand2Note.exe: Process = “Hand2Note.exe”, OutboundTag = “proxy”
  • Для Lobby.exe: Process = “Lobby.exe”, OutboundTag = “proxy”

После добавления правил для конкретных приложений необходимо создать глобальное правило для отправки остального трафика напрямую. Для этого добавьте правило в самый список (после всех правил для приложений) со следующими параметрами:

  • Domain: оставьте пустым
  • IP: оставьте пустым
  • Process: оставьте пустым (применяется ко всем процессам)
  • Port: оставьте пустым
  • Network: оставьте пустым
  • OutboundTag: выберите “direct” (прямое подключение)

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

Пример JSON-массива правил:

json
[
 {
 "domain": "",
 "ip": "",
 "process": "Discord.exe",
 "port": "",
 "network": "",
 "outboundTag": "proxy"
 },
 {
 "domain": "",
 "ip": "",
 "process": "chrome.exe", 
 "port": "",
 "network": "",
 "outboundTag": "proxy"
 },
 {
 "domain": "",
 "ip": "",
 "process": "remoting_host.exe",
 "port": "",
 "network": "",
 "outboundTag": "proxy"
 },
 {
 "domain": "",
 "ip": "",
 "process": "Hand2Note.exe",
 "port": "",
 "network": "",
 "outboundTag": "proxy"
 },
 {
 "domain": "",
 "ip": "",
 "process": "Lobby.exe",
 "port": "",
 "network": "",
 "outboundTag": "proxy"
 },
 {
 "domain": "",
 "ip": "",
 "process": "",
 "port": "",
 "network": "",
 "outboundTag": "direct"
 }
]

После сохранения правил перезапустите v2rayN или просто перезапустите TUN-режим (кнопка “Restart TUN” в интерфейсе). Настройка должна заработать автоматически.


Решение проблем при настройке process routing

Несмотря на кажущуюся простоту настройки, у пользователей v2rayN могут возникать проблемы с маршрутизацией процессов. Давайте рассмотрим наиболее частые из них и способы их решения.

Проблема: Приложения не маршрутизируются через прокси

Если вы добавили правила для нужных приложений, но они все равно не работают, проверьте следующее:

  1. Убедитесь, что TUN-режим включен - это основное условие работы маршрутизации процессов
  2. Проверьте порядок правил - правило для прямого подключения должно быть в самом низу списка
  3. Убедитесь, что в настройках включена маршрутизация - в разделе “Settings” → “Option Setting” должна быть активна опция “Enable Routing”
  4. Перезапустите v2rayN - иногда изменения применяются только после полной перезапуска приложения

Проблема: v2rayN не распознает процессы

В некоторых случаях v2rayN может не распознавать определенные процессы. Это может быть связано с:

  1. Особенностями запуска приложений - некоторые программы запускают дочерние процессы с другими именами. Попробуйте добавить в правила не только основной процесс, но и его дочерние процессы
  2. Запущенными от имени администратора - если v2rayN запущен без прав администратора, он может не видеть процессы, запущенные с повышенными привилегиями. Запустите v2rayN от имени администратора
  3. Брандмауэром Windows - иногда брандмауэр блокирует взаимодействие между процессами и v2rayN. Попробуйте временно отключить брандмауэр для проверки

Проблема: Слишком много трафика идет через прокси

Если вместо ожидаемого поведения (только указанные приложения через прокси) весь трафик идет через прокси, проверьте:

  1. Отсутствие глобального правила для прямого подключения - без этого правила весь трафик будет идти через прокси
  2. Неправильный порядок правил - проверьте, что правило для прямого подключения находится в самом низу списка
  3. Конфликт с другими правилами - проверьте, нет ли других правил, которые перехватывают трафик раньше правила для прямого подключения

Проблема: Нестабильная работа маршрутизации

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

  1. Используйте ядро sing-box - оно обеспечивает более стабильную работу маршрутизации по сравнению с другими ядрами
  2. Обновите v2rayN до последней версии - разработчики постоянно улучшают функциональность маршрутизации
  3. Попробуйте альтернативные клиенты - если v2rayN постоянно работает нестабильно, рассмотрите возможность использования аналогичных клиентов, таких как Nekoray или NekoBox

Как отмечают пользователи в обсуждениях на GitHub, иногда в Nekoray/NekoBox аналогичная конфигурация работает более стабильно, но эти приложения больше не обновляются.


Альтернативные методы и лучшие практики

Помимо базовой настройки маршрутизации процессов в v2rayN, существуют альтернативные методы и лучшие практики, которые могут помочь в achieving желаемой конфигурации прокси.

Использование системного прокси с PAC-режимом

В v2rayN существует возможность настройки системного прокси в четырех режимах:

  • Очистка системного прокси
  • Автоматическая настройка
  • Без изменений
  • PAC-режим

Для базового использования можно выбрать “Автоматическую настройку” системного прокси, но для более тонкой настройки маршрутизации лучше использовать PAC-режим. В этом случае вы можете указать, какие именно домены или IP-адреса должны маршрутизироваться через прокси, а какие - напрямую.

Однако этот метод не позволяет маршрутизировать трафик по имени процесса, только по доменам или IP-адресам, поэтому для вашей задачи он не подходит.

Использование геолокационных списков

Для более гибкой настройки маршрутизации можно использовать геолокационные списки. Например, вы можете настроить bypass для частных IP-адресов, используя параметр “outboundTag”: “direct” и список “geoip:private”.

Пример правила:

json
{
 "domain": "",
 "ip": "geoip:private",
 "process": "",
 "port": "",
 "network": "",
 "outboundTag": "direct"
}

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

Рекомендации по оптимизации производительности

При настройке маршрутизации процессов в v2rayN рекомендуется:

  1. Использовать ядро sing-box - оно обеспечивает лучшую производительность и стабильность
  2. Минимизировать количество правил - чем меньше правил, тем быстрее работает маршрутизация
  3. Группировать похожие правила - если у вас несколько правил с одинаковыми параметрами, кроме имени процесса, можно объединить их
  4. Регулярно обновлять v2rayN - новые версии содержат исправления и улучшения для маршрутизации

Пример сложной конфигурации

Для более сложных сценариев можно комбинировать разные типы правил. Например, для Discord.exe можно создать отдельное правило для голосового трафика и текстового:

json
{
 "domain": "discord.com",
 "ip": "",
 "process": "Discord.exe",
 "port": "",
 "network": "tcp",
 "outboundTag": "proxy"
},
{
 "domain": "",
 "ip": "",
 "process": "Discord.exe", 
 "port": "443",
 "network": "udp",
 "outboundTag": "proxy"
}

Такая настройка позволит направить весь трафик Discord через прокси, но с разными правилами для TCP и UDP трафика.

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


Источники

  1. GitHub Discussion - Process Routing Setup - Подробное объяснение настройки проксирования отдельных процессов в v2rayN: https://github.com/2dust/v2rayN/discussions/5839
  2. GitHub Discussion - Process Routing Implementation - Руководство по созданию правил маршрутизации для конкретных приложений: https://github.com/2dust/v2rayN/discussions/5610
  3. GitHub Issue - Process Routing Problems - Анализ проблем и их решений при настройке маршрутизации процессов: https://github.com/2dust/v2rayN/issues/7040
  4. GitHub Wiki - Custom Routing Rules - Описание всех возможных правил маршрутизации в v2rayN и примеры их использования: https://github.com/2dust/v2rayN/wiki/Description-of-custom-routing-rules
  5. GitHub Wiki - System Proxy Routing - Информация о системном прокси и его режимах работы в v2rayN: https://github.com/2dust/v2rayN/wiki/Description-of-system-proxy-routing

Заключение

Настройка проксирования отдельных процессов в v2rayN - это эффективный способ управления трафиком, который позволяет направлять только указанные приложения через прокси, а весь остальной трафик отправлять напрямую. Основные шаги включают включение TUN-режима, создание правил для конкретных приложений с тегом “proxy” и добавление глобального правила с тегом “direct” для bypass остального трафика. Несмотря на возможные проблемы с распознаванием процессов, эта функциональность предоставляет гибкость и контроль над сетевым трафиком, делая v2rayN мощным инструментом для управления прокси-соединениями.

@WillRemainScars / Пользователь репозитория

Для настройки проксирования отдельных процессов в v2rayN включите TUN-режим. В настройках маршрутизации укажите имена процессов в поле FullProcessName, например Discord.exe, chrome.exe. Используйте правило с outboundTag: "proxy" для проксируемых приложений и outboundTag: "bypass" или "direct" для остального трафика. Эта функция доступна только в TUN-режиме.

Порядок правил критичен: специфические процессы проверяются первыми.

@XaTTa6-25 / Пользователь репозитория

В v2rayN настройте маршрутизацию создав правила: для проксируемых приложений (например, firefox.exe) укажите outboundTag: "proxy", а для всего остального — глобальное правило global-direct с outboundTag: "direct" в конце списка. Переключитесь на ядро sing-box в Settings → Option Setting → CoreType → sing_box для стабильности. Правила обрабатываются снизу вверх, поэтому порядок важен.

Это позволит bypass остальной трафик напрямую.

@ad0mant / Пользователь репозитория

В v2rayN пользователи сталкиваются с проблемами маршрутизации процессов: даже при добавлении правил в Routing Settings с именами вроде RiotClientServices.exe и тегом "proxy" в TUN-режиме, трафик не проходит через прокси. Функция работает нестабильно. Рекомендуется проверить альтернативные клиенты вроде Nekoray/NekoBox, где аналогичные настройки функционируют лучше, хотя они больше не обновляются.

@2dust / Владелец репозитория

Маршрутизация в v2rayN настраивается через JSON-массив правил с полями port, network, outboundTag (proxy/direct/block), domain, ip. Для блокировки udp443: порт "443", сеть "udp", outboundTag: "block". Для bypass частных IP используйте geoip:private с outboundTag: "direct". Примеры: custom_routing_rules.

@2dust / Владелец репозитория

Системный прокси в v2rayN имеет режимы: очистка, автоматическая настройка, без изменений, PAC. Выберите “Автоматическая настройка” и “Bypass mainland” для базового использования. Маршрутизация ядра направляет трафик по правилам на разные outbounds, разделяя внутренний и внешний трафик.

Авторы
@WillRemainScars / Пользователь репозитория
Пользователь репозитория
@probosciger / Пользователь репозитория
Пользователь репозитория
@XaTTa6-25 / Пользователь репозитория
Пользователь репозитория
@ad0mant / Пользователь репозитория
Пользователь репозитория
@nd213 / Пользователь репозитория
Пользователь репозитория
@2dust / Владелец репозитория
Владелец репозитория
Проверено модерацией
НейроОтветы
Модерация
Настройка проксирования процессов в v2rayN: TUN-режим