Skip to content

Routing

Loren Eteval edited this page Aug 28, 2026 · 1 revision

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.

Where routing is selected

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.

Built-in modes

Bypass Mainland China

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.

Global

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

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 support

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.

Named Xray routing profiles

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.

Routing and TUN safety

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.

Custom-rule guidance

  • 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.

Troubleshooting

The routing selector is missing

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.

My named Xray routing profile is missing

Open Edit Routing... and verify that the profile is enabled. Disabled profiles remain stored but are omitted from Home.

Changing routing disconnected me

A routing change while connected deliberately starts a reconnection. The running core cannot be assumed to adopt a different generated configuration in place.

Custom works differently between backends

Custom is backend-owned. Xray consumes an Xray routing object; Hysteria 1 consumes its ACL/MMDB configuration. They are not interchangeable formats.

A direct rule fails with TUN enabled

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.

See also

Clone this wiki locally