Иногда маршрутизировать нужно по тому, какая программа общается, а не с каким сайтом: Telegram всегда через прокси, торрент-клиент всегда напрямую. Для этого и существуют правила PROCESS-NAME.
Синтаксис
rules:
- PROCESS-NAME,Telegram.exe,Select
- PROCESS-NAME,qbittorrent.exe,DIRECT
- PROCESS-NAME,steam.exe,DIRECT
- PROCESS-NAME,WeChat.exe,DIRECT
Пишите полное имя исполняемого файла с .exe; регистр не важен. Имя ищется в Диспетчере задач → Подробности, либо в колонке Process на Connections в режиме TUN.
Условие: трафик должен нести идентификатор процесса
Clash сопоставляет соединения процессам по системной таблице соединений, и надёжность зависит от способа перехвата:
- Режим TUN: надёжно. Трафик берётся на сетевом уровне, владелец соединения определяется стабильно. Нужны правила процессов - включайте TUN.
- Системный прокси: обычно работает, но без гарантий. Соединения приходят через loopback; многопроцессные приложения и службы иногда не определяются - тогда правило пропускается, и трафик падает на следующие.
Практические рецепты
- BitTorrent напрямую: P2P через прокси нарушает правила большинства провайдеров и жжёт трафик:
PROCESS-NAME,qbittorrent.exe,DIRECT. - Программа в конкретный регион: со специальной группой, например
PROCESS-NAME,game.exe,Japan. - Местный софт скопом напрямую: экономит трафик и не дразнит антифрод.
Оговорки
- Правила процессов ставьте выше доменных, если они должны побеждать.
- Браузер - один процесс: разделить «разные сайты внутри браузера» правилом процесса нельзя, это территория доменных правил.
- UWP-приложения могут отчитываться общим именем хост-процесса - цель из них плохая.