Refine loopback

This commit is contained in:
Meow
2026-06-15 06:33:09 +08:00
parent d93ce618eb
commit f37805efcd
3 changed files with 27 additions and 120 deletions
+9 -40
View File
@@ -1,6 +1,6 @@
# Loopback
Loopback - это исходящий протокол данных, который перенаправляет данные, прошедшие через это исходящее соединение, обратно на вход маршрутизатора, что позволяет повторно обработать данные по правилам маршрутизации, не покидая Xray-core.
Loopback — это outbound с возвратом трафика, который отправляет трафик обратно в `routing` для повторной обработки, не выводя его за пределы ядра.
## OutboundConfigurationObject
@@ -23,46 +23,15 @@ Loopback - это исходящий протокол данных, которы
> `inboundTag`: string
Идентификатор входящего протокола, используемый для повторной маршрутизации.
Тег входящего соединения, используемый при повторном входе в routing.
Этот идентификатор может использоваться в маршрутизации для `inboundTag`, указывая, что данные из этого исходящего соединения могут быть повторно обработаны соответствующими правилами маршрутизации.
Этот тег можно использовать в routing как `inboundTag`; это означает, что данные из этого outbound снова войдут в routing с этим тегом и будут повторно обработаны соответствующими правилами.
### Как использовать?
::: tip Применение
Если необходимо, чтобы трафик, уже разделенный по правилам маршрутизации, был перенаправлен другими правилами маршрутизации (например, трафик TCP и UDP, разделенный одними и теми же правилами маршрутизации, должен идти через разные исходящие соединения), можно использовать исходящее соединение `loopback`.
- В местах, где можно указать только outbound и нельзя напрямую задать `balancerTag`, Loopback позволяет косвенно использовать балансировщик.<br>
Например, `proxySettings` и `dialerProxy` в цепочках прокси, а также `fallbackTag` в балансировке нагрузки.
- Если трафик уже был разделен один раз, его можно дополнительно детализировать по другим условиям.<br>
Например, TCP-трафик и UDP-трафик, разделенные одной и той же группой правил routing, можно направить в разные outbound.
```json
{
"outbounds": [
{
"protocol": "loopback",
"tag": "need-to-split",
"settings": {
"inboundTag": "traffic-input" // Этот тег используется ниже для inboundTag в RuleObject
}
},
{
"tag": "tcp-output"
// Настройки protocol, settings, streamSettings и т. д.
},
{
"tag": "udp-output"
// Настройки protocol, settings, streamSettings и т. д.
}
],
"routing": {
"rules": [
{
"inboundTag": ["traffic-input"], // Тег, установленный в loopback
"network": "tcp",
"outboundTag": "tcp-output"
},
{
"inboundTag": ["traffic-input"], // Тег, установленный в loopback
"network": "udp",
"outboundTag": "udp-output"
}
]
}
}
```
:::