The Logs page streams the core's runtime output. For failed connections, ineffective rules or subscription errors, the logs almost always contain the clue.

Log levels

The log-level field controls verbosity, from quiet to chatty:

  • silent: nothing.
  • error: errors only.
  • warning: errors + warnings.
  • info (default): the above + one line per connection; fine for daily use.
  • debug: the above + DNS resolution and rule-matching detail; enable temporarily while debugging.

The easiest way to change it without being overwritten by subscription updates is injecting log-level: debug via Mixin, then reverting.

Quick reference

Log fragmentMeaning
[TCP] ... match DomainSuffix using HK01Normal: connection routed by rule through a node.
dial tcp ... i/o timeoutDestination (or node) timed out - unreachable network or dead node.
bind: address already in usePort conflict - see Handling Port Conflicts.
yaml: line N: ...Syntax error at line N of the config.
start tun interface errorTUN failed to start - see TUN Issues.

A longer decoded list lives in Error Logs Explained.

Tip: the page keeps only recent output. Note the timestamp before reproducing an issue so you read the right lines.