Remote work depends on more than having a proxy node that can open websites. A video meeting can still freeze while ordinary browsing feels fast, and Slack may show new messages several seconds late even though a latency test reports an acceptable number. The reason is usually routing: Zoom, Slack, and Google Meet use different domains, connection patterns, and sometimes UDP transports. If they are sent through an overloaded or distant node, real-time traffic suffers first.
This guide explains how to configure Clash or Mihomo for a more reliable remote-work setup. You will learn how to separate work services from everyday browsing, select nodes based on stability rather than ping alone, handle DNS and TUN mode correctly, and troubleshoot the most common symptoms without proxying your entire network unnecessarily.
Understand How Remote-Work Traffic Behaves
Zoom, Slack, and Google Meet are not ordinary web pages. A normal page load can tolerate a short delay because the browser downloads files and renders them afterward. A meeting cannot hide delay in the same way. Audio and video packets arrive continuously, and a small amount of packet loss or jitter can immediately produce frozen video, robotic voices, or repeated reconnects.
Remote-work applications commonly use several types of connections at the same time:
- HTTPS control traffic: Used for login, workspace loading, meeting creation, configuration, and API requests.
- WebSocket connections: Used by Slack and some web-based collaboration features for real-time events, presence updates, typing indicators, and message delivery.
- UDP media traffic: Often preferred by video-conferencing applications because it reduces latency and avoids waiting for retransmission of every lost packet.
- CDN and static content traffic: Used to download avatars, files, JavaScript bundles, recordings, and other resources from domains that may not look like the primary product domain.
- DNS requests: Needed before the application can choose a server. A wrong or inconsistent DNS path can cause slow startup even when the proxy node itself is healthy.
This is why routing only zoom.us or slack.com may not cover every connection. A client can authenticate through one domain, load assets from another, and establish media sessions with a regional edge service. The correct approach is to start with broad domain rules, observe actual connections, and then refine the configuration based on what your client exposes.
Before changing rules, identify which traffic really needs the proxy. If your company services are reachable directly and work reliably without Clash, direct routing may be the fastest and safest choice. If a service is blocked, unstable, or geographically inefficient on the local route, send only that service through a suitable proxy group. This avoids adding unnecessary latency to local websites, printers, file shares, and corporate resources.
| Traffic | Typical behavior | Recommended first choice |
|---|---|---|
| Zoom meeting media | Latency-sensitive, may use UDP | Stable regional proxy or reliable direct route |
| Slack messages | Persistent HTTPS or WebSocket connection | Consistent node with low reconnect frequency |
| Google Meet | Browser signaling plus real-time media | Node with good UDP behavior and low jitter |
| Local company systems | Private domains or LAN addresses | DIRECT, unless the organization requires otherwise |
| General browsing | Mixed latency and bandwidth requirements | Separate general proxy group or rule-based routing |
Build Separate Rules for Zoom, Slack, and Meet
A dedicated proxy group makes troubleshooting much easier. Instead of sending every proxied connection to one manually selected group, create a Work group and route collaboration services to it. You can then change the work node without affecting streaming, browsing, or other applications.
The following example uses common domain suffix rules. It is intentionally conservative: the exact domains used by each service can change, and some organizations use custom identity providers or regional gateways. Treat this as a starting point, not as a permanent complete list.
rules: - DOMAIN-SUFFIX,zoom.us,Work - DOMAIN-SUFFIX,zoom.com,Work - DOMAIN-SUFFIX,slack.com,Work - DOMAIN-SUFFIX,slack-edge.com,Work - DOMAIN-SUFFIX,google.com,Work - DOMAIN-SUFFIX,googlevideo.com,Work - DOMAIN-SUFFIX,meet.google.com,Work - DOMAIN-SUFFIX,gstatic.com,Work # Keep private and local traffic direct - DOMAIN-SUFFIX,local,DIRECT - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve - IP-CIDR,10.0.0.0/8,DIRECT,no-resolve - IP-CIDR,172.16.0.0/12,DIRECT,no-resolve # Put your normal final policy last - MATCH,General
Be careful with broad Google rules. A rule such as DOMAIN-SUFFIX,google.com,Work can route search, Drive, YouTube-related requests, and unrelated Google services through the work group. That may be acceptable for a simple configuration, but it can also consume bandwidth and make troubleshooting ambiguous. If you want a narrower setup, begin with meet.google.com, then add domains shown in the connection panel when a meeting fails to load or media does not start.
Slack often maintains a long-lived connection. If the connection repeatedly closes, the application may appear to work while messages arrive late. Do not judge Slack only by whether the workspace opens. Send a test message from another device, watch the live connection in Clash, and check whether the connection stays established for several minutes.
Zoom requires extra care because meeting traffic may use UDP ports and infrastructure domains that are not obvious from the login page. If the desktop client signs in successfully but meeting audio or video fails, check whether your current Clash mode captures UDP. If it does not, the application may fall back to TCP, which can work but often performs worse on congested networks.
Use Rule Order Deliberately
Clash evaluates rules from top to bottom and generally stops at the first match. Put specific work rules before broad rules such as country-based policies, generic CDN rules, or MATCH. Put private IP exclusions near the top so local printers, NAS devices, company VPN endpoints, and internal dashboards are not accidentally sent to a remote node.
If your configuration imports a remote ruleset, confirm that its order does not override your local work rules. Rule Providers are convenient, but a provider placed before your custom rules can silently send Zoom or Slack traffic somewhere else. During testing, a small local rule block is easier to understand than a large collection of automatically generated providers.
Configure and Test a Work Proxy Group
This is the practical setup section. The goal is to create a group that can automatically select a healthy node while still allowing manual control when you have a meeting. Use at least two or three nodes from nearby regions if possible. A distant node may have a good raw connection but introduce unnecessary delay into voice and video.
- Open your Clash client and locate the active profile. In Clash Verge or Clash Verge Rev, use the profile editor or the configuration override area. In Mihomo-based clients, edit the YAML profile that is actually loaded, not an unused backup file.
- Create a proxy group named
Work. Include only nodes that are suitable for meetings: nearby regions, stable transports, and enough bandwidth. - Use a
url-testgroup for automatic selection, or aselectgroup if you want to lock a node before an important call. - Add the Zoom, Slack, and Meet rules before your general proxy rules.
- Reload the profile and confirm that the group appears in the client dashboard.
- Open Slack, sign in, and start a test meeting or call. Then open Zoom or Google Meet and verify both signaling and media.
- During the test, watch active connections and note which domains, protocols, and rules are being used.
proxy-groups: - name: Work type: url-test proxies: - node-sg-01 - node-jp-01 - node-us-west-01 url: https://www.gstatic.com/generate_204 interval: 300 tolerance: 40 - name: General type: select proxies: - Work - DIRECT - Auto-Select
The health-check URL measures whether a node can reach a small HTTPS resource; it does not reproduce a video meeting. A node can pass the check and still perform poorly for UDP, WebSocket persistence, or sustained upload. After the automatic test chooses a node, make a real call for at least five minutes. Check voice clarity, camera stability, screen sharing, and reconnect behavior.
For scheduled presentations, a manual select group is often safer than automatic switching. Automatic selection may change nodes during a call if the latency difference crosses the tolerance threshold. That can terminate persistent Slack sessions and interrupt meeting media. Use url-test to discover a good node, then select that node manually before the meeting begins.
Tune DNS, TUN Mode, and UDP Handling
Routing rules can be correct while the application still behaves badly because DNS resolution and traffic capture are inconsistent. In system proxy mode, many desktop applications send HTTP and HTTPS traffic through Clash but do not honor the system proxy for UDP or custom socket connections. TUN mode captures traffic at the network layer and is usually more complete, especially for Zoom and Google Meet media.
When enabling TUN mode, start with the default settings provided by your client. Confirm that the TUN stack is running with administrator or system permissions, and avoid enabling multiple virtual network adapters at once. Two VPN clients, a corporate VPN, and Clash TUN can compete for the same routes and create intermittent failures.
tun: enable: true stack: mixed auto-route: true auto-detect-interface: true dns: enable: true listen: 0.0.0.0:1053 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 fake-ip-filter: - *.lan - localhost.ptlogin2.qq.com - time.*.com
The exact DNS options depend on whether you use classic Clash, Clash.Meta, or Mihomo. Do not copy unsupported fields into an older client without checking its documentation. The key principles are consistent: use a DNS mode compatible with your traffic-capture mode, prevent local domains from receiving fake addresses when necessary, and ensure the resolver itself is reachable.
UDP support should be verified rather than assumed. In the connection view, look for UDP sessions while a meeting is active. If all traffic is TCP, that may be normal for a particular network, but it can also indicate that the current client, mode, or proxy node does not support UDP. Some transports and servers deliberately handle UDP differently, so compare two nodes instead of changing several settings at once.
external-controller bound to 127.0.0.1 unless LAN access is necessary. If you expose it to other devices, set a strong secret. A reachable controller can allow someone to inspect connections or change your active configuration.Diagnose Stuttering Calls and Delayed Messages
When a problem appears, change one variable at a time. First switch the Work group to another nearby node while keeping the rules unchanged. If the problem disappears, the original node or its route is the likely cause. If every node behaves the same way, examine TUN capture, DNS, firewall permissions, and the direct network path.
| Symptom | Likely cause | What to test |
|---|---|---|
| Zoom signs in but video freezes | UDP is not captured, or the node has packet loss | Enable TUN, check UDP sessions, compare another node |
| Slack opens but messages arrive late | WebSocket reconnects or unstable long-lived connection | Watch connection duration and test a stable manual node |
| Google Meet takes a long time to join | DNS delay or a missing Google service domain | Inspect DNS timing and add only the observed domain |
| Local company portal stops working | Private domain or IP was sent through the proxy | Add local domain and RFC1918 direct rules |
| Call disconnects after switching networks | Old routes, stale DNS cache, or changing network interface | Restart TUN, reconnect Wi-Fi, and reload the profile |
Use the Clash connection log as a map of reality. Search for the application name, then inspect the matched rule and selected proxy group. If a Zoom request is matched by GEOIP or MATCH instead of Work, your service rule is either missing or placed too low. If the request is correctly matched but the connection immediately closes, the issue is more likely related to the node, transport, firewall, or application protocol.
Do not use only browser-based speed tests. A speed test may use a nearby CDN and a short-lived TCP connection, while a meeting needs consistent upstream bandwidth and low jitter. Test at the same time of day as your normal meetings, especially if the proxy provider becomes congested during business hours. Screen sharing is particularly useful as a practical upload test.
Corporate security software can also affect results. Endpoint protection, split-tunnel VPN clients, DNS filtering tools, and firewall policies may intercept the same traffic as Clash. If work applications are managed by your organization, follow its network policy before enabling TUN or routing corporate traffic through a third-party node. In some environments, the correct design is to keep the corporate VPN direct and proxy only public collaboration services; in others, the corporate VPN must take precedence over Clash.
Use a Reliable Daily Workflow
A good remote-work configuration should require very little attention once it is tested. Keep one known-good manual node in the Work group, one automatic group for discovery, and a clear direct rule for local resources. Before an important meeting, select the known-good node, start the meeting early, and verify microphone, camera, screen sharing, and chat. Avoid updating profiles or changing DNS modes minutes before presenting.
- Keep the Clash client and core version current, but test updates outside meeting hours.
- Use a separate work group instead of changing the global proxy every time a call begins.
- Prefer stable regional nodes over the lowest one-time latency result.
- Check both download and upload capacity when evaluating a node.
- Leave local networks, private IP ranges, and internal company domains on
DIRECTunless policy requires another route. - Review the connection log after adding a new service or changing a rule provider.
- Keep a backup of the last working profile so you can recover quickly.
With these habits, Clash becomes a routing tool rather than an unpredictable on-and-off switch. Zoom, Slack, and Google Meet can use a path chosen for stability, while local services and ordinary browsing remain on the fastest appropriate route. The best configuration is not the one with the most rules; it is the one whose traffic decisions are clear, testable, and easy to change when your network or work requirements change.
Take Full Control of Your Traffic with Clash
Available on Windows, macOS, Linux, Android, and iOS. Flexible rules, simple setup, ready to use.