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 是一个环回出站,用于将流量重新送回 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"
}
]
}
}
```
:::