2
Routing
Loren Eteval edited this page 2026-09-19 14:39:58 +08:00
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 active profiles runtime plugin provides routing choices. While connected, the running profile takes precedence over the saved active profile. 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 and routing tray menu. 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.

Reorder rules by dragging them or using the move actions and Ctrl+Up/Ctrl+Down shortcuts. Rule edits and reordering are saved as you work; closing the rules window does not roll them back. Use Preview before connecting to confirm the generated object, especially after changing an outbound tag or a list of domains/IPs.

When you modify the selected named routing while connected, Furious offers to reconnect so the changes can take effect. For rule edits, this notice is evaluated when you close the rules window, after comparing the resulting rules with those at opening. Choosing No keeps the running configuration until the next connection.

If the selected named routing is disabled or deleted, Furious persists an available fallback, normally Bypass Mainland China for Xray, and updates Home and the tray menu. Re-enabling the named routing makes it available again but does not automatically select it. Select it explicitly to use it again. If you decline reconnection, the running core still uses its previous configuration even though the selector already shows the choice for the next connection.

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 active profiles runtime does not advertise routing options, or no valid profile is activated. 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