Studying overseas often means living between two network environments. Your university portal, classroom tools, research databases, and international websites need a stable local connection, while Chinese entertainment, shopping, messaging, and banking apps may work better through a route back to China. Sending everything through one proxy is rarely ideal: it can add latency to campus services, trigger security checks on banking websites, and make ordinary international traffic slower. A better approach is smart routing with Clash or Mihomo, where Chinese services use a China-appropriate proxy group and university or local services go directly.
This guide explains how students abroad can build a practical Clash setup for China app access without turning the entire device into a proxy. It covers the routing model, DNS and TUN considerations, domain rules, app-specific limitations, dorm and campus network troubleshooting, and a safe testing process. The examples use Mihomo-compatible YAML syntax, but the same concepts can be adapted to Clash Verge Rev, Clash for Windows alternatives, ClashX, Clash for Android, and other clients that expose compatible configuration fields.
Design the Routing Model Before Editing YAML
The most reliable configuration begins with a clear traffic policy rather than a long list of copied rules. Think of your device as having at least three traffic categories:
- China services: Chinese video, music, shopping, social, cloud storage, game, and banking services that may require a China exit IP or perform better through a China node.
- International and campus services: university portals, library resources, Microsoft 365, Google Workspace, GitHub, research platforms, and websites that should normally use the direct connection or an international group.
- Private and local traffic: localhost, dorm devices, printers, campus subnets, routers, and private IP ranges that should not be sent to a remote proxy.
This separation prevents the most common mistake: using a “global proxy” mode when only a small number of China-bound destinations need special handling. In Clash, the final decision is usually made by the rules list from top to bottom. The first matching rule wins, so specific application rules should appear before broad rules such as GEOIP,CN or MATCH.
A useful group design has three selectable outcomes. China-Route contains one or more suitable China nodes, International contains your normal overseas nodes if needed, and DIRECT is used for local or campus traffic. If your subscription already provides proxy groups, you can reference the existing group instead of creating duplicate groups. The group names in rules must exactly match the names declared in proxy-groups.
proxy-groups: - name: China-Route type: select proxies: - cn-node-01 - cn-node-02 - DIRECT - name: International type: select proxies: - intl-node-01 - intl-node-02 - DIRECT rules: - DOMAIN-SUFFIX,example-campus.edu,DIRECT - DOMAIN-SUFFIX,example.cn,China-Route - GEOIP,PRIVATE,DIRECT,no-resolve - MATCH,International
The domain names above are placeholders. Replace them with domains from services you actually use, and do not assume that every Chinese website requires a China route. Some services use global content delivery networks, international account domains, or separate API endpoints. A rule should be added because testing shows a routing problem, not simply because the company is based in China.
Prepare Nodes, DNS, and TUN Mode
A China routing rule cannot help if the selected node is not suitable. First confirm that the subscription contains a node with a China exit location and that the node is permitted for your intended service. In the Clash dashboard, test the node directly and check the reported latency. Latency is useful, but it does not prove that an app will work: a node may respond quickly to a basic HTTP test while failing a service’s authentication, streaming, or regional checks.
Students often use several clients on different platforms. Desktop clients such as Clash Verge Rev or Mihomo Party can normally handle system proxy mode and TUN mode. Mobile clients may use a local VPN interface instead. The terminology differs, but the objective is the same: applications must be able to hand their connections to Clash for rule matching.
| Mode | Coverage | Advantages | Limitations |
|---|---|---|---|
| System proxy | HTTP-aware applications | Simple, low overhead, easy to disable | Some games, banking apps, and background processes ignore it |
| TUN or VPN mode | Most TCP and UDP traffic | Better app coverage and rule enforcement | Needs permissions; can conflict with campus VPNs or security software |
| Rule-based profile | Domains, IPs, and network classes | Precise split routing | Requires correct DNS and maintained rules |
For a laptop, begin with system proxy mode. Once browser traffic works, enable TUN only if an application ignores the system proxy. On Android, VPN mode is usually necessary for apps that do not honor HTTP proxy settings. On macOS, check whether another VPN, content filter, or endpoint security product is already controlling the network extension. Two virtual network services competing for DNS or default routes can create intermittent failures that look like bad proxy nodes.
DNS deserves special attention. If a Chinese app resolves its domain through a local resolver and then connects directly to the returned IP, Clash may never see the original domain. This makes domain rules ineffective. Mihomo users commonly choose fake-ip with TUN mode because the client can preserve the domain-to-connection relationship while applying rules. Some applications, especially games, VoIP clients, device discovery tools, and software using hard-coded IP addresses, may require exclusions.
dns: enable: true listen: 0.0.0.0:1053 ipv6: false enhanced-mode: fake-ip fake-ip-range: 198.18.0.1/16 nameserver: - https://1.1.1.1/dns-query - https://dns.google/dns-query fallback: - https://1.0.0.1/dns-query fake-ip-filter: - +.lan - localhost.ptlogin2.qq.com - time.*.com
Do not paste this block blindly into every client. Some older Clash builds use different DNS capabilities, and some clients manage DNS internally. Verify the documentation for your core. If fake-IP causes a particular app to fail, add the app’s documented domains to fake-ip-filter or test redir-host mode. Also keep private network rules near the top of the rules list so local devices are not accidentally redirected through a remote node.
Write China App Rules Without Breaking Campus Traffic
There are several ways to identify China-bound traffic. The most precise method is a domain list. DOMAIN matches one exact hostname, DOMAIN-SUFFIX matches a domain and its subdomains, and DOMAIN-KEYWORD matches a keyword anywhere in the hostname. Use suffix rules when you understand the service’s domain structure; use keyword rules sparingly because they can match unrelated domains.
For example, if a service uses api.example.cn, cdn.example.cn, and login.example.com, a single DOMAIN-SUFFIX,example.cn rule is not enough. Add the required international login or API domain after confirming it in the Clash connection log. Conversely, routing all of example.com through China may affect a global service’s overseas endpoint and reduce performance.
rules: # Keep local and campus traffic outside the proxy - DOMAIN-SUFFIX,university.example.edu,DIRECT - DOMAIN-SUFFIX,library.example.edu,DIRECT - IP-CIDR,10.0.0.0/8,DIRECT,no-resolve - IP-CIDR,172.16.0.0/12,DIRECT,no-resolve - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve # Replace these examples with domains observed in your apps - DOMAIN-SUFFIX,video.example.cn,China-Route - DOMAIN-SUFFIX,music.example.cn,China-Route - DOMAIN-SUFFIX,shop.example.cn,China-Route - DOMAIN-SUFFIX,bank.example.cn,China-Route # Place broad fallback rules last - GEOIP,PRIVATE,DIRECT,no-resolve - MATCH,International
Rule order matters in less obvious ways too. If a broad rule such as GEOSITE,CN,China-Route appears before an exception for a university CDN, the exception will never be reached. If your core supports rule providers, keep large domain lists in external providers and place your personal exceptions above them. This makes updates safer and keeps your main profile readable.
App-specific routing is not identical to domain-specific routing. On desktop, Clash usually sees a connection and can match its domain, destination IP, or process name if the core and client support it. On Android, process-name rules may be available through the client’s interface, but syntax and support vary. On iOS, system restrictions mean that a profile cannot always distinguish every app in the same way a desktop firewall can. Start with domains, then use process or package rules only when your client explicitly supports them.
| Requirement | Recommended rule approach | What to verify |
|---|---|---|
| Chinese video or music | Exact or suffix domain rules to China-Route | Playback, login, image CDN, and subtitle requests |
| Chinese shopping | Route main site and required API domains | Captcha, payment redirect, and app notifications |
| Chinese banking | Use the narrowest documented domain set | Bank policy, device security, and transaction verification |
| University systems | Explicit DIRECT rules above broad China rules | SSO login, library access, and campus VPN compatibility |
| Games | Test domain rules plus UDP/TUN behavior | Login server, matchmaking, voice chat, and latency |
Troubleshoot Dorm, Campus, and Hotel Networks
Campus networks introduce problems that do not appear on a home connection. Many universities require a browser login, device registration, 802.1X authentication, or a dedicated VPN before internet access becomes available. Configure that access first with Clash disabled or in direct mode. If the login page cannot open when TUN is enabled, temporarily turn TUN off, complete authentication, and then enable the profile again.
Captive portals often use private addresses, redirects, or unencrypted HTTP. Keep the device in direct mode during onboarding. Add only the university’s known login domain to a direct rule if necessary. Do not attempt to bypass access controls, device registration, or network usage policies. A proxy profile should solve routing for permitted internet traffic, not replace the institution’s authentication process.
When a site fails, avoid switching random nodes repeatedly. Use a controlled diagnostic sequence:
- Confirm that Clash is running and the intended profile is selected.
- Check the connection log and identify the exact hostname that failed.
- See which rule matched and which proxy group handled the connection.
- Test the hostname in direct mode, then test it through
China-Route. - Compare browser access with the native app. If only the app fails, inspect UDP, certificate, process, or hard-coded IP behavior.
- Clear the app’s DNS or connection cache only after correcting the rule.
A timeout does not always mean the node is dead. Dorm Wi-Fi may block UDP, limit unusual ports, intercept DNS, or require periodic reauthentication. Try a node using a conventional TLS port such as 443, and test TCP-based traffic before concluding that the entire proxy is unavailable. If ordinary websites work but a game or call application does not, check whether UDP support is enabled and whether the network blocks it.
tun: enable: true stack: mixed auto-route: true strict-route: false auto-detect-interface: true dns-hijack: - any:53 - tcp://any:53
TUN settings are core-dependent. If enabling TUN disconnects the campus network, first disable strict-route, verify the client’s permission, and check whether a university VPN is already active. Some campus VPNs require all traffic to pass through their own adapter and will conflict with a local TUN interface. In that situation, use system proxy mode for browser traffic or follow the university’s supported split-tunnel configuration instead of forcing two routing systems to coexist.
IPv6 can also create confusing results. If your rules cover IPv4 but the application prefers IPv6, some requests may bypass the expected route or fail before Clash can apply the correct policy. As a diagnostic step, temporarily disable IPv6 in the Clash profile or operating system, then retest. If that fixes the problem, decide whether to build complete IPv6 rules or keep IPv6 disabled for the affected environment.
Test, Secure, and Maintain the Profile
After writing rules, test one service at a time. Open the Clash dashboard and record the selected rule, group, and connection result. Test the following separately: DNS resolution, login, static images, media playback, payment or verification pages, and background notifications. A home page loading successfully does not prove that every API endpoint is routed correctly.
Keep a small personal rule section near the top of the configuration and separate it from imported providers. Give each exception a comment describing why it exists. This matters when a service changes its domains or when you move from dorm Wi-Fi to mobile data. A rule that was necessary on one network may be unnecessary or harmful on another.
- Back up the working profile before changing DNS, TUN, or rule providers.
- Use a strong secret for any external controller and bind it to
127.0.0.1unless LAN access is genuinely required. - Do not expose the controller port to the public internet.
- Update node subscriptions and rule providers from sources you trust.
- Review application permissions and avoid unknown modified clients or certificate profiles.
- Disable Clash temporarily when troubleshooting university support issues so the network state is easy to reproduce.
There is no universal “China app list” that remains correct forever. Services add regional APIs, move content to new CDNs, and change login infrastructure. The most maintainable workflow is to use a broad, trusted provider only when necessary, then place narrow local exceptions above it. If an app suddenly stops working, compare the connection log before and after the change rather than replacing the entire configuration.
Frequently Asked Questions
Do all Chinese apps need a China node?
No. Many apps work normally from an overseas direct connection, although some content, account functions, or video libraries may be region-dependent. Route only the domains that fail or perform poorly, and keep international authentication services direct unless testing shows otherwise.
Why does the browser work while the native app fails?
The browser usually honors the operating system proxy, while a native app may use its own network stack, QUIC, UDP, certificate checks, or hard-coded endpoints. Try TUN or VPN mode, inspect the connection log, and check whether the app requires additional API or CDN domains. Do not disable certificate verification to bypass an error.
Can Clash run together with a campus VPN?
Sometimes, but it depends on the VPN’s routing and security policy. Both services may compete for the default route or DNS. Test the campus VPN first, then use Clash in system proxy mode or a supported split-tunnel arrangement. If the university requires its VPN to control all traffic, do not override that policy.
What should I do when dorm Wi-Fi blocks the connection?
Confirm that the network login is complete, test a node on a standard TLS port, and compare TCP and UDP behavior. Check for Wi-Fi reauthentication, DNS interception, and competing VPN software. If the network prohibits proxy traffic, use an approved connection or contact the network administrator rather than attempting to evade its controls.
A well-designed Clash profile lets you keep university work and international browsing stable while giving selected Chinese services an appropriate route. Build the policy gradually, verify each match in the dashboard, and treat DNS, TUN mode, and campus authentication as separate layers. With narrow rules, a tested China node, and a direct fallback, students abroad can maintain a practical setup that is easier to understand, troubleshoot, and update throughout 2026.