Du öppnar katalogen, sorterar efter hastighet, väljer en nod som är markerad som online, och klienten ger upp innan den hinner ansluta. Listan ljög inte, exakt. Den rapporterade resultatet av någon annans sondering, från ett annat nätverk, vid en tidigare tidpunkt, mot en tjänst som en frivillig kan stänga av när som helst. Att förstå den klyftan förvandlar en frustrerande jakt till en kort följd av kontroller du kan köra på vilken kandidat som helst.

Vad listan faktiskt mätte

En offentlig katalog håller fält som tidpunkten för senaste kontroll, ett observerat rundturstal, ett sessionsantal och ibland en protokolllista. Vart och ett av dem beskriver den senaste lyckade observationen från projektets eget perspektiv, inte nodens tillstånd när ditt paket anländer.

Färskheten betyder mer än talet. En nod som kontrollerades för fyra minuter sedan och en nod som kontrollerades för fyra timmar sedan kan visa samma gröna markering, och bara en av dem liknar fortfarande det registrerade tillståndet. Leta efter tidsstämpeln, inte färgen.

Frivillig drift lägger till en andra ändringskälla som ingen övervakning kan åtgärda. Operatören startar kanske om en bärbar dator, får slut på bandbredd, byter leverantör eller stänger bara locket. En post i listan är en kandidat, och att behandla den som ett servicenivåavtal är ett kategorifel.

Följ klientens faser, inte snurran

Varje VPN-klient går igenom samma breda sekvens: lös upp namnet, öppna en transportanslutning, förhandla säkerhet, autentisera, och konfigurera sedan tunneln och skicka data. Ett fel i varje fas lämnar olika bevis, och snurran visar inget av dem.

Börja med namnmatchning. Om värdnamnet inte kan lösas upp, har ingenting om nodens tillgänglighet testats, eftersom anslutningen aldrig lämnade din dator. Därefter transporten: ett avvisat eller tidsöverskridet TCP- eller UDP-utbyte säger att slutpunkten inte svarar på den porten, vilket är ett verkligt fynd om noden. Sedan förhandling och autentisering, där ett felaktigt certifikat, en utgången profil eller ett opassande chiffer misslyckas medan noden är helt frisk. Först efter att tunneln konfigurerats kan ett routing- eller DNS-fel förklara det sista steget.

Läs klientloggen med den högsta detaljnivån som fortfarande får plats på skärmen, och notera den sista rad som lyckades. Den raden är där diagnosen börjar, och den är oftast mer informativ än något katalogen visar.

En variabel per försök

Jämför kandidater med samma klient, samma åtkomstnät och samma profilformat, och ändra bara slutpunkten. Annars kan felet vara ditt och du kommer att tillskriva det noden.

Två försök räcker för att fastställa ett mönster, och ett tredje bekräftar det. Om nod A misslyckas i transportfasen och nod B i autentiseringen, har du två orelaterade problem i stället för en föråldrad lista.

När varje nod misslyckas på samma sätt

Ett universellt fel i den första fasen pekar mot din sida: en upplösare som inte kan svara, en lokal brandvägg som blockerar protokollet, eller ett nätverk som bara tillåter webbtrafik. Katalogen kan inte rapportera det, eftersom dess sonderingar inte körs från din plats.

Testa fallet med ett format nätverk medvetet. Vissa åtkomstnät tillåter HTTPS till webben och släpper andra protokoll, vilket får varje kandidat att se död ut medan listan är korrekt. Att jämföra en sidladdning i webbläsaren med ett rått anslutningsförsök skiljer de två situationerna på under en minut.

Läs felet i den fas där det uppstod

Reproducera försöket från en terminal så att faserna syns. De tre kommandona nedan löser upp namnet, testar om porten svarar, och skriver ut förhandlingsraderna från en OpenVPN-profil:

dig +short node.example.net
curl -s --max-time 5 telnet://node.example.net:443
openvpn --config node.ovpn --verb 4 2>&1 | grep -iE "TLS|AUTH|PUSH"

Om porten svarar och förhandlingsraden rapporterar ett certifikatproblem är noden uppe och din profil är föråldrad. Om porten inte svarar alls är posten en kandidat som misslyckades, och att gå vidare till nästa är rätt svar i stället för att felsöka din klient. Notera fasen på en kort rad, och nästa försök börjar med kunskap i stället för hopp.

Relaterade artiklar