Paklauskite, ką reiškia viena VPN duomenų rinkinio eilutė, ir atsakymai dauginasi: įmonė, klausytojas, viešas išėjimo adresas, pasiekiamumo rezultatas. Kiekvienas yra teisėtas, o jų maišymas be žymų duoda sumą, kuri skamba tiksliai ir nieko nereiškia. Vienetas yra dizaino sprendimas, ir jį reikia priimti prieš pirmą skaičiavimą. Didžioji dalis painiavos paskelbtoje VPN statistikoje kyla dėl šio žingsnio praleidimo.

Eilutė yra teiginys, o ne daiktas

Kiekviena eilutė teigia ką nors apie pasaulį, o teiginys turi subjektą. Būtent subjekto įvardijimas daro eilutę palyginamą su kita eilute.

Tiekėjo eilutė teigia, kad organizacija siūlo paslaugą. Galinio taško eilutė teigia, kad tam tikras adresas ir prievadas kalba protokolu. Išėjimo eilutė teigia, kad srautas tam tikru metu paliko adresą. Matavimo eilutė teigia, kad zondas iš kažkur stebėjo rezultatą. Keturi subjektai, keturios schemos, o rinkinys, kuris juos maišo be skiriamojo požymio, apskritai negali būti agreguotas.

Skiriamasis požymis yra pigiausia schemos dalis ir dažniausiai praleidžiama.

Pasirinkite vienetą prieš skaičiuojant

Pasirinkite vienetą, kuris atsako į klausimą, kurį iš tikrųjų turite. Galinių taškų skaičiavimas atsako, kiek klausytojų buvo paskelbta; tiekėjų skaičiavimas atsako, kiek organizacijų dalyvavo; išėjimo adresų skaičiavimas atsako, kiek tariamų kilmių egzistuoja.

Šie skaičiai nėra keičiami, o skirtumai dideli. Vienas tiekėjas gali valdyti tūkstančius adresų, o vienas adresas gali talpinti kelis protokolo klausytojus skirtingoms paslaugoms. Todėl adresų skaičius nėra nei viršutinė, nei apatinė tiekėjų skaičiaus riba. Kiekvieną kartą nurodykite vienetą tame pačiame sakinyje kaip skaičių. Skaičius be vieneto yra nuomonė su dešimtainiu kableliu.

UnitThe row assertsWhat a count of it means
ProviderAn organisation offers a serviceHow many operators appear
EndpointAn address and port speak a protocolHow many listeners were advertised
Exit addressTraffic left from an addressHow many apparent origins exist
ObservationA probe saw a resultHow many tests ran, not how many servers

Viešas katalogas pateikia toje paslaugoje paskelbtus dalyvius. Tai nėra visų pasaulio komercinių, organizacinių ir privačių diegimų inventorius, o traktuojant jį taip išpučiama kiekviena išvestinė statistika.

Kilmė priklauso schemai

Eilutės be kilmės negalima patikrinti iš naujo. Užrašykite šaltinio įrašą, surinkimo laiką su jo laiko juosta, stebėjimo metodą ir paskutinio matymo būseną.

Laikykite paskelbtus požymius atskirai nuo stebėtų, nes jie turi skirtingą svorį. Katalogo šalies žyma yra paskelbtas teiginys, o ne serverio fizinės vietos įrodymas. IP priskyrimas identifikuoja tinklo bloką, o ne kiekvieną nuomininką jame, ir ne dabartinį viršuje esančios programos operatorių. Du stulpeliai ir pastaba kiekvieną kartą nugali vieną sujungtą lauką.

{"endpoint": "203.0.113.10:1194/udp", "unit": "endpoint", "advertised_country": "NL",
 "observed_at": "2026-11-03T02:15:00Z", "method": "udp_probe", "last_seen": "2026-11-03"}

Viena JSON eilutė padaro schemą konkrečią ir ją lengviau aptarti nei aprašymo pastraipą. Atkreipkite dėmesį, kad laiko žyma turi laiko juostą, o metodas įvardytas, o ne numanomas.

Pašalinkite dublikatus pagal klausimą

Dublikatai priklauso nuo vieneto. Tas pats adresas su dviem protokolo klausytojais yra viena galinių taškų pora ir dvi paslaugos, o tyliai jį sujungus pasikeičia skaičiavimas.

Pašalinkite dublikatus tame lygyje, apie kurį klausia klausimas, ir užrašykite, kiek neapdorotų eilučių susiliejo į kiekvieną išlaikytą eilutę. Šis santykis pats savaime yra radinys, nes didelis susiliejimas paprastai reiškia, kad šaltinis skelbia įrašus pagal klausytoją. Tiekėjas, valdantis daug adresų, duoda priešingą modelį. Abu teisingi, ir tik užrašytas santykis leidžia skaitytojui juos atskirti.

Tada išsaugokite neapdorotas eilutes. Lentelė be dublikatų yra vaizdas, o galimybė ją atkurti iš neapdorotų duomenų daro rezultatą atkartojamą.

Paskelbkite aprėpties pareiškimą

Nurodykite, kaip buvo atrinkti šaltiniai, kuriuos regionus ar tinklus jie apima ir ko sąmoningai nėra.

Privatūs įmonių galiniai taškai ir neskelbti diegimai niekada nepasitaiko viešuose sąrašuose, todėl nebuvimas kataloge įrodo tik tai, kad katalogas jo neįtraukė. Prieš skelbdami patikrinkite šaltinio sąlygas ir perskirstymo leidimus, o niekada nereikalingus laukus pašalinkite. Galinių taškų tyrimui retai reikia prenumeratorių tapatybių, prisijungimo duomenų ar naršymo istorijos. Jų paskelbimas būtų kitas projektas su kitu pagrindimu.

wc -l vpn-endpoints.jsonl
jq -r '.unit' vpn-endpoints.jsonl | sort | uniq -c
jq -r '.advertised_country' vpn-endpoints.jsonl | sort | uniq -c | sort -rn | head

Šios trys komandos duoda eilučių skaičių, skirstymą pagal vienetus ir aprėpties eskizą pagal paskelbtą šalį. Kai populiacija keičiasi, saugokite datuotas momentines kopijas ir atskirkite pasenusį nuo patvirtinto nebuvimo. Apibrėžtas rinkinys su aiškia populiacija nugali nepagrįstą teiginį, kad jame yra kiekvienas interneto VPN.

Susiję straipsniai