Loopback

Loopback is an outbound protocol. It can send traffics through corresponding outbound to routing inbound, thus rerouting traffics to other routing rules without leaving Xray-core.

OutboundConfigurationObject

{
  "inboundTag": "TagUseAsInbound"
}

inboundTag: string

Use as an inbound tag for routing.

This tag can be used as inboundTag in routing rules, all traffics going through this outbound can be rerouted with routing rules with corresponding inbound tag.

How to use?

If you need to do some more detailed routing for traffics that have been routed by routing rules, like splitting routed traffics to TCP traffics and UDP traffics and send them to different outbounds, this can be done with loopback outbound.

{
  "outbounds": [
    {
      "protocol": "loopback",
      "tag": "need-to-split",
      "settings": {
        "inboundTag": "traffic-input" // This tag will be used as the inboundTag inside the RuleObject 
      }
    },
    {
      "tag": "tcp-output",
      // protocol, settings, streamSettings etc.
    },
    {
      "tag": "udp-output",
      // protocol, settings, streamSettings etc.
    }
  ],
  "routing": {
    "rules": [
      {
        "inboundTag": ["traffic-input"], // tag set in the loopback outbound setting
        "network": "tcp",
        "outboundTag": "tcp-output"
      },
      {
        "inboundTag": ["traffic-input"], // tag set in the loopback outbound 
        "network": "udp",
        "outboundTag": "udp-output"
      }
    ]
  }
}