Traffic routing depends on identifiable destination details. If domains, resolved addresses and the traffic capture path do not line up, a correctly written rule may still fail to match.
Routing and DNS
routing rules
Selects an outbound for each request based on conditions such as domain, IP, port, network type or inbound tag. Rules are commonly checked in list order; the first valid match determines the outbound. Conditions within a rule generally all need to match. When troubleshooting, check rule order first, then verify outboundTag—not just the domain spelling.
"type": "field"
Routing and DNS
GeoIP and GeoSite
GeoIP classifies IP address lists, while GeoSite classifies domain lists; both can reduce repetitive routing rules. Category names, included entries and update status depend on the data files actually loaded, so a category name does not guarantee coverage of every target. Domain lists and IP lists are not interchangeable. If a rule does not match, check both the resolved address and the data source.
"ip": ["geoip:private"]
Routing and DNS
Traffic routing
Directing different requests through different outbounds according to rules, such as proxying specific domains and connecting to LAN addresses directly. The system proxy determines whether some app traffic enters the client; routing determines where those requests go. They are separate settings. Client mode names are just entry points to rule combinations, so check the generated routing rules to understand what they do.
Routing and DNS
DNS and domainStrategy
DNS resolves domains to addresses. In routing, domainStrategy determines when to try resolution while evaluating rules. IPIfNonMatch typically tries matching the resolved IP after the domain fails to match; IPOnDemand can trigger resolution when an IP rule is encountered. A field with the same name elsewhere may mean something different, so read it in the context of its containing object.
"domainStrategy": "IPIfNonMatch"
Routing and DNS
FakeDNS
The mechanism first returns a mapped address to an app, then lets the core use that mapping to recover the original domain for further processing and routing. These are not the target website's real addresses, so DNS requests, traffic capture and inbound detection must work together. Enabling one option without capturing the relevant traffic may leave the app with a mapped address it cannot connect to.
Routing and DNS
DNS leak
A DNS leak occurs when queries do not follow the intended resolution path—for example, when they are expected to go through the client but are instead resolved by the system or browser. Check system DNS, encrypted DNS in the browser, app caches and the client's built-in resolver separately; one test page is not enough. Determine whether a query deviated from the intended path based on a clearly defined network policy.
Routing and DNS
TUN mode
A way to capture IP traffic through a virtual network interface and routing settings, useful for apps that do not follow the system proxy. TUN is not a proxy protocol and does not replace remote node or DNS configuration; it may also rely on additional components called by the client. If LAN access stops working after enabling it, check route exclusions, permissions and DNS capture settings.