How-To Guides · Clash Technical Blog

Using Clash for macOS: Subscriptions, System Proxy, TUN, and Permissions

If the macOS system proxy works but a particular program has no connection records, test TUN and check network-extension and helper-service permissions. After sleep, network changes, or restart, inspect the original target in Connections and troubleshoot the core, permissions, or network as appropriate.

  • macOS
  • Permissions
  • Choosing a client
On this page

Proxy setup on a Mac can bring up several kinds of system permission prompts, but granting permission again will not solve every problem. The client must run and load its configuration before application requests can be forwarded. Before extending which connections it handles, keep the system proxy already verified in the browser, then check the relevant network permissions and the result after changing networks.

The Menu-Bar Client Is Running, but Is the Core Working?

A macOS client usually remains in the menu bar and keeps running after its main window closes. The core status in settings or logs shows whether the process handling connections is working. Persistent core failed or permission denied errors call for fixing local startup and permissions first.

Quit the old ClashX instance, other Mihomo clients, and VPN software so several programs do not modify the system proxy together.

Import, update, and select a configuration in Profiles

The screens in this section use Clash Verge Rev, where the sidebar entry is Profiles. Other macOS clients use their own configuration controls; they need not have a page with that name. Likewise, handle only the permissions your current client actually requests later on.

Import a remote configuration on macOS

  1. Open Profiles

    Paste the Clash- or Mihomo-compatible HTTPS link supplied by the provider.

  2. Update manually

    Wait for a new update time and watch for 401, 403, timeout, or parse error.

  3. Select the Profile

    Ensure that the current marker is not on an old configuration or sample file.

  4. Open Proxies

    Confirm that policy groups and nodes are not empty.

macOS network permissions cannot fix subscription errors. If an update returns 401/403, address the token or account; if it returns a YAML parsing error, check the core and format. The system proxy and TUN can use the nodes and rules only after the Profile has loaded.

System Proxy: Verify Connections in the Browser

A lit menu bar icon means only that the client is running, not that the browser uses it. Pin one node in the primary group under Proxies and keep the mode on Rule. When you enable System Proxy, macOS may ask permission for the app to change network proxies. Confirm that the prompt comes from the current client, then enter system credentials or use Touch ID.

Open a familiar site in Safari or Chrome and inspect its domain, rule, and outbound route in Connections. A successful page and the expected record show that this system-proxy request worked. To verify a node, also confirm the request actually used it. If the browser works but the terminal has no record, the terminal may ignore the system proxy.

Evidence that the system proxy works

  • macOS network settings shows the current client's local proxy port
  • The browser request enters Connections
  • Rule and the final outbound route match expectations
  • After disabling System Proxy, the same request no longer passes through Clash
Official Clash Verge Rev light interface in a macOS window, with several policy groups on the proxy screen
The macOS layout is largely the same as Windows. Select a specific node within a policy group on the proxy page, then verify the system proxy.View the official preview

TUN Network Extension, VPN, and Helper-Service Permissions

TUN creates a virtual network interface and sends more TCP and UDP connections to Mihomo. If a terminal tool, game launcher, or software that ignores the system proxy has no Connections record, compare with TUN. A request that already enters Clash but matches the wrong rule does not need broader capture.

When enabling TUN, macOS may ask you to install or allow a network extension, helper service, or VPN configuration. System settings names the specific item; its developer and app should match the current client.

If the toggle immediately switches back or logs show permission denied, use the logs to check the network-extension, VPN, or helper-service permissions needed by this client. Address them in system settings or the client’s built-in service controls. Return to the client, enable it again, and wait for the virtual interface to be ready.

Permission prompt and purpose

macOS promptWhat it enables
Modify the system proxyAllows apps that honor the system proxy to connect to the local port
Network extension / VPN configurationCreates or runs the TUN capture path
Administrator privileges / helper servicePerforms networking operations that require system privileges
Local network accessDiscovers or connects to local-network devices; whether it is needed depends on the scenario

Retest Programs with No Previous Records Through TUN

Compare only one action before and after TUN

  1. Reproduce with TUN disabled

    Confirm that the program has no connection record under the system proxy.

  2. Enable TUN

    Keep the same Profile, Rule mode, and fixed node.

  3. Repeat the exact same action

    For example, run the same terminal command or open the same launcher page.

  4. Inspect the new connection

    Record the process, domain, matched rule, and outbound route.

If enabling it produces a successful connection record, TUN has captured this request. If the record shows DIRECT, check rules; if it reaches a node and reports timeout, compare nodes and networks. If there is still no record, check the network extension, firewall, and other VPN software rather than continuing to change the subscription.

Disconnections After Wake or a Network Change

When a Mac wakes or switches from Wi-Fi to a phone hotspot, the actual outbound adapter may change while the TUN interface keeps its old state. Wait a few seconds, repeat the original request, inspect Connections, and follow the symptoms below.

When using the system proxy, also check for stale proxy settings. If the core has stopped listening but macOS still points to a port on 127.0.0.1, web requests using that proxy will fail. Clear the stale setting or restart the current client. Closing the main window alone does not mean the core has stopped.

Connections is empty after wake

Reload the core so the client detects Wi-Fi and the default outbound route again.

Only TUN fails after changing networks

Recreate the TUN interface and inspect whether another VPN took over the route.

The browser loses all connectivity after the client exits

Check whether the macOS HTTP, HTTPS, and SOCKS proxies still point to the old port.

Direct Access to NAS Devices, Printers, and Company Domains

If a printer, NAS device, router admin page, or corporate internal domain becomes unreachable with TUN enabled, the likely issue is private addresses entering the proxy path, not the node. If local devices return immediately after disabling TUN, narrow the scope to local-network rules, internal DNS, or routing.

Check whether the IP matches DIRECT in Connections. Common home private ranges usually already have rules, while corporate custom ranges and split DNS must be added based on real settings. Do not copy a “global bypass list” containing unfamiliar ranges; handle only addresses you can verify.

The IP opens, but the internal domain does not
Internal DNS likely did not resolve through the original network.
Both the IP and domain enter the proxy group
Place the exact local subnet or domain rule before broader rules.
It remains unreachable with every proxy disabled
The issue is outside Clash; inspect the current Wi-Fi network and device.

Check Configuration and Permissions After Restart or Wake

After configuring the subscription, System Proxy, and TUN permissions, restart the client once, then let the Mac sleep and wake. If the Profile remains current, browser requests enter Connections, and the program that required TUN continues producing records, permissions and background services were not temporary to this session.

If the system proxy works but TUN is denied again after restart, follow the logs to check this client’s network-extension, VPN, or helper-service permissions. If no requests appear after sleep, reload the core and check the menu-bar process.

References