Skip to content

Outbound groups ​

A group is an outbound that picks one of other outbounds, its members, for each connection. Core builds it; it is not a proxy protocol and has no server of its own. Routing sends traffic to the group by its tag, like to any outbound.

TypePicksMeasures
urltestthe member whose probe answered fastestyes
fallbackthe first member in list order whose probe passedyes
selectorthe member a person chose through an APIno

Structure ​

json
{
  "outbounds": [
    {
      "tag": "auto",
      "protocol": {
        "type": "urltest",
        "settings": { "members": ["server-a", "server-b"] }
      }
    },
    {
      "tag": "proxy",
      "protocol": {
        "type": "selector",
        "settings": { "members": ["auto", "server-a", "direct"] }
      }
    }
  ]
}

A group has only tag and protocol: no server, transport, dns_server, muxcool or proxy_request_timing.

Shared behaviour ​

  • members lists outbound tags. A member may be another group, so a selector can choose between a urltest and a single server. check refuses a group that contains itself, directly or through other groups.
  • A group carries only the networks every member carries: one TCP-only member makes the group TCP-only.
  • A UDP session keeps the member it got first; existing connections never move.
  • urltest and fallback measure members with a probe that starts with run, never with check.
  • Statistics count a connection under the group and under the member that carried it.