Kysy, mitä yksi VPN-aineiston rivi edustaa, ja vastaukset moninkertaistuvat: yritys, kuuntelija, julkinen lähtöosoite, tavoitettavuustulos. Jokainen on perusteltu, ja niiden sekoittaminen ilman tunnisteita tuottaa summan, joka kuulostaa täsmälliseltä eikä tarkoita mitään. Yksikkö on suunnittelupäätös, ja se on tehtävä ennen ensimmäistä laskentaa. Suurin osa julkaistun VPN-tilaston sekaannuksesta syntyy tämän vaiheen ohittamisesta.

Rivi on väite, ei asia

Jokainen rivi väittää jotain maailmasta, ja väitteellä on subjekti. Juuri subjektin nimeäminen tekee rivistä vertailukelpoisen toiseen riviin.

Palveluntarjoajarivi väittää, että organisaatio tarjoaa palvelun. Päätepisterivi väittää, että tietty osoite ja portti puhuvat protokollaa. Lähtörivi väittää, että liikenne lähti osoitteesta jollain hetkellä. Mittausrivi väittää, että sondi jostain havaitsi tuloksen. Neljä subjektia, neljä skeemaa, ja aineisto, joka sekoittaa ne ilman erottinta, ei ole lainkaan yhdisteltävissä.

Erotin on skeeman halvin osa ja useimmin pois jätetty.

Valitse yksikkö ennen laskentaa

Valitse yksikkö, joka vastaa kysymykseen, joka sinulla todella on. Päätepisteiden laskeminen vastaa, kuinka monta kuuntelijaa ilmoitettiin; palveluntarjoajien laskeminen vastaa, kuinka monta organisaatiota oli mukana; lähtöosoitteiden laskeminen vastaa, kuinka monta näennäistä alkuperää on olemassa.

Nämä luvut eivät ole vaihdettavissa, ja erot ovat suuria. Yksi palveluntarjoaja voi ylläpitää tuhansia osoitteita, ja yksi osoite voi isännöidä useita protokollakuuntelijoita eri palveluille. Osoitteiden laskenta ei siis ole palveluntarjoajien laskennalle yläraja eikä alaraja. Mainitse yksikkö samassa lauseessa luvun kanssa, joka kerta. Luku ilman yksikköä on mielipide desimaalipilkulla.

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

Julkinen hakemisto tarjoaa kyseisessä palvelussa ilmoitetut osallistujat. Se ei ole luettelo kaikista maailman kaupallisista, organisatorisista ja yksityisistä käyttöönotosta, ja sellaisena pitäminen paisuttaa jokaisen johdetun tilaston.

Alkuperä kuuluu skeemaan

Riviä ilman alkuperää ei voi tarkistaa uudelleen. Tallenna lähdetietue, keruuajanhetki aikavyöhykkeineen, havaintomenetelmä ja viimeisen näköhavainnon tila.

Pidä ilmoitetut attribuutit erillään havainnoiduista, koska niillä on eri paino. Hakemiston maatunniste on ilmoitettu väite, ei todiste palvelimen fyysisestä sijainnista. IP-varaus yksilöi verkkoalueen, ei jokaista sen sisällä olevaa vuokralaista eikä päällä olevan sovelluksen nykyistä ylläpitäjää. Kaksi saraketta ja muistiinpano voittavat joka kerta yhden yhdistetyn kentän.

{"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"}

Yksi JSON-rivi tekee skeemasta konkreettisen, ja siitä on helpompi väitellä kuin kuvauksen kappaleesta. Huomaa, että aikaleima kantaa aikavyöhykkeen ja menetelmä nimetään eikä sitä oleteta.

Poista kaksoiskappaleet kysymyksen mukaan

Kaksoiskappaleet riippuvat yksiköstä. Sama osoite kahdella protokollakuuntelijalla on yksi päätepistepari ja kaksi palvelua, ja sen hiljainen yhdistäminen muuttaa laskentaa.

Poista kaksoiskappaleet sillä tasolla, josta kysymys kysyy, ja kirjaa, kuinka monta raakariviä kutistui kuhunkin säilytettyyn riviin. Tämä suhde on itsessään löydös, koska suuri kutistuminen tarkoittaa yleensä sitä, että lähde julkaisee tietueita kuuntelijoittain. Monta osoitetta ylläpitävä palveluntarjoaja tuottaa päinvastaisen kuvion. Molemmat ovat oikein, ja vain kirjattu suhde antaa lukijalle mahdollisuuden erottaa ne.

Säilytä sitten raakarivit. Kaksoiskappaleeton taulukko on näkymä, ja kyky rakentaa se uudelleen raakasyötteestä tekee tuloksesta toistettavan.

Julkaise kattavuusseloste

Kerro, miten lähteet valittiin, mitä alueita tai verkkoja ne kattavat ja mikä puuttuu tarkoituksella.

Yksityiset yritysten päätepisteet ja ilmoittamattomat käyttöönotot eivät koskaan näy julkisissa luetteloissa, joten puuttuminen hakemistosta todistaa vain, että hakemisto ei luetellut sitä. Tarkista lähteen ehdot ja uudelleenjakelun luvat ennen julkaisua ja poista kentät, joita ei koskaan tarvittu. Päätepistetutkimus vaatii harvoin tilaajien henkilöllisyyksiä, tunnistetietoja tai selaushistoriaa. Niiden julkaiseminen olisi toinen projekti, jolla on toinen perustelu.

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

Nämä kolme komentoa antavat rivimäärän, yksikköerittelyn ja kattavuuden luonnoksen ilmoitetun maan mukaan. Säilytä päivätyt tilannekuvat, kun populaatio muuttuu, ja erota vanhentunut vahvistetusta puuttumisesta. Selkeän populaation rajattu aineisto on parempi kuin perusteeton väite, että se sisältää jokaisen internetin VPN:n.

Aiheeseen liittyvät artikkelit