Skip to content

Proxy groups

A group gives routing rules a named outbound choice. Here Proxy lets you select automatic latency-based routing or direct access. Define Subscription under proxy providers.

yaml
proxy-groups:
  - name: Proxy
    type: select
    proxies: [Auto, DIRECT]
  - name: Auto
    type: url-test
    use: [Subscription]
    url: https://www.gstatic.com/generate_204
    interval: 300
    tolerance: 50
rules:
  - MATCH,Proxy

Selection types

typeSelectionConfiguration
selectChoose a node or group in the appproxies or use
url-testSelect using measured latencyMembers, url, interval; tolerance is the switching margin in milliseconds
fallbackFirst healthy member in orderMembers, url, interval; put the preferred node first
load-balanceDistribute connectionsMembers, url, interval, strategy

Load balancing supports consistent-hashing, round-robin, and sticky-sessions for hash-based allocation, rotation, and session affinity. Use a node's dialer-proxy for chained connections.

Membership and health checks

FieldHow to configure it
nameUnique group name referenced by rules and groups
proxiesList of node names, other groups, or built-ins such as DIRECT; avoid cycles
useList of proxy-provider names
include-all-proxies / include-all-providersInclude all nodes or providers; include-all includes both
filter / exclude-filterInclude or exclude imported candidates by name, using regular expressions
urlHealth-check URL reachable through the tested node
interval / timeoutCheck interval in seconds; timeout in milliseconds
lazyAllows unused groups to skip scheduled checks when enabled
expected-statusExpected HTTP status, such as 204 or 200/204
disable-udpDisable UDP for this group

Set health-check explicitly on providers. A group with an explicit url can also register checks for providers referenced through use; existing check URLs, intervals, and lazy affect scheduling.

Platform behavior and field status

Health checks depend on lazy behavior, system suspension, and resources; an interval does not guarantee a complete check every time. Legacy relay groups are removed; use dialer-proxy for chaining.

1 fields shown

FieldTypeiOSmacOStvOSPlatform notes
proxy-groupsListSupportedSupportedSupportedSupports select, url-test, fallback, and load-balance. Fallback chooses healthy entries in order; checks depend on lazy settings and system runtime conditions.

Reference: mihomo.