A public node list shows a server with an uptime measured in weeks, so you pick it, and the connection fails on the first attempt. That is not false advertising; it is the wrong question asked of a number that measures something else. Uptime usually reports how long a process, container or machine has been running since it last started, and that is a property of the publisher's infrastructure rather than of your path to it. Treating it as reliability is the same category error as treating a car's odometer as a road report.

What the number measures

On a host with a modern service manager, the counter is anchored to an event you can actually read: the timestamp when the unit entered the active state, or the boot time of the machine. Everything else is arithmetic on that anchor, and the definition of the anchor varies between publishers. One list may reset on a daemon restart, another on a reboot, and a third on a manual reset performed by an operator who wanted a clean graph.

systemctl show -p ActiveEnterTimestamp --value openvpn-server@server
uptime -s
systemctl is-active openvpn-server@server

Those three commands answer three different questions, and a directory listing that shows one number cannot tell you which of them it used. Comparing a raw counter from two lists is therefore not a comparison at all until you know what each one resets on.

A process can be up while the path is down

The daemon listens. The certificate is valid. The process has been alive for twenty-three days. None of that guarantees that packets from your network reach it, because reachability is a property of the whole path: the provider's uplink, the peering between their network and yours, the congestion on a shared transit link, and the firewall in front of your own connection.

A server can also be up and useless for a different reason. A node that has accepted far more clients than its bandwidth supports will show a long uptime and a terrible experience, because the counter does not measure capacity or contention. This is the most common way a high-uptime node disappoints: nothing is broken, everything is busy.

The reverse case is worth remembering too. A node that restarted an hour ago can be perfectly healthy now, and sorting by the largest number quietly excludes it. Uptime is not a quality score, and treating it as one selects for age rather than for fitness.

Freshness: the report is older than your attempt

Public directories are pages generated from periodic checks, not live telemetry. The uptime you read was computed at the last refresh, and the connection you are attempting happens after it. In between, a provider can fail a link, change a certificate, move an address or take a node out of service, and the page will keep reporting the last known good state until the next crawl.

That gap also runs the other way. A node reported as down may have recovered minutes after the report was generated, so an immediate retry against a different node is not always the better choice.

The practical rule is that every reported field is a claim about the past. Use it to build a shortlist, then verify with a measurement you take yourself at the moment you care about.

What to test instead

Decide what you need from the node and test that. If you need reachability, a TCP connection attempt to the listener port tells you more in one second than any counter. If you need a working tunnel, negotiate one. If you need usable throughput, transfer something real and measure it, because connect time and throughput are different properties and a fast handshake says nothing about the second.

nc -vz -w 5 vpn.example.net 1194
curl -sS -o /dev/null -w '%{time_connect} %{time_appconnect} %{time_total}\n' https://vpn.example.net/
mtr -rwc 20 vpn.example.net

Repeat the test instead of trusting a single attempt. Reliability is a distribution over time and conditions, and one successful connection is a sample of size one. A handful of attempts across the hours you actually use the connection will beat any published uptime by a wide margin.

Reading public node lists without being misled

Uptime also carries no information about the things people usually want from a VPN: certificate validity, who operates the exit, what DNS policy applies, and whether the operator keeps connection records. Those are separate claims that need separate evidence, and a long counter is not evidence for any of them. A node can be stable for months and still be a poor choice for a privacy requirement.

Where a list does help is shortlisting. Sort by what you know you need, filter out nodes in regions that are irrelevant to the task, then test the three or four that remain. Keep the failure stage from each attempt rather than a single yes-or-no, because "TLS handshake failed" and "connected but no throughput" lead to completely different conclusions.

The framework for measuring path performance makes the same point in a more rigorous form: define the metric, the conditions and the method before collecting numbers. Applied to a node list, that means the uptime field is context. The measurement you take yourself is the decision.

פֿאַרבונדענע אַרטיקלען