-
Notifications
You must be signed in to change notification settings - Fork 117
Routing
Routing controls how a supported proxy backend handles traffic after it reaches the core. It is different from both System Proxy, which directs compatible applications to a local proxy, and TUN Mode, which captures traffic through a network interface.
On Home, the routing selector appears next to the connection button when the selected profile's runtime plugin provides routing choices. If a backend exposes no routing capability, the selector is hidden.
The selected routing value is persisted. Changing it while connected requests a controlled reconnection so the new policy can be applied consistently.
Traffic matching the backend's mainland-China rules is sent directly; other traffic is proxied. The exact implementation is backend-specific.
For Xray, Furious builds rules using its bundled geo assets. The generated policy blocks the bundled advertising category, sends Chinese domains and private/Chinese IP ranges directly, and sends remaining traffic through the proxy.
For Hysteria 1, Furious supplies the bundled ACL and MMDB data used by that runtime.
No bypass policy is added by Furious. Traffic handled by the proxy core uses the proxy path unless the profile's own configuration establishes another behavior.
Custom means “use the routing configuration stored in this profile,” not a global named routing profile.
For Xray, the profile's raw routing object is used. For Hysteria 1, the profile's own ACL/MMDB fields are used.
| Backend | Routing choices exposed by Furious |
|---|---|
| Xray-core | Bypass Mainland China, Global, Custom, and enabled named Xray routing profiles |
| Hysteria 1 | Bypass Mainland China, Global, Custom |
| Hysteria 2 | No Home routing selector |
| External Core | No Home routing selector |
Protocol and backend are related but not identical: Xray handles VMess, VLESS, Shadowsocks, Trojan, and SOCKS profiles, so those profiles receive Xray's routing capabilities.
Open Settings, find the Xray-core plugin section, and choose Edit Routing....
The routing-profile editor lets you:
- add a named profile;
- preview its generated JSON;
- rename it;
- delete it;
- choose a domain strategy;
- enable or disable it.
Only enabled named profiles appear in the Home routing selector. Their remarks are user text and are displayed literally rather than passed through application translation.
Double-click a routing profile to edit its ordered rules. A rule can match supported Xray fields such as domains, destination or source IPs, ports, networks, inbound tags, users, processes, and protocols, then select an outbound or balancer. Rule order matters because Xray evaluates the routing configuration in order.
Use Preview before connecting to confirm the generated object, especially after changing an outbound tag or a list of domains/IPs.
Application-managed tun2socks sends captured traffic to a local SOCKS listener. A routing rule that sends part of that same captured flow directly through the ordinary host path can feed it back into the TUN interface and create a loop.
For this reason, Furious rejects unsafe combinations such as:
- Xray Bypass Mainland China while global TUN is enabled but Xray native TUN is not being used;
- Hysteria 1 Bypass Mainland China while global TUN uses application tun2socks.
Use Global, use a backend's supported native TUN mode, or redesign the route ownership so direct traffic cannot re-enter application TUN. Do not bypass this validation by manually editing generated runtime data.
See TUN Mode for the complete ownership matrix.
- Start with Global to verify that the server and credentials work.
- Add one rule group at a time and reconnect after each meaningful change.
- Keep destination lists narrow until their behavior is confirmed.
- Confirm that each referenced outbound or balancer exists in the active Xray configuration.
- Remember that DNS strategy affects whether domain rules can also be evaluated as IP rules.
- Keep a raw JSON backup before making large changes.
- Use the Log page to distinguish a core configuration rejection from an ordinary connectivity failure.
The selected profile's runtime does not advertise routing options, or no valid profile is selected. Hysteria 2 and External Core intentionally do not expose the selector.
Open Edit Routing... and verify that the profile is enabled. Disabled profiles remain stored but are omitted from Home.
A routing change while connected deliberately starts a reconnection. The running core cannot be assumed to adopt a different generated configuration in place.
Custom is backend-owned. Xray consumes an Xray routing object; Hysteria 1 consumes its ACL/MMDB configuration. They are not interchangeable formats.
Check whether the connection uses application tun2socks. Direct routing and application-managed TUN can form a loop, so Furious blocks known-unsafe built-in combinations.