Timpul de funcționare al unui server VPN: ce nu vă spune acest număr
Contorul măsoară timpul de la pornirea unui lucru, nu accesibilitatea din rețeaua dumneavoastră. Verificați definiția și ora raportului, apoi testați ceea ce aveți nevoie.
O listă publică de noduri arată un server cu timp de funcționare măsurat în săptămâni, așa că îl alegeți, iar conexiunea eșuează de la prima încercare. Nu este publicitate înșelătoare; este întrebarea greșită adresată unui număr care măsoară altceva. Timpul de funcționare indică de obicei de cât timp rulează un proces, un container sau o mașină de la ultima pornire, iar aceasta este o proprietate a infrastructurii editorului, nu a drumului dumneavoastră către ea. A-l trata ca fiabilitate este aceeași eroare de categorie ca a trata odometrul unei mașini ca raport rutier.
Ce măsoară numărul
Pe un host cu un manager de servicii modern, contorul este ancorat de un eveniment pe care chiar îl puteți citi: marca de timp la care unitatea a intrat în starea activă sau ora de pornire a mașinii. Tot restul este aritmetică pe acea ancoră, iar definiția ancorei variază între editori. O listă se poate reseta la repornirea demonului, alta la repornirea mașinii, iar a treia la o resetare manuală făcută de un operator care dorea un grafic curat.
systemctl show -p ActiveEnterTimestamp --value openvpn-server@server
uptime -s
systemctl is-active openvpn-server@server
Cele trei comenzi răspund la trei întrebări diferite, iar un director care afișează un singur număr nu vă poate spune care dintre ele a fost folosită. Prin urmare, compararea unui contor brut din două liste nu este deloc o comparație până nu știți la ce se resetează fiecare.
Un proces poate rula în timp ce drumul este căzut
Demonul ascultă. Certificatul este valid. Procesul este viu de douăzeci și trei de zile. Nimic din toate acestea nu garantează că pachetele din rețeaua dumneavoastră ajung la el, pentru că accesibilitatea este o proprietate a întregului drum: legătura ascendentă a furnizorului, interconectarea dintre rețeaua lui și a dumneavoastră, congestia pe o legătură de tranzit partajată și paravanul din fața propriei conexiuni.
Un server poate fi și pornit și inutil din alt motiv. Un nod care a acceptat mult mai mulți clienți decât poate susține lățimea lui de bandă va arăta un timp de funcționare lung și o experiență îngrozitoare, pentru că contorul nu măsoară capacitatea sau concurența. Acesta este cel mai obișnuit mod în care un nod cu timp de funcționare lung dezamăgește: nimic nu este stricat, totul este ocupat.
Merită reținut și cazul invers. Un nod repornit acum o oră poate fi perfect sănătos acum, iar sortarea după cel mai mare număr îl exclude în tăcere. Timpul de funcționare nu este o notă de calitate, iar tratarea lui ca atare selectează după vârstă în loc de potrivire.
Actualitate: raportul este mai vechi decât încercarea dumneavoastră
Directoarele publice sunt pagini generate din verificări periodice, nu telemetrie în timp real. Timpul de funcționare pe care îl citiți a fost calculat la ultima actualizare, iar conexiunea pe care o încercați are loc după aceea. Între timp, un furnizor poate pierde o legătură, poate schimba un certificat, poate muta o adresă sau poate scoate un nod din serviciu, iar pagina va continua să raporteze ultima stare bună cunoscută până la următoarea parcurgere.
Această diferență funcționează și în sens invers. Un nod raportat ca indisponibil poate să fi revenit la câteva minute după generarea raportului, așa că o nouă încercare imediată pe alt nod nu este întotdeauna alegerea mai bună.
Regula practică este că fiecare câmp raportat este o afirmație despre trecut. Folosiți-l pentru a construi o listă scurtă, apoi verificați cu o măsurătoare pe care o faceți dumneavoastră în momentul care vă interesează.
Ce să testați în schimb
Decideți de ce aveți nevoie de la nod și testați asta. Dacă aveți nevoie de accesibilitate, o încercare de conexiune TCP la portul de ascultare vă spune într-o secundă mai mult decât orice contor. Dacă aveți nevoie de un tunel funcțional, negociați unul. Dacă aveți nevoie de un debit utilizabil, transferați ceva real și măsurați, pentru că timpul de conectare și debitul sunt proprietăți diferite, iar o strângere de mână rapidă nu spune nimic despre a doua.
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
Repetați testul în loc să vă bazați pe o singură încercare. Fiabilitatea este o distribuție în timp și în condiții, iar o conexiune reușită este un eșantion de mărimea unu. Câteva încercări în orele în care chiar folosiți conexiunea vor depăși orice timp de funcționare publicat cu o marjă largă.
Citirea listelor publice de noduri fără a fi indus în eroare
Timpul de funcționare nu aduce nici informații despre lucrurile pe care oamenii le doresc de obicei de la un VPN: valabilitatea certificatului, cine operează ieșirea, ce politică DNS se aplică și dacă operatorul păstrează înregistrări ale conexiunilor. Acestea sunt afirmații separate care necesită dovezi separate, iar un contor lung nu este dovadă pentru niciuna dintre ele. Un nod poate fi stabil luni de zile și totuși o alegere proastă pentru o cerință de confidențialitate.
Acolo unde o listă chiar ajută este la alcătuirea listei scurte. Sortați după ceea ce știți că aveți nevoie, filtrați nodurile din regiuni irelevante pentru sarcină, apoi testați cele trei sau patru care rămân. Păstrați etapa de eșec a fiecărei încercări în loc de un simplu da sau nu, pentru că „strângerea de mână TLS a eșuat” și „conectat, dar fără debit” duc la concluzii complet diferite.
Cadrul de măsurare a performanței drumului face același punct într-o formă mai riguroasă: definiți metrica, condițiile și metoda înainte de a colecta numere. Aplicat unei liste de noduri, aceasta înseamnă că câmpul timpului de funcționare este context. Măsurătoarea pe care o faceți dumneavoastră este decizia.