Publiczna lista węzłów pokazuje serwer z czasem działania mierzonym w tygodniach, więc go wybierasz, a połączenie zawodzi już przy pierwszej próbie. To nie jest fałszywa reklama; to niewłaściwe pytanie zadane liczbie, która mierzy coś innego. Czas działania zwykle podaje, jak długo proces, kontener lub maszyna działa od ostatniego uruchomienia, i jest to właściwość infrastruktury wydawcy, a nie Twojej drogi do niej. Traktowanie go jako niezawodności to ten sam błąd kategorii co traktowanie licznika kilometrów samochodu jako raportu drogowego.

Co mierzy liczba

Na hoście z nowoczesnym menedżerem usług licznik jest zakotwiczony w zdarzeniu, które naprawdę możesz odczytać: znaczniku czasu wejścia jednostki w stan aktywny albo czasie rozruchu maszyny. Wszystko inne to arytmetyka na tym zakotwiczeniu, a definicja zakotwiczenia różni się między wydawcami. Jedna lista może zerować się przy restarcie demona, inna przy ponownym uruchomieniu maszyny, a trzecia przy ręcznym zerowaniu wykonanym przez operatora, który chciał czystego wykresu.

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

Te trzy polecenia odpowiadają na trzy różne pytania, a katalog pokazujący jedną liczbę nie może powiedzieć, którego z nich użył. Porównywanie surowego licznika z dwóch list nie jest więc żadnym porównaniem, dopóki nie wiesz, na czym każdy z nich się zeruje.

Proces może działać, gdy droga jest zerwana

Demon nasłuchuje. Certyfikat jest ważny. Proces żyje już dwadzieścia trzy dni. Nic z tego nie gwarantuje, że pakiety z Twojej sieci do niego dotrą, bo dostępność jest właściwością całej drogi: łącza nadrzędnego dostawcy, peeringu między jego siecią a Twoją, przeciążenia na wspólnym łączu tranzytowym i zapory przed Twoim własnym połączeniem.

Serwer może też działać i być bezużyteczny z innego powodu. Węzeł, który przyjął znacznie więcej klientów, niż obsłuży jego przepustowość, pokaże długi czas działania i okropne doświadczenie, bo licznik nie mierzy pojemności ani kontencji. To najczęstszy sposób, w jaki węzeł o długim czasie działania rozczarowuje: nic nie jest zepsute, wszystko jest zajęte.

Warto też pamiętać o odwrotnym przypadku. Węzeł zrestartowany godzinę temu może być teraz całkowicie zdrowy, a sortowanie według największej liczby po cichu go wyklucza. Czas działania nie jest oceną jakości, a traktowanie go jako oceny wybiera według wieku, a nie według przydatności.

Świeżość: raport jest starszy niż Twoja próba

Publiczne katalogi to strony generowane z okresowych kontroli, a nie telemetria na żywo. Czas działania, który czytasz, został obliczony przy ostatnim odświeżeniu, a połączenie, którego próbujesz, następuje później. W międzyczasie dostawca może stracić łącze, zmienić certyfikat, przenieść adres lub wycofać węzeł z usługi, a strona będzie nadal pokazywać ostatni znany dobry stan do następnego indeksowania.

Ta luka działa też w drugą stronę. Węzeł zgłoszony jako niedziałający mógł się podnieść kilka minut po wygenerowaniu raportu, więc natychmiastowa ponowna próba na innym węźle nie zawsze jest lepszym wyborem.

Praktyczna zasada jest taka, że każde zgłoszone pole to twierdzenie o przeszłości. Użyj go do zbudowania krótkiej listy, a potem zweryfikuj pomiarem, który sam wykonasz w momencie, który jest dla Ciebie ważny.

Co zamiast tego testować

Zdecyduj, czego potrzebujesz od węzła, i to przetestuj. Jeśli potrzebujesz dostępności, próba połączenia TCP do portu nasłuchu powie Ci w ciągu sekundy więcej niż jakikolwiek licznik. Jeśli potrzebujesz działającego tunelu, wynegocjuj go. Jeśli potrzebujesz użytecznej przepustowości, prześlij coś prawdziwego i zmierz to, bo czas połączenia i przepustowość to różne właściwości, a szybki uścisk dłoni nie mówi nic o drugiej.

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

Powtarzaj test zamiast ufać jednej próbie. Niezawodność to rozkład w czasie i warunkach, a jedno udane połączenie to próbka o rozmiarze jeden. Kilka prób w godzinach, w których naprawdę używasz połączenia, pobije każdy opublikowany czas działania z dużym zapasem.

Czytanie publicznych list węzłów bez bycia wprowadzonym w błąd

Czas działania nie niesie też informacji o tym, czego ludzie zwykle chcą od VPN: ważności certyfikatu, kto obsługuje wyjście, jaka polityka DNS obowiązuje i czy operator przechowuje rejestry połączeń. To odrębne twierdzenia, które wymagają odrębnych dowodów, a długi licznik nie jest dowodem na żadne z nich. Węzeł może być stabilny przez miesiące i nadal być złym wyborem dla wymogu prywatności.

Tam, gdzie lista naprawdę pomaga, to tworzenie krótkiej listy. Sortuj według tego, czego wiesz, że potrzebujesz, odfiltruj węzły w regionach nieistotnych dla zadania, a potem przetestuj pozostałe trzy lub cztery. Zapisuj etap niepowodzenia każdej próby zamiast prostego tak lub nie, bo „uzgadnianie TLS nie powiodło się” i „połączono, ale bez przepustowości” prowadzą do zupełnie różnych wniosków.

Ramy pomiaru wydajności ścieżki stawiają tę samą tezę w ostrzejszej formie: zdefiniuj metrykę, warunki i metodę, zanim zaczniesz zbierać liczby. Zastosowane do listy węzłów oznacza to, że pole czasu działania jest kontekstem. Pomiar, który wykonujesz sam, jest decyzją.

Powiązane artykuły