Jurnalul text al OpenVPN pune o dată, o oră și o us= valoare pe aceeași linie, iar ultima dintre cele trei este partea pe care cititorii o înțeleg greșit. Este componenta de microsecunde a acelei mărci de timp, tipărită fără umplere cu zerouri. Nu este un identificator de sesiune, un nume de utilizator sau un contor, iar tratarea ei ca atare transformă o fracțiune de secundă într-o concluzie greșită și sigură. Convertiți-o ca fracțiune din secunda afișată și restul liniei rămâne lizibil.

Ce înseamnă cele trei părți ale liniei

Data și secunda întreagă vin primele, iar us= poartă restul sub o secundă. Valoarea 12345 este douăsprezece mii trei sute patruzeci și cinci de microsecunde, adică 0.012345 secunde, deci linia descrie 09:15:30.012345 când ora tipărită este 09:15:30. Contorul repornește la fiecare secundă nouă, așa că o linie ulterioară poate tipări o fracțiune mai mică fără ca vreun ceas să meargă înapoi. Doar marca de timp completă ordonează evenimentele.

2026-11-02 08:41:07 us=4820

Unitatea este o milionime de secundă, iar șase cifre us= acoperă întregul interval de la 0.000000 la 0.999999. Cinci cifre descriu zeci de milisecunde, iar șase descriu sute de milisecunde până aproape de o secundă întreagă. Dacă o conversie produce o fracțiune mai mare decât unu, punctul zecimal s-a mutat și aritmetica este greșită. A face asta manual înseamnă a împărți întregul tipărit la un milion și a-l adăuga la secunda întreagă.

Umplerea este capcana. us=42 este patruzeci și două de microsecunde, scrise ca .000042, nu .42. Completați întregul la șase poziții în stânga înainte de conversie, iar valoarea nu mai arată ca o fracțiune zecimală a cifrelor pe care le vedeți.

Convertirea unei linii fără calculator

Luați secunda tipărită ca bază și tratați us= ca fracțiune. Pentru 09:15:30 cu us=12345 forma zecimală este 09:15:30.012345; pentru us=900000 este 09:15:30.900000. Cifrele de după punctul zecimal sunt întregul completat, niciodată întregul împărțit la o mie. Scrierea mai întâi a formei cu șase cifre evită majoritatea greșelilor.

Dacă analizați jurnale în mărci de timp, analizați data, secunda întreagă și fracțiunea împreună. Un parser care presupune milisecunde va ordona evenimentele greșit cu un factor de o mie, iar rezultatul arată în continuare plauzibil.

Când câmpul lipsește din jurnal

Partea de microsecunde aparține formatului text al jurnalului și apare doar când mărcile de timp detaliate sunt activate. În formatorul de mărci de timp din OpenVPN 2.6 este adăugată când acea ieșire este activă și valoarea stocată nu este zero. Un jurnal fără us= prin urmare nu spune nimic despre ceas sau despre compilare; de obicei înseamnă că verbositatea configurată este prea mică. Verificați configurația înainte de a da vina pe sincronizarea orei.

Setarea se confirmă ușor din configurația serverului. Rulați comanda de mai jos și citiți numărul pe care îl returnează. Ieșirea detaliată a mărcilor de timp apare la verbositate 4, deci o valoare mai mică explică câmpul lipsă fără altă defecțiune. Rularea aceleiași configurații cu --verb 4 arată câmpul de îndată ce demonul repornește cu acel nivel.

grep -nE '^[[:space:]]*verb[[:space:]]+[0-9]' /etc/openvpn/server.conf

Creșterea verbosității adaugă detalii jurnalului; nu îmbunătățește ceasul. După repornire, comparați o linie nouă cu una veche pentru a confirma că formatul s-a schimbat și coborâți nivelul din nou după ce întrebarea a primit răspuns.

Ce nu dovedesc șase cifre

Șase cifre descriu rezoluția, iar rezoluția nu spune nimic despre dacă două gazde sunt de acord asupra orei. Un client și un server pot tipări amândouă microsecunde în timp ce ceasurile lor diferă cu secunde. Când corelați evenimente între mașini, notați fusul orar și orice decalaj cunoscut și preferați un câmp care numește partenerul sau sesiunea oricărei mărci de timp. Două linii care împart o fracțiune nu sunt neapărat aceeași conexiune.

Un colector poate marca fiecare linie la sosire, ceea ce adaugă o a doua marcă de timp care aparține colectorului și nu OpenVPN. Identificați pe care o citiți înainte de a le compara și păstrați linia brută pentru ca comparația să poată fi refăcută.

O valoare us= proaspătă nu dovedește că un client nou s-a conectat, iar una repetată nu dovedește un eveniment duplicat. Câmpurile de partener și de conexiune răspund la aceste întrebări.

Articole similare