Windows VPN-fejlkoder: hvilket trin fejlede, og hvad du skal logge
829, 703, 720, 691, 649: hvert tal navngiver et trin, og hvert trin har sine egne beviser. Registrér ét forsøg, sammenlign gateway-loggen, skift ét lag.
Åbn Windows VPN-dialogen efter en fejl, og den giver dig et tal og en sætning, hvor sætningen som regel er den mindst nyttige halvdel. Tallet angiver, hvilket trin i forbindelsen der fejlede, og trinnet bestemmer, hvilken log, hvilken indstilling og hvilket team du skal kigge på næste gang. At gennemgå trinnene i rækkefølge tager cirka ti minutter og forhindrer den velkendte sekvens med at geninstallere adaptere, skifte protokoller og nulstille stakken for at rette en konto, som aldrig fik lov til at ringe op.
Læs tallet som et trin
En oprindelig forbindelse går gennem fire milepæle. Den når serveren og opretter et link, den forhandler sikkerhed, den autentificerer brugeren, og den anvender adressering og routing. En fejl i hver af dem efterlader forskellige beviser, og en kode, der hører til ét trin, fortæller intet nyttigt om de andre.
Den fejl, man skal undgå, er at behandle koden som en alvorlighedsgrad. Et linkfejl og en autorisationsfejl læses begge som "kunne ikke oprette forbindelse", og de har intet andet til fælles. Alvorlighed fortæller, hvor akut noget er; trinnet fortæller, hvad du skal åbne.
| Code family | Stage | Where the evidence lives |
|---|---|---|
| 829, 703 | Link or dial completion | Client event log, remote listener reachability |
| 720 | PPP negotiation and miniport binding | Adapter state, bindings, client log detail |
| 691, 649, 812 | Identity and authorization | Gateway or authentication server decision |
| Connected, no traffic | Addressing, routing and resolution | Route table and resolver configuration |
Trin et: linket og opkaldet
829 betyder, at det underliggende link faldt. Den siger ikke, om den fjernede part holdt op med at svare, om en mellemkasse dræbte sessionen, eller om en politik på klienten lukkede den. En opkaldsfuldførelseskode som 703 er endnu tidligere: forsøget nåede aldrig at få et link, hvilket normalt peger på profilen, tjenestens tilstand eller en lokal politik.
Get-VpnConnection -Name 'Corp' | Select-Object Name,ServerAddress,TunnelType,AuthenticationMethod,ConnectionStatus
Test-NetConnection -ComputerName vpn.example.net -Port 443
Get-WinEvent -LogName Application -MaxEvents 200 | Where-Object ProviderName -match 'RasClient' | Select-Object -First 15 TimeCreated,Id,Message
Hændelsesforespørgslen er den del, folk springer over. En klient-side-post med et tidsstempel og et interface-navn er mere værd end dialogen, fordi den fortæller, om forsøget overhovedet forlod maskinen. Ingen post plus intet svar fra lytteren er et tilgængelighedsproblem, og ingen mængde klientredigering ændrer det.
Hvis den samme profil virker på et andet netværk, stop her. Koden beskriver en vejtilstand snarere end en konfigurationsfejl, og den næste nyttige sammenligning er de to optagelser snarere end endnu en geninstallation.
Trin to: PPP og miniport-bindingen
720 ligger mellem linket og brugeren. Tunnelen kom op, og derefter kunne PPP-laget ikke forhandle en adresse eller en kontrolprotokol, hvilket ofte er et bindingsproblem på klienten snarere end en afvist legitimationsoplysning. Den forskel er hele kodens værdi: den siger, at legitimationsoplysningen aldrig blev nået, så kontoen er ikke den mistænkte.
Get-NetAdapter -IncludeHidden | Where-Object InterfaceDescription -match 'WAN Miniport' | Select-Object Name,Status,ifIndex
Get-NetAdapterBinding | Where-Object ComponentID -match 'ms_pptp|ms_l2tp|ms_sstp|ms_agile' | Select-Object Name,ComponentID,Enabled
At læse de to output er mere informativt end at nulstille noget som helst. En miniport, der er til stede, men ikke startet, eller en protokolbinding, der er deaktiveret af andet software, giver præcis dette trins fejl. Begge kan repareres uden at røre resten af stakken. En fuld nulstilling fjerner derimod adressering og filtertilstand, som intet havde med fejlen at gøre.
Trin tre: identitet og autorisation
691 betyder, at legitimationsoplysningerne blev afvist. 649 betyder, at kontoen ikke har tilladelse til at ringe op, og 812 betyder, at en fjernadgangspolitik afviste forbindelsen. Det er beslutninger, ikke transportfejl, og klienten kan kun rapportere dem.
Beviserne er på den anden side. Spørg gateway-operatøren om forsøget på det tidsstempel og den politik, der matchede; spørg katalogejeren, om kontoen har tilladelse til at ringe op, og om den er i den gruppe, politikken kræver. At skifte tunneltype eller geninstallere klienten kan ikke ændre en beslutning, der blev truffet om en identitet.
En nyttig vane på dette trin er at skrive den nøjagtige kontostreng i sagen, inklusive ethvert domænepræfiks. Et overraskende antal 691-sager er en gemt legitimationsoplysning til det forkerte domæne, og det ses i kontostrengen snarere end i protokolindstillingerne.
Trin fire: forbundet, og intet virker
En forbindelse kan fuldføres og alligevel være ubrugelig. Den har en adresse, klienten rapporterer succes, og hver anmodning fra applikationen timer ud. Intet i dialogen afspejler det, og der er ingen kode at slå op. På det punkt er dialogen færdig, og de nyttige beviser er et andet sted.
Get-NetRoute -DestinationPrefix 10.24.0.0/16 | Select-Object DestinationPrefix,NextHop,InterfaceAlias
Resolve-DnsName files.corp.example.internal
Test-NetConnection -ComputerName 10.24.6.15 -Port 445
Hvis ruten mangler, har serveren ikke skubbet den, eller klienten har tabt den. Hvis ruten findes, og navnet fejler, er opslag problemet. Hvis begge virker, og applikationen stadig fejler, er du forbi tunnelen og inde i applikationens egen konfiguration.
Hold ændringerne til ét lag pr. test. Hver redigering, du laver før næste forsøg, bliver en del af den næste kodes kontekst, og en kode, der beskriver din seneste ændring, er værre end slet ingen kode.
Et forsøg, en ændring, en registrering
Uanset trinnet bør registreringen indeholde koden, meddelelsen, profilnavnet, tidsstemplet og det netværk, du var på. Fem felter, og hvert af dem er allerede foran dig i dialogen eller klientloggen. Det sæt er lille nok til at indsætte i en sag og specifikt nok til, at en anden kan genskabe det.
Sæt derefter det tidsstempel ved siden af registreringen på den anden side. Tabellen nær toppen af denne side siger, hvilket trin der ejer hver uoverensstemmelse. Uden den anden registrering indsnævrer koden kun søgningen; med den er trinnet afgjort. Sammenligningen er det, der gør et tal til en diagnose i stedet for et gæt.
Den vane dækker næsten enhver oprindelig Windows VPN-fejl, og ingen af grenene kræver geninstallation af noget. Dialogen fortalte dig hele tiden, hvilken du havde; arbejdet ligger i at nægte at behandle dem alle som det samme problem.