Гибкое проксирование трафика (встречаем Clash for Windows)
Спасибо @Mistuha, за комментарий, когда искал решение описанной задачи плюнул на Clash for Windows, слету показалось сложным, но все-таки подробнее изучил решение, в отличии от ProxyCap умеет работать с V2Ray и в TUN режиме. Пожалуй сам остановлюсь на нем, поскольку предложенная альтернатива — NekoBox (под Windows — NekoRay) последний раз обновлялась с почти год назад (если кому интересно все же могу выкатить пост по нему). Заметил на гите бетку NekoRay, если пощупаю выкачу пост, снова спасибо @Mistuha :)
Нам понадобятся
Прокси (Shadowsocks, VMess, с этими протоколами CWF умеет работать, проверено)
Программы и домены, трафик которых будем вертеть — Google Chrome, Firefox...
О протоколах
Shadowsocks:
Лучше использовать, если вам нужна простота и скорость.
Подходит для большинства пользователей, которые не хотят углубляться в детали.
VMess (V2Ray):
Лучше использовать, если вам важна высокая безопасность и расширенные функции.
Подходит для сложных сетей и пользователей, которые требуют гибкости в настройках.
Лучше защищает трафик и предлагает дополнительные возможности, такие как мультиплексирование.
Если вы новичок, Shadowsocks может быть удобнее. Для более опытных пользователей с повышенными требованиями к безопасности стоит рассмотреть VMess.
Не имеет значения где раздобудете прокси, у меня к примеру имеется виртуальный сервер с 3X-UI на борту, где я и создал подключение с протоколом Shadowsocks (тут пример моей конфигурации) и VMess (для данного протокола ниже).
Конфигурация подключения в 3X-UI
Добавление пользователя к подключению в 3X-UI
Примеры файлов конфигураций (.yaml) скармливаемый в Clash for Windows
Для Shadowsocks
proxies:
- name: "My Shadowsocks Proxy"
type: ss
server: *.*.*.*
port: 55223
cipher: chacha20-ietf-poly1305
password: BnGHogsywi0ZpTgSnjca2ELit5XhMnG/l9pTCiHjHTI=
udp: true
proxy-groups:
- name: "Proxy"
type: select
proxies:
- "My Shadowsocks Proxy"
- DIRECT
rules:
- DOMAIN-SUFFIX,google.com,Proxy
- DOMAIN-SUFFIX,www.myip.com,Proxy
- DOMAIN-KEYWORD,myip,Proxy
- DOMAIN-KEYWORD,2ip,Proxy
- PROCESS-NAME,firefox.exe,Proxy
- PROCESS-NAME,Guilded.exe,Proxy
# - GEOIP,RU,DIRECT
# - GEOIP,US,DIRECT
- MATCH,DIRECT
Для VMess (V2Ray)
proxies:
- name: "My V2Ray Proxy"
type: vmess
server: *.*.*.*
port: 27789
uuid: 1f829011-0a5f-4e1c-a797-57aa709ec672
alterId: 0
cipher: auto
tls: false
network: tcp
ws-opts:
path: "/"
headers:
Host: ""
proxy-groups:
- name: "Proxy"
type: select
proxies:
- "My V2Ray Proxy"
- DIRECT
rules:
- DOMAIN-SUFFIX,google.com,Proxy
- DOMAIN-SUFFIX,www.myip.com,Proxy
- DOMAIN-KEYWORD,myip,Proxy
- DOMAIN-KEYWORD,2ip,Proxy
- PROCESS-NAME,firefox.exe,Proxy
- PROCESS-NAME,Guilded.exe,Proxy
# - GEOIP,RU,DIRECT
# - GEOIP,US,DIRECT
- MATCH,DIRECT
Описание параметров конфигурации
Вот полное описание параметров конфигурации Clash for Windows, которое объединяет оба ваших конфига (для Shadowsocks и V2Ray):
Раздел proxies
proxies: Главный раздел для определения всех прокси-серверов, доступных в конфигурации.
name: Имя для идентификации прокси-сервера. Например, "My Shadowsocks Proxy" или "My V2Ray Proxy".
type: Тип прокси-сервера. Возможные значения:
ss: для Shadowsocks.
vmess: для V2Ray.
server: IP-адрес или доменное имя прокси-сервера. Например, 102.130.133.251.
port: Порт, на котором прокси-сервер принимает соединения. Например, 55223 для Shadowsocks и 27789 для V2Ray.
cipher: Алгоритм шифрования, используемый для защиты данных. Например, chacha20-ietf-poly1305 для Shadowsocks и auto для V2Ray, который выбирает наиболее подходящий метод.
password: Пароль для аутентификации на прокси-сервере. Применяется только для Shadowsocks.
uuid: Уникальный идентификатор пользователя (UUID) для аутентификации в V2Ray. Например, 1f829011-0a5f-4e1c-a797-57aa709ec672.
alterId: Значение, определяющее дополнительную идентификацию (обычно используется в V2Ray). Для V2Ray может быть 0.
tls: Логическое значение (true/false), указывающее, используется ли шифрование TLS для V2Ray. Например, false.
network: Протокол передачи данных для V2Ray, например, tcp для использования TCP-протокола.
ws-opts: Настройки для WebSocket (если используется). Включает:
path: Путь для WebSocket-соединения, например, "/".
headers: Дополнительные заголовки, такие как Host, которые могут быть необходимы для маршрутизации трафика.
Раздел proxy-groups
proxy-groups: Раздел для определения групп прокси-серверов, доступных для выбора в интерфейсе Clash.
name: Название группы прокси-серверов. Например, "Proxy".
type: Тип группы, например:
select: Позволяет пользователю вручную выбирать прокси из списка.
url-test: Автоматически выбирает лучший прокси по времени отклика (не используется в ваших конфигурациях).
proxies: Список названий прокси-серверов, входящих в эту группу. Например, список может содержать "My Shadowsocks Proxy" и "My V2Ray Proxy".
Раздел rules
rules: Этот раздел определяет правила маршрутизации, которые управляют тем, какой трафик будет проксироваться и каким образом.
DOMAIN-SUFFIX: Прокси для всех запросов к доменам с указанным суффиксом.
DOMAIN-KEYWORD: Прокси для всех запросов к доменам, содержащим указанное ключевое слово.
PROCESS-NAME: Прокси для трафика, исходящего от конкретного процесса.
GEOIP: Правило для маршрутизации трафика на основе географического положения IP-адресов.
MATCH: Правило по умолчанию, которое применяется, если ни одно из предыдущих правил не сработало.
Заключение
Эти параметры помогают настроить и очень гибко управлять проксированием трафика, обеспечивая возможность выбора между несколькими прокси-серверами и контролируя, как и какой трафик проходит через них.
Подробное описание моих правил (для общего понимания)
DOMAIN-SUFFIX,google.com,Proxy
Это правило указывает проксировать все запросы к доменам, оканчивающимся на google.com через группу прокси Proxy. Например, любые страницы, такие как www.google.com, mail.google.com, drive.google.com будут направлены через прокси.
DOMAIN-SUFFIX,www.myip.com,Proxy
Аналогично первому правилу, все запросы к www.myip.com будут проходить через прокси Proxy. Это используется для того, чтобы тестировать IP-адрес через сайт www.myip.com.
DOMAIN-KEYWORD,myip,Proxy
Это правило указывает, что любые домены, содержащие ключевое слово myip в любом месте, будут проксироваться через Proxy. Например, такие домены как myip.com, checkmyip.net и т. д. будут направлены через прокси.
DOMAIN-KEYWORD,2ip,Proxy
Здесь указано, что все домены, содержащие слово 2ip, также будут проксироваться через Proxy. Это может включать сайты вроде 2ip.ru, которые используют этот поддомен для проверки IP-адресов.
PROCESS-NAME,firefox.exe,Proxy
Это правило указывает, что все трафики, исходящие от процесса firefox.exe, должны быть направлены через прокси Proxy. Это означает, что при использовании браузера Firefox весь интернет-трафик будет проходить через прокси.
PROCESS-NAME,Guilded.exe,Proxy
Здесь указано, что весь трафик приложения Guilded.exe (клиент для геймеров, аналог Discord) будет направлен через прокси Proxy.
Закомментированные строки не действуют (так как перед ними стоит символ #), но их можно легко активировать, убрав комментарий. Сейчас они отключены, и вот их назначение:
GEOIP,RU,DIRECT
Это правило отключено, но если бы оно было активным, оно направляло бы весь трафик с геолокацией Россия (RU) напрямую (не через прокси), минуя прокси-сервер. Оно могло бы быть полезным, если вы не хотите проксировать запросы к российским сайтам.
GEOIP,US,DIRECT
Это правило, если активировать, перенаправляло бы трафик для всех IP-адресов, относящихся к США (US) напрямую, также минуя прокси. Это может быть полезно, если не требуется проксировать сайты с американскими IP.
MATCH,DIRECT
Правило MATCH является универсальным, оно действует как правило "по умолчанию". Если ни одно из вышеуказанных правил не сработало, то оно применяет это правило и направляет все оставшиеся запросы напрямую (DIRECT).
Резюме для приложений:
Firefox и Guilded: Все их трафики полностью идут через прокси.
Chrome: Нет явного правила для chrome.exe, следовательно, его трафик будет направляться напрямую, если он не попадает под доменные правила.
Сайты с доменами google.com, myip.com, 2ip.ru: Эти домены всегда будут проксироваться, независимо от браузера или процесса.
Сайты с американскими и российскими IP-адресами: Сейчас их трафик идет через прокси, так как правила для GEOIP,RU и GEOIP,US закомментированы.
Перейдем к Clash for Windows
Основная настройка софта производится на вкладке General
Для работы в режиме TUN обязательно необходимо установить Service Mode
Файлы конфигурации можно добавить с помощью Drag and Drop (перетащив в окно программы). Далее выбираем конфигурацию, согласно которой необходимо работать (выбранная отмечена зеленым)
На вкладке Proxies можно выбрать способ проксирования, в данном случае согласно правилам, описанным в файлах конфигурации
Connections отражает текущие соединения
Программа работает следующим образом: имеются два подключения DIRECT (поднимается по умолчанию для всего трафика) и PROXY (добавляется вручную), весь трафик идет через нее. Согласно способу проксированию, при необходимости правилам, определенный трафик уходит через PROXY. В режиме DIRECT на вкладке Proxies весь трафик будет проходить через локальный прокси, но не будет направляться на внешний прокси-сервер, соответственно правила игнорируются.
Итог
Firefox (проксирование всего трафика программы)
Google Chrome (проксирование доменов и по ключевым словам, согласно правилам)
Guilded (проксирование всего трафика программы)