RU Routing: Add process

This commit is contained in:
iambabyninja
2026-01-10 16:06:26 +05:00
parent d6824f1315
commit 7af1a5fac6
+20
View File
@@ -63,6 +63,7 @@
"inboundTag": ["tag-vmess"],
"protocol": ["http", "tls", "quic", "bittorrent"],
"attrs": { ":method": "GET" },
"process": ["curl"],
"outboundTag": "direct",
"balancerTag": "balancer",
"ruleTag": "rule name"
@@ -186,6 +187,25 @@ JSON-объект, где ключи и значения являются стр
- Проверка HTTP Path: `{":path": "/test"}`
- Проверка Content Type: `{"accept": "text/html"}`
> `process`: \[string\]
Если соединение поступает с локальной машины, выполняется сопоставление по процессу. Если соединение не с локальной машины, сопоставление сразу считается неуспешным. Поддерживаются только Windows и Linux.
Эта опция представляет собой массив, где каждый элемент имеет три режима сопоставления:
1. Не содержит слешей: сопоставление по имени процесса.
2. Содержит слеш, но не заканчивается слешем: сопоставление по абсолютному пути.
3. Содержит слеш и заканчивается слешем: сопоставляется папка; все процессы в этой папке считаются совпавшими.
Примечание:
- Все опции чувствительны к регистру.
- В Windows для обозначения путей используется обратный слеш `\`, но здесь унифицировано требование использовать прямой слеш `/`, например: `C:/Windows/System32/curl.exe`. Это связано с тем, что обратный слеш в JSON воспринимается как символ экранирования, что неудобно (если только вы не решите писать обратные слеши дважды — в таком случае они тоже будут распознаны корректно).
- При сопоставлении по имени процесса ядро автоматически удаляет суффикс `.exe`, поэтому `["curl"]` сработает для curl как в Linux, так и в Windows. Однако при использовании абсолютного пути суффикс `.exe` опускать нельзя.
Специальный синтаксический сахар:
- `self/` используется для сопоставления с текущим процессом ядра, что очень полезно для предотвращения петель маршрутизации (routing loops).
- `xray/` будет заменено на абсолютный путь, где находится текущее ядро; это обеспечит совпадение со всеми процессами Xray, запущенными из этого бинарного файла.
> `outboundTag`: string
Соответствует тегу исходящего канала.