Skip to main content
EN

Home / Blog / Advanced

Read the logs and connections pages and you can solve most problems yourself

Read the logs and connections pages and you can solve most problems yourself

Most "it will not open", "it is slow" and "it routed the wrong way" problems have their answer sitting in the Connections and Logs pages. Learning to read those two beats searching the internet.

The Connections page, column by column

Open Connections in the left menu and you get a live table:

ColumnMeaningWhat it is good for
HostDestination domain or IPFinding the site you care about
RuleWhich rule matchedThe most valuable column
ChainThe node or policy chain usedConfirming direct vs proxied
ProcessWhich program opened itFinding out who is talking
Upload / DownloadTraffic on this connectionFinding the heavy user
TimeHow long it has been openLong-lived connections stay listed

The most common use: did this site go through a node?

Say you want to know whether github.com is actually being proxied:

Three stepsOpen the Connections pagelet it refresh liveVisit the site in a browsercreates a new connectionSearch for the domain in the tableread the Rule and Chain columnsConclusionDIRECT means direct, a node name means proxied
More reliable than any "what is my IP" site, because you are reading the core's actual decision

Reading the Chain column:

  • DIRECT → direct, no node involved
  • A node or group name → proxied
  • REJECT → blocked by a rule, typically ad filtering

The Rule column tells you whyGEOIP,CN for instance means it went direct because the destination IP resolved into that region.

Second use: finding out what is eating your data

Sort by the Download column and look at the top few. The Process column names the program.

Common surprises: a piece of software updating in the background, a cloud drive syncing, or a browser tab quietly autoplaying video.

Third use: an abnormal number of connections

Ordinary browsing sits in the tens. If you see hundreds or thousands and climbing:

  • Something may be reconnecting frantically (check the Process column)
  • It could be P2P software
  • Or a misconfiguration is causing connections to fail and immediately retry

"Close all connections" at the top right clears the list; watch which entries reappear instantly.

The Logs page: set the level first

The Logs page has a level selector at the top right:

Four log levelssilentoutputs nothuseless for diagnosisinfo (default)records connfine for daily usewarningwarnings andwhen you want quietdebugevery rule mfor hard problemsvery verbose
Use info normally, switch to debug temporarily when something is genuinely unclear

A translation table for common errors

Log messageWhat it meansWhat to do
dial tcp x.x.x.x:443: i/o timeoutTimed out connecting to the nodeNode is unreachable; try another
connection refusedThe target actively refusedWrong node port, or the service is down
unsupported proxy type: xxxThe core does not know this protocolUpdate the Mihomo core
unmarshal error / yaml: line NConfig syntax errorCheck the subscription or your custom config
no such host / DNS resolve failedName resolution failedA DNS configuration problem, see below
EOFThe far end cut the connectionUnstable or throttled node
context deadline exceededInternal timeoutUsually a very slow node
Stalls after Start initial providerA rule set will not downloadNetwork problem, or a dead rule-set URL

Three typical problems, solved with these two pages

"This site will not open"

Order of investigationOpen the Connections page, visit the site, see whether a new connection appearsIt appears — read the Chain column, is it taking the wrong routeNothing appears — the request never reached the core, check the system proxy is onChain says DIRECT but it should be proxied — add a prepend-rules entryChain shows a node but it still fails — try another node, and check the log for timeouts

"It is slow"

Start by reading the actual transfer rate for that connection on the Connections page.

  • The rate itself is low → a node or line problem; test another node
  • The rate is fine but pages load slowly → possibly slow DNS, or the page pulls resources over several different routes

Switch the log to debug and look at DNS query timings. Large numbers of queries taking hundreds of milliseconds means your DNS configuration needs work.

"The proxy is on but this program still goes direct"

Find the program in the Process column.

  • No connections from it at all → it does not read the system proxy; you need TUN
  • Present, but Chain says DIRECT → a rule sent it direct; read the Rule column to see which one
  • Present, Chain shows a node, but the program still complains → the program's own problem, or the node does not support what it needs (UDP, for instance)

An advanced trick: working backwards from a connection to a rule problem

Suppose api.example.com is going direct and you want it proxied. The Connections page shows GEOIP,CN in the Rule column.

That tells you: the domain resolved to an address in that region, so the GEOIP rule sent it direct.

The fix is to insert a more specific rule before the GEOIP one:

prepend-rules:
  - DOMAIN-SUFFIX,example.com,PROXY

Because rules match top to bottom, putting it first makes it win.

Exporting logs to ask for help

When you need someone else's eyes, supplying useful information makes an enormous difference:

What to include when asking1The relevant log excerptset debug, reproduce the problem, grab a dozen lines either side of the error2A screenshot of the Connections pageshowing Host, Rule and Chain3Your environmentclient version, core version, operating system4What you already triedso nobody makes you repeat it
"It does not work" is essentially impossible to diagnose

In short

  • The Rule and Chain columns together are the fastest way to diagnose routing
  • Switch to debug to see DNS and rule-matching detail, then switch back to info
  • Most "it will not open" problems resolve in one glance at the Connections page: either it never routed, it routed wrongly, or the node itself is down

Related: the three proxy modes and port settings explained.