Why Use Clash for Game Acceleration?
If you play on overseas servers — whether it is competitive shooters, MMO raids, or console-style titles on PC — you have probably felt the pain of unstable ping, rubber-banding, and sudden disconnects. A standard system proxy helps browsers, but most games open their own TCP and UDP sockets and never touch the OS proxy stack at all.
Clash (via Mihomo-based clients such as Clash Verge Rev or Mihomo Party) solves this with two capabilities that matter for gaming: TUN mode, which captures all network traffic at the virtual adapter level, and policy groups, which let you route game domains through the fastest available node automatically. Together, they give you fine-grained control over which server handles your game packets — without manually switching nodes every time you launch a title.
Before diving into configuration, make sure you have a working Clash subscription with nodes in or near your target game region. No client-side tuning can fix a node that is 300 ms away from the game server on a bad route. Latency optimization starts with node quality, then client settings refine the result.
Understanding TUN Mode for Games
Clash offers several traffic handling modes. The one most users enable day-to-day is system proxy (sometimes called Rule mode with system proxy toggled on). That mode intercepts applications configured to respect the OS proxy settings — mainly browsers and some chat apps. Game launchers and game engines typically ignore it.
TUN mode creates a virtual network interface on your machine. The Mihomo kernel installs routes so that outbound packets from games, launchers, anti-cheat services, and voice chat are forwarded through Clash before they leave your computer. Both TCP and UDP are supported, which is essential because real-time games rely heavily on UDP for position updates and hit registration.
| Mode | Captures game traffic? | Typical use |
|---|---|---|
| System proxy only | No (most games bypass it) | Web browsing, downloads |
| TUN mode | Yes — TCP and UDP | Gaming, launchers, voice apps |
| Global + TUN | Yes — all apps | Temporary troubleshooting |
192.168.0.0/16, 10.0.0.0/8) before enabling TUN, or use split-tunnel exclusions where your client supports them.
Enabling TUN Mode Step by Step
The exact menu labels vary slightly between clients, but the workflow is consistent across Mihomo-based GUIs. The examples below use Clash Verge Rev; Mihomo Party and other forks follow the same logic.
- Launch your Clash client and confirm a subscription profile is active with at least one working node.
- Open Settings and locate the TUN Mode toggle.
- Enable TUN mode. Windows will prompt for administrator approval; macOS may ask for network extension permission — accept both.
- Set the operating mode to Rule (not Global) so domestic and LAN traffic can still go direct per your rule set.
- Optionally enable System Proxy alongside TUN for browsers, or rely on TUN alone — either works once the virtual adapter is up.
- Verify the tray icon or status bar shows TUN as active (often a distinct color or label).
wintun driver bundle bundled with your client. If TUN fails to start, reinstall the client as administrator and ensure no other VPN or virtual adapter software is conflicting on the same interface index.
After TUN is running, open Task Manager or Activity Monitor and launch your game. You should see connections flowing through the Mihomo process. If the game connects but ping is unchanged, the traffic is likely hitting a slow node or a direct rule — move on to latency testing and policy groups in the next sections.
Finding and Testing Low-Latency Nodes
Node selection is the single biggest factor in gaming performance. Clash subscriptions often ship dozens of servers across regions. Picking one at random — or sticking with a default "Auto" group that tests against the wrong URL — can leave you on a congested line even when a better node exists in the same list.
Built-in latency tests
Most Clash GUI clients expose a latency test (ping button) next to each node. Click it to measure round-trip time to the proxy server itself. For gaming, you want the lowest stable reading, not the absolute minimum that spikes on retest. Run the test two or three times and discard outliers caused by background downloads.
URL-test for automatic selection
Subscriptions frequently define a url-test policy group that probes nodes against a health-check URL (often Google, Cloudflare, or a provider-specific endpoint). The group automatically selects whichever member reports the lowest latency at the interval defined in the config — typically 300 seconds.
# Example url-test group in a Clash YAML profile
proxy-groups:
- name: "Game-Fast"
type: url-test
url: http://www.gstatic.com/generate_204
interval: 300
tolerance: 50
proxies:
- "Tokyo-01"
- "Tokyo-02"
- "Seoul-01"
- "Singapore-01"
The tolerance value prevents flapping: a new node must be at least 50 ms faster before the group switches away from the current one. For gaming, a tolerance of 30–80 ms is a reasonable starting point. Too low and you hop nodes mid-match; too high and you stay on a mediocre server.
| Signal | What it tells you | Action |
|---|---|---|
| Latency test < 80 ms | Good candidate for same-region games | Pin or add to url-test group |
| Latency test 80–150 ms | Playable for casual titles | Test in-game before committing |
| Latency test > 200 ms or timeout | Poor route or blocked UDP | Remove from gaming group |
| In-game ping much higher than latency test | Game server farther than test URL | Pick node near game server region |
Policy Group Configuration for Gaming
Policy groups are the routing brain of a Clash profile. Rules at the bottom of the YAML file match domains, IP ranges, or process names and send traffic to a named group. For gaming, you typically want a dedicated group that uses url-test or fallback over your best regional nodes, then point game-related rules at that group instead of a generic "Proxy" bucket shared with streaming and social media.
Recommended group types
- url-test — Automatically picks the fastest node from a list. Best default for most gaming setups.
- fallback — Tries nodes in order until one responds. Useful when primary nodes are unreliable but you want a fixed priority order.
- select — Manual picker. Good for testing, but you must switch yourself when latency degrades.
- load-balance — Distributes sessions across nodes. Avoid for real-time games; it increases jitter and desync risk.
A practical pattern is a three-layer structure: a manual select group called GAME that lists your url-test group and a couple of hand-picked backups, the url-test group itself limited to nodes in the target region, and a DIRECT fallback for local patch CDN traffic defined in rules.
proxy-groups:
- name: "GAME"
type: select
proxies:
- "Game-Fast"
- "Tokyo-01"
- "DIRECT"
- name: "Game-Fast"
type: url-test
url: http://www.gstatic.com/generate_204
interval: 300
tolerance: 50
proxies:
- "Tokyo-01"
- "Tokyo-02"
- "Seoul-01"
rules:
- DOMAIN-SUFFIX,steamserver.net,GAME
- DOMAIN-SUFFIX,riotgames.com,GAME
- DOMAIN-SUFFIX,battle.net,GAME
- DOMAIN-KEYWORD,game,GAME
- MATCH,Proxy
In Clash Verge Rev, you can edit groups visually on the Proxies tab if your subscription exposes them, or add overrides under Profiles → Edit → Merge to inject custom groups without modifying the remote subscription file directly. Overrides survive subscription updates as long as you keep the merge snippet in place.
Game-JP and Game-US — if you play titles on multiple regional servers. Switch the active group in the GUI before launching instead of maintaining one oversized list that tests poorly across continents.
Game-Specific Routing Rules
Domain rules are the cleanest way to steer launcher and matchmaking traffic. Major publishers publish CDN and API hostnames that are stable enough to list in a profile. Combine domain suffix rules with IP-CIDR rules only when necessary, because game server IPs rotate frequently and hard-coded CIDR blocks go stale after patches.
Common domains worth routing through your gaming group include Steam (steampowered.com, steamserver.net), Epic (epicgames.com), Riot (riotgames.com, pvp.net), Blizzard (battle.net), and EA (ea.com, origin.com). Community-maintained rule sets such as Loyalsoldier's geo rules can provide a baseline; trim or override entries that send patch downloads through slow proxy paths when a direct CDN mirror is faster.
# Steam — gameplay and matchmaking
- DOMAIN-SUFFIX,steamserver.net,GAME
- DOMAIN-SUFFIX,stun.playstation.net,GAME
# Riot titles
- DOMAIN-SUFFIX,riotgames.com,GAME
- DOMAIN-SUFFIX,pvp.net,GAME
# Keep local patch CDN direct when possible
- DOMAIN-SUFFIX,dl.steam.clan.cloudflare.com,DIRECT
# Private networks — always direct
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
Some anti-cheat systems flag virtual adapters or multiple hops. If a title refuses to start with TUN enabled, try enabling Mixin / Tun stack options such as gVisor vs system stack in Mihomo advanced settings, or add the game executable to a bypass list if your client supports process-based rules. Always comply with the game's terms of service — this guide covers network routing only.
Voice chat and companion apps
Discord, TeamSpeak, and in-game voice often use UDP on unpredictable ports. With TUN mode active, they follow the same rules as the game unless you add explicit process or domain exceptions. If voice quality degrades, route voice apps through a separate low-latency select group rather than sharing a load-balanced pool with download traffic.
Frequently Asked Questions
Do I need TUN mode for gaming with Clash?
For PC games, yes in the vast majority of cases. System proxy alone does not capture game UDP packets. TUN mode is the reliable way to ensure launcher authentication, matchmaking APIs, and in-game sockets all pass through your chosen node and policy group.
Which policy group type is best for gaming?
Use url-test for automatic low-latency selection, optionally wrapped in a manual select group for quick overrides. Use fallback when you have one primary node and several cold backups. Avoid load-balance for competitive play because it spreads connections and increases ping variance.
Why is my ping still high after enabling TUN mode?
Check three things: the node is in the wrong geographic region for the game server, the subscription node does not relay UDP cleanly, or a rule sends game traffic to DIRECT or a slow general proxy group. Re-run latency tests, switch to a region-matched node, and inspect the connection log in your client to see which rule matched.
Can Clash reduce ping below my normal ISP route?
Clash cannot break the speed of light. It can only improve routing when your ISP path to the game region is poor and a proxy provider has a better peering path. If your ISP already reaches Tokyo in 30 ms, adding a proxy hop will add latency, not remove it. Use acceleration when cross-border routing is the bottleneck.
Does TUN mode affect other applications while I play?
Yes — all traffic that matches your rules goes through Clash. Rule mode keeps domestic sites and LAN devices direct if your rule set is configured correctly. Pause TUN or switch to direct mode when you finish gaming if you prefer not to route background apps through the tunnel.
Compared with one-click "game booster" utilities that ship opaque routing and limited protocol support, Clash gives you transparent YAML rules, UDP-capable TUN forwarding, and url-test groups you can tune per title. VPN apps that force all traffic through a single server often increase jitter for games, while browser-only extensions cannot touch launcher traffic at all. Clash sits in the middle: deep enough to capture game packets, flexible enough to optimize per region, and open enough to audit every rule in your profile.