Hva én rad betyr i et VPN-datasett, og hvorfor det betyr noe
Leverandør, endepunkt, utgangsadresse og tilgjengelighet er fire forskjellige rader. Velg enheten, ta vare på opphavet, publiser det datasettet ikke dekker.
Spør hva én rad i et VPN-datasett representerer, og svarene multipliserer seg: et selskap, en lytter, en offentlig utgangsadresse, et tilgjengelighetsresultat. Hver er legitim, og å blande dem uten etiketter gir en sum som høres presis ut og ikke betyr noe. Enheten er et designvalg, og det må tas før den første tellingen. Mesteparten av forvirringen i publisert VPN-statistikk kommer av å hoppe over dette trinnet.
En rad er en påstand, ikke en ting
Hver rad påstår noe om verden, og påstanden har et subjekt. Det er navngivningen av subjektet som gjør raden sammenlignbar med en annen rad.
En leverandørrad påstår at en organisasjon tilbyr en tjeneste. En endepunktrad påstår at en bestemt adresse og port snakker en protokoll. En utgangsrad påstår at trafikk forlot en adresse på et tidspunkt. En målerad påstår at en sonde fra et sted observerte et resultat. Fire subjekter, fire skjemaer, og et datasett som blander dem uten en diskriminator kan ikke aggregeres i det hele tatt.
Diskriminatoren er den billigste delen av skjemaet og den som oftest utelates.
Velg enheten før tellingen
Velg enheten som svarer på spørsmålet du faktisk har. Å telle endepunkter svarer på hvor mange lyttere som ble annonsert; å telle leverandører svarer på hvor mange organisasjoner som var involvert; å telle utgangsadresser svarer på hvor mange tilsynelatende opphav som finnes.
Disse tallene er ikke utbyttbare, og forskjellene er store. Én leverandør kan drive tusenvis av adresser, og én adresse kan huse flere protokoll-lyttere for ulike tjenester. Et antall adresser er derfor verken en øvre eller nedre grense for et antall leverandører. Oppgi enheten i samme setning som tallet, hver gang. Et tall uten enhet er en mening med et desimaltegn.
| Unit | The row asserts | What a count of it means |
|---|---|---|
| Provider | An organisation offers a service | How many operators appear |
| Endpoint | An address and port speak a protocol | How many listeners were advertised |
| Exit address | Traffic left from an address | How many apparent origins exist |
| Observation | A probe saw a result | How many tests ran, not how many servers |
En offentlig katalog leverer annonserte deltakere i den tjenesten. Den er ikke en fortegnelse over enhver kommersiell, organisatorisk og privat utplassering i verden, og å behandle den slik blåser opp hver avledet statistikk.
Opphavet hører hjemme i skjemaet
En rad uten opphav kan ikke etterprøves. Registrer kildeposten, innsamlingstiden med tidssonen, observasjonsmetoden og status for sist sett.
Hold annonserte attributter atskilt fra observerte, fordi de bærer ulik vekt. En katalogs landetikett er en annonsert påstand, og den er ikke bevis for en servers fysiske plassering. En IP-tildeling identifiserer en nettverksblokk, ikke hver leietaker inni den, og ikke den nåværende operatøren av en applikasjon oppå. To kolonner og et notat slår hver gang ett sammenslått felt.
{"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"}
Én enkelt JSON-linje gjør skjemaet konkret og er lettere å diskutere enn et avsnitt med beskrivelse. Legg merke til at tidsstempelet bærer en tidssone, og at metoden navngis i stedet for å antydes.
Fjern duplikater etter spørsmålet
Duplikater avhenger av enheten. Samme adresse med to protokoll-lyttere er ett endepunktpar og to tjenester, og å slå den sammen i stillhet endrer tellingen.
Fjern duplikater på nivået spørsmålet handler om, og registrer hvor mange rå rader som falt sammen i hver beholdte rad. Det forholdet er i seg selv et funn, fordi stor sammenslåing vanligvis betyr at kilden publiserer poster per lytter. En leverandør med mange adresser gir det motsatte mønsteret. Begge er riktige, og bare det registrerte forholdet lar leseren skille dem.
Behold så de rå radene. En tabell uten duplikater er en visning, og evnen til å bygge den opp igjen fra rådataene er det som gjør resultatet reproduserbart.
Publiser dekningserklæringen
Oppgi hvordan kildene ble valgt, hvilke regioner eller nettverk de dekker, og hva som bevisst mangler.
Private bedriftsendepunkter og ikke-annonserte utplasseringer vises aldri på offentlige lister, så fravær i en katalog beviser bare at katalogen ikke listet det. Sjekk kildens vilkår og videredistribusjonsrettigheter før publisering, og fjern felt som aldri var nødvendige. En endepunktstudie krever sjelden abonnentidentiteter, påloggingsinformasjon eller nettleserhistorikk. Å publisere dem ville være et annet prosjekt med en annen begrunnelse.
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
Disse tre kommandoene gir et radantall, en enhetsfordeling og en skisse av dekningen etter annonsert land. Behold daterte øyeblikksbilder når populasjonen endres, og skill utdatert fra bekreftet fravær. Et avgrenset datasett med en klar populasjon slår en udokumentert påstand om å inneholde hver VPN på internett.