ClashFX macOS Troubleshooting & Problem Resolution Guide
Systematic Troubleshooting Methodology
When encountering connection issues on macOS, avoid changing settings randomly. Instead, isolate the failure point following this four-tier diagnostic hierarchy:
1. Underlying Network -> Can your Mac access websites with ClashFX completely closed?
2. Node Availability -> Can ClashFX reach the remote proxy server endpoints?
3. Config Syntax / DNS -> Is your YAML configuration parsing and resolving queries?
4. System Routing -> Are macOS proxy settings and TUN virtual interfaces active?
Follow the troubleshooting solutions below organized by common failure symptoms.
Issue 1: No Internet After Enabling Proxy
Symptoms:
Safari and Chrome display “Cannot open page” or “ERR_PROXY_CONNECTION_FAILED”.
Step-by-Step Resolution:
-
Verify Native Internet Connection:
- Click the ClashFX menu icon and uncheck
Set as System Proxy. - If Enhanced Mode (TUN) is active, click to disable it.
- Open a browser and test loading a standard domestic website. If pages still do not load, the issue lies in your Wi-Fi, router, or macOS network settings—not ClashFX.
- Click the ClashFX menu icon and uncheck
-
Check Active Proxy Node Selection:
- Re-enable
Set as System Proxy. - In the ClashFX menu, go to Proxies → PROXIES (or your main group).
- Ensure a specific, operational node is checked (not set to an expired server).
- Click the latency test icon. If all nodes show
Timeoutor0 ms, see Issue 2 below.
- Re-enable
-
Check Outbound Mode:
- Ensure the routing mode is set to Rule or Global.
- If set to Direct, your traffic bypasses proxies completely.
Issue 2: All Nodes Timeout / Latency Test Fails
Symptoms:
Every node in your list displays Timeout or lightning bolt tests fail across all proxy groups.
Step-by-Step Resolution:
- Verify Subscription Validity:
- Subscription packages expire or exceed monthly bandwidth quotas. Log in to your provider’s portal to confirm that your account has remaining traffic and an active billing cycle.
- Update Subscription Profiles:
- Go to Remote Config Management → Update All Profiles. A provider may have rotated IP addresses or retired obsolete server nodes.
- Firewall / Network Restriction:
- If you are connected to a corporate, university, or hotel network, outbound non-standard ports (like
8443or443with custom TLS) may be blocked. Test connecting through a personal mobile hotspot to verify.
- If you are connected to a corporate, university, or hotel network, outbound non-standard ports (like
Issue 3: Enhanced Mode (TUN) Loses Internet or Fails to Start
Symptoms:
Standard proxy works in Chrome, but as soon as Enhanced Mode is toggled on, all apps and terminal commands lose internet connectivity.
Step-by-Step Resolution:
-
Verify Privileged Helper Installation:
- Creating the virtual
utuninterface requires administrative permissions. Open Terminal and verify the helper binary:ls -l /Library/PrivilegedHelperTools/ - If ClashFX’s helper tool is missing or unprivileged, reinstall ClashFX into
/Applicationsand grant administrator approval when prompted.
- Creating the virtual
-
Check DNS Configuration in YAML:
- Enhanced Mode relies on the
fake-ipDNS engine. Open Config → Edit Current Config and ensure yourdnsblock is structured properly:dns: enable: true enhanced-mode: fake-ip fake-ip-range: 198.18.0.1/16 nameserver: - 223.5.5.5 - 1.1.1.1 - 8.8.8.8 - If
nameservercontains unreachable private IP addresses, TUN mode cannot resolve domain names.
- Enhanced Mode relies on the
-
Resolve Competing VPN / Network Adapters:
- Virtual network interfaces from tools like WireGuard, Tailscale, ZeroTier, or Cisco AnyConnect can conflict with ClashFX’s TUN route table entries. Completely disconnect other VPN clients before toggling Enhanced Mode.
Issue 4: Port Conflict (Port 7890 Already in Use)
Symptoms:
ClashFX displays an alert indicating that port 7890 or 9090 cannot be bound.
Step-by-Step Resolution:
- Locate Conflicting Processes in Terminal:
lsof -i :7890 - Terminate the Conflicting Process:
If a orphaned process (e.g., an unclosed legacy ClashX or background proxy daemon) is holding the port:
kill -9 <PID> - Alternatively, Change the Listening Port in ClashFX:
Open Config → Edit Current Config, change
mixed-port: 7890tomixed-port: 7892, and press Cmd + S.
Issue 5: macOS Gatekeeper Alert (“App Is Damaged”)
Symptoms:
When launching ClashFX for the first time, macOS alerts: “ClashFX is damaged and can’t be opened. You should move it to the Trash.”
Step-by-Step Resolution:
This is a standard macOS quarantine attribute applied to files downloaded from web browsers. Remove the quarantine flag using Terminal:
sudo xattr -cr /Applications/ClashFX.app
Enter your Mac password when prompted, then re-open ClashFX.
Inspecting Runtime Logs
When troubleshooting stubborn issues, inspect real-time log outputs:
- Open the ClashFX menu and select Logs (or set
log-level: debugin your YAML config). - The log stream highlights:
- Specific YAML parsing errors with exact line numbers.
- TLS handshake errors and handshake timeouts.
- Exact rule matching outcomes (
[Rule] match DomainSuffix(github.com) using PROXIES).
Next Steps
- If you encounter subscription syntax errors, follow our Fix Subscription Import Errors Guide.
- Learn how to structure clean routing in our Clash Meta YAML Template Guide.
- Need to roll back or migrate? Read Migrating from ClashX to ClashFX.
Get Started with ClashFX
Download and use ClashFX core features for free. Pro is in preparation with final features and pricing to be announced.
Frequently Asked Questions
This typically occurs when no active proxy node is selected, all nodes are timing out, or an invalid local port is specified in your config.yaml. Disable System Proxy to confirm direct internet works, then test node latencies in the Proxies menu.
Disable Enhanced Mode first to restore network connectivity. Then verify that your YAML profile contains a functional DNS section with upstream nameservers (such as 1.1.1.1 or 223.5.5.5) and ensure no competing VPN clients (WireGuard, Tailscale, Cisco) are running.
Another proxy process (such as an old ClashX or v2ray instance) may still be running. Run 'lsof -i :7890' in Terminal to find the process ID and kill it, or edit your ClashFX configuration to use another port (e.g. mixed-port: 7892).
Yes. ClashFX outputs detailed runtime logs from the mihomo core. You can inspect logs via the app menu or locate them in ~/.config/clashfx/.