Troubleshooting About 8 min

System proxy vs TUN mode: what’s the difference for beginners?

In v2rayN, system proxy and TUN are often discussed together. Both send traffic through a proxy, but coverage, complexity, and troubleshooting differ. Using the right mode first can cut half your debugging time.

Why are there two modes?

Not every app goes online the same way. Some honor system proxy settings; others use their own network stack and ignore proxies; some run as services or with elevated rights that a simple proxy toggle cannot reach. Desktop clients therefore usually offer at least two approaches: stick with system proxy when it is enough, or use TUN-style capture for apps that ignore proxy settings.

Once you see that, you stop asking which mode is “absolutely stronger” and start asking whether your apps respect system proxy. Framed by scenario, the answer becomes clear.

System proxy: the first choice for most people

System proxy points the OS proxy settings at the client. Browsers, many desktop apps, and CLI tools follow that setup. Upsides are clear: easy to enable, easy to understand, easier to debug. Confirm “node works + system proxy is on,” and you already cover most everyday browsing.

Limits are equally clear: if an app ignores system proxy, you get “browser works, this app does not.” Do not assume every node is down—ask whether coverage is incomplete. For beginners, that signal is useful: prove the basic path first, then decide whether stronger capture is needed.

TUN mode: more thorough, also heavier

TUN captures traffic closer to the OS network layer (for example via a virtual adapter), so it reaches apps that ignore system proxy. It fits cases that need a more global feel or known leaky apps. The cost is higher complexity and more environmental variables: permissions, compatibility, exclude rules, and conflicts with other network tools.

In short, TUN is not an “advanced badge”—it is a tool when system proxy is not enough. If you only browse, mail, and use common apps, enabling TUN first may add little benefit while expanding the debugging surface.

How should beginners choose?

  1. After the first install and node import, enable system proxy first
  2. Verify access in a browser
  3. If only a few apps bypass the proxy, then consider switching to TUN
  4. Before switching, close other proxy/VPN tools that may conflict
  5. If issues remain after switching, recheck nodes and subscriptions—do not keep flipping modes forever

The key is always having a verified working baseline. Without one, TUN and system proxy are just switching lights in the dark.

How is this different on Android?

On Android, v2rayNG / v2flyNG mainly work through the system VPN—closer to “authorize, then the system takes over”—with per-app proxy as well. Phone users rarely need Windows system-proxy jargon first, but the principle is the same: confirm permission and connectivity, then decide which apps proxy and which go direct.

Across devices, do not copy phone per-app rules onto desktop TUN, and do not treat a successful desktop system proxy as proof that Android VPN permission is already granted. Switches live in different places, but the order stays: connect first, refine later.

When is it worth upgrading from system proxy to TUN?

A practical test: system proxy already works reliably, but a must-have app never uses the proxy, and you have ruled out node failure. Then enable TUN with a clear goal and easy before/after comparison. Conversely, if even the browser fails under system proxy, do not jump to TUN—go back to nodes, subscriptions, permissions, and conflicting software.

Common misconceptions

Myth 1: TUN is always faster. Speed depends mainly on nodes and the path, not the mode name. Myth 2: stacking multiple proxy tools. Rules often fight each other and nothing stays stable. Myth 3: only switching modes when you cannot connect. Failed subscriptions, dead nodes, or wrong system time will not be fixed by mode hopping.

A more practical approach is to split the problem: confirm the client and subscription first, then mode and permissions, and only then tune rules. After installing the latest client from the Download Center, view system proxy and TUN this way—they are not rival camps, just two screwdrivers in the same toolbox.

Bottom line: beginners default to system proxy; enable TUN when a specific app clearly leaks; always keep nodes working first. With the right mode, v2rayN on desktop feels cleaner, and learning routing later is smoother.