After importing, make sure the configuration is active
Add the link from your service provider on the configuration or subscription page, download it, and select that configuration. Seeing a subscription name does not mean it’s active. Check that nodes and proxy groups appear on the proxy page, then test the connection. A subscription may contain nodes, rules, and DNS settings; what it includes depends on the provider’s format. If import fails, check the download status and configuration parsing logs first instead of repeatedly reinstalling the client. Subscription links often contain personal access tokens, so hide the entire URL in screenshots, support requests, and synced notes. For local changes, use the client’s override feature where possible to avoid losing them on update.
# Checks to run after importing
Configuration downloaded successfully
→ Select and activate the configuration
→ Confirm nodes and proxy groups appear on the proxy page
→ Select an available outbound
→ Try accessing a real destination
For everyday routing, start with Rule mode
Rule mode uses the configuration to decide where each connection goes, making it suitable for accessing local services and remote sites at the same time. Global mode sends connections that reach the core through the global policy, which is useful for briefly comparing access to a specific destination. Direct mode lets you see what happens when traffic leaves without a proxy. These modes change how traffic is handled after it reaches the core; they do not determine which apps reach the core in the first place. If switching to Global mode still produces no connection logs, check system proxy or TUN coverage before changing nodes. When you’re done troubleshooting, restore the previous mode and proxy group selection so they don’t affect later tests.
# config.yaml: Set the mode for everyday routing
mode: rule
# Common core mode values
# rule Select an outbound based on rules
# global Send traffic through the global policy
# direct Send traffic directly
Rules are checked top to bottom; the first match wins
Rules are checked in order, and processing usually stops at the first match. Put domains that need priority handling before broader rules, and use MATCH at the end as a fallback outbound. Policy names in custom rules must exist in the current configuration, with spelling and capitalization matching exactly. When making your first change, try DIRECT for a single destination. Check the connection log for the expected rule, then switch to the policy group you intend to use. Unlike simply switching proxy nodes, rule-based routing lets you choose different paths for different destinations, but it also depends more on DNS, domain information, and rule order. Don’t replace your entire subscription configuration with rules from an untrusted source.
# Example: order shown for illustration; adjust the last line as needed
rules:
- DOMAIN-SUFFIX,example.com,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- MATCH,DIRECT
If an app ignores system proxy, consider TUN
TUN routes traffic through a virtual network interface. It can cover more apps, but it isn’t a switch for faster connections. Before enabling it, make sure the subscription and outbound work with system proxy, then install any required service or grant the permissions your client needs. Other VPNs, virtual adapters, or security software may interfere with routes and DNS. After enabling TUN, test remote access as well as local network devices and development services. If something breaks, turn TUN off to compare results, then check routes, interface detection, and DNS settings. The example shows only relevant fields; don’t replace your entire existing configuration with it.
# Example TUN fields for mihomo
tun:
enable: false
stack: mixed
auto-route: true
auto-detect-interface: true
# Check permissions and existing VPN status before enabling
Back up before updating; change one thing at a time
Routine maintenance means keeping subscriptions valid, checking update results, and monitoring the client. After updating a subscription, check that the node list and proxy groups still look right. Before upgrading the client, save local overrides, rules, and other important settings, then read the release notes. Node latency tests reflect performance against a specific test target; they don’t replace testing the sites you use or measure download bandwidth directly. When something goes wrong, note the time, destination, mode, and error type in the logs, and change one variable at a time. Before sharing logs, remove subscription URLs, credentials, and personal network details. When troubleshooting is done, restore the log level to its usual setting.
# Routine checkup
[ ] Subscription updated successfully and the current configuration is active
[ ] Proxy group selection is as expected
[ ] Local overrides have been backed up
[ ] Log level restored to info
[ ] Check that system proxy is restored after exit