Skip to content

Counters ​

What each number in the statistics means. Counters start at zero when the process starts, never reset and are never saved.

Traffic ​

Kept per inbound, outbound and user, with TCP and UDP apart and summed.

CounterMeaning
uplink, downlink bytespayload each way, without TLS, WebSocket or proxy framing
active connectionsTCP connections open now
total connectionsTCP connections since start
UDP packetsdatagrams each way
UDP sessionsUDP sessions started
refused connectionsinbound only, by reason
authentication failuresinbound only: credentials refused
fallback connectionsinbound only: handed to the fallback
dial failuresoutbound only, by reason
dropped datagramsby reason, where the datagram was lost
dial count and timeoutbound only, with dial_health

A user is counted only after authentication. A connection through a group counts under the group and the member, so add only non-group outbounds for a total. UDP numbers lag by up to a second while a session is busy.

Refusal reasons ​

ReasonMeaning
max_tcp_connectionsthe inbound was full
max_udp_sessionsthe inbound had no room for another UDP session
transport_handshake_failedTLS, WebSocket or another layer failed
proxy_handshake_failedthe proxy handshake failed, with no fallback
handshake_timed_outa handshake hit its deadline
blocked_by_rulea routing block
fallback_unreachablethe fallback could not be reached
otheranything else

Dial failure reasons ​

ReasonMeaning
timeouta deadline passed
refusedthe server refused the connection
unreachableno route
resetthe connection was reset
dns_failedthe name did not resolve
handshake_faileda TLS handshake failed
canceledthe client left first
otheranything else, including a proxy refusing the request

UDP drop reasons ​

ReasonWhereMeaning
blocked_by_ruleinboundthe destination is blocked
routing_failedinboundrouting returned an error
outbound_cannot_carry_udpinboundthe outbound has no UDP
too_large_from_clientinboundover udp_max_datagram_size
session_endedinboundarrived as the session ended
outbound_open_failedoutboundthe outbound's datagram could not be created
send_failedoutboundwriting to the destination failed
too_large_from_outboundoutbounda reply over the size limit
reply_not_deliveredoutbounda reply could not reach the client
rejected_by_natoutbounda reply freedom's NAT filtered out
otherbothanything else

Rule hits ​

One hit per routing decision on the rule that made it, named by position: routing.rules[0], … and default. A UDP session decides once per destination.

DNS ​

Per server: lookups, cache hits, stale answers, queries, total latency, and failures by reason: timeout, no_answer, truncated, server_failed, other.

Live list and online users ​

With tracking on, each open TCP connection and each UDP destination is listed with its inbound, user, source, destination, outbounds, rule, start time and bytes. Closing a UDP entry ends its whole UDP session.

A user is online while any entry is theirs. Their source addresses are listed, and forgotten as soon as their last connection from an address ends.