mirror of
https://github.com/XTLS/Xray-docs-next.git
synced 2026-09-22 22:38:05 +03:00
Refine loopback
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Loopback
|
||||
|
||||
Loopback 是个出站数据协议,其作用为将经该出站传出的数据重新送入路由入站,以达到数据无需离开 Xray-core 即可再次被路由处理的效果。
|
||||
Loopback 是一个环回出站,用于将流量重新送回 routing 处理,而无需离开核心。
|
||||
|
||||
## OutboundConfigurationObject
|
||||
|
||||
@@ -23,46 +23,15 @@ Loopback 是个出站数据协议,其作用为将经该出站传出的数据
|
||||
|
||||
> `inboundTag`: string
|
||||
|
||||
用于重新路由的入站协议标识。
|
||||
用于重新进入路由时的入站标识。
|
||||
|
||||
该标识可以在路由中用于 `inboundTag` ,表示该出站中的数据可以被对应的路由规则再次处理。
|
||||
该标识可以在路由中用于 `inboundTag`,表示该出站中的数据会以这个 tag 重新进入路由,并被对应的规则再次处理。
|
||||
|
||||
### 如何使用?
|
||||
::: tip 用途
|
||||
|
||||
如果需要将已经通过路由规则分流过的流量再由其它路由规则做更细致的分流,比如由同一组路由规则分流后的 TCP 流量和 UDP 要走不同的出站,则可以使用 `loopback` 出站完成。
|
||||
- 在只能指定出站、不能直接写 `balancerTag` 的地方,借由 Loopback 间接使用 balancer<br>
|
||||
例如链式代理中的 `proxySettings`、`dialerProxy` 和负载均衡中的 `fallbackTag`
|
||||
- 流量已经分流过一次后,再按更多条件继续细分<br>
|
||||
比如由同一组路由规则分流后的 TCP 流量和 UDP 要走不同的出站
|
||||
|
||||
```json
|
||||
{
|
||||
"outbounds": [
|
||||
{
|
||||
"protocol": "loopback",
|
||||
"tag": "need-to-split",
|
||||
"settings": {
|
||||
"inboundTag": "traffic-input" // 该 tag 在下方用于 RuleObject 的 inboundTag
|
||||
}
|
||||
},
|
||||
{
|
||||
"tag": "tcp-output"
|
||||
// protocol, settings, streamSettings 之类的设置
|
||||
},
|
||||
{
|
||||
"tag": "udp-output"
|
||||
// protocol, settings, streamSettings 之类的设置
|
||||
}
|
||||
],
|
||||
"routing": {
|
||||
"rules": [
|
||||
{
|
||||
"inboundTag": ["traffic-input"], // loopback 设定的 tag
|
||||
"network": "tcp",
|
||||
"outboundTag": "tcp-output"
|
||||
},
|
||||
{
|
||||
"inboundTag": ["traffic-input"], // loopback 设定的 tag
|
||||
"network": "udp",
|
||||
"outboundTag": "udp-output"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
:::
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Loopback
|
||||
|
||||
Loopback is an outbound data protocol. Its function is to re-inject data sent through this outbound back into the routing inbound, allowing the data to be processed by the routing system again without leaving Xray-core.
|
||||
Loopback is a loopback outbound used to send traffic back to routing for further processing without leaving the core.
|
||||
|
||||
## OutboundConfigurationObject
|
||||
|
||||
@@ -23,46 +23,15 @@ Loopback is an outbound data protocol. Its function is to re-inject data sent th
|
||||
|
||||
> `inboundTag`: string
|
||||
|
||||
The inbound protocol identifier used for re-routing.
|
||||
The inbound tag used when re-entering routing.
|
||||
|
||||
This identifier can be used for `inboundTag` in routing rules, indicating that data from this outbound can be processed again by the corresponding routing rules.
|
||||
This tag can be used as `inboundTag` in routing, indicating that data from this outbound will re-enter routing with this tag and be processed again by the corresponding rules.
|
||||
|
||||
### How to use?
|
||||
::: tip Uses
|
||||
|
||||
If you need to perform finer-grained splitting on traffic that has already been split by routing rules—for example, if TCP traffic and UDP traffic split by the same group of routing rules need to go through different outbounds—you can use the `loopback` outbound to achieve this.
|
||||
- In places where only an outbound can be specified and `balancerTag` cannot be written directly, Loopback lets you use a balancer indirectly.<br>
|
||||
For example, `proxySettings` and `dialerProxy` in chained proxies, and `fallbackTag` in load balancing.
|
||||
- After traffic has already been routed once, it can be further subdivided using more conditions.<br>
|
||||
For example, TCP traffic and UDP traffic split by the same set of routing rules can be sent to different outbounds.
|
||||
|
||||
```json
|
||||
{
|
||||
"outbounds": [
|
||||
{
|
||||
"protocol": "loopback",
|
||||
"tag": "need-to-split",
|
||||
"settings": {
|
||||
"inboundTag": "traffic-input" // This tag is used for the inboundTag of RuleObject below
|
||||
}
|
||||
},
|
||||
{
|
||||
"tag": "tcp-output"
|
||||
// settings like protocol, settings, streamSettings
|
||||
},
|
||||
{
|
||||
"tag": "udp-output"
|
||||
// settings like protocol, settings, streamSettings
|
||||
}
|
||||
],
|
||||
"routing": {
|
||||
"rules": [
|
||||
{
|
||||
"inboundTag": ["traffic-input"], // tag set in loopback
|
||||
"network": "tcp",
|
||||
"outboundTag": "tcp-output"
|
||||
},
|
||||
{
|
||||
"inboundTag": ["traffic-input"], // tag set in loopback
|
||||
"network": "udp",
|
||||
"outboundTag": "udp-output"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
:::
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
:::
|
||||
|
||||
Reference in New Issue
Block a user