En Windows-tunnel misslyckas och loggen erbjuder numret 10051. Det är WSAENETUNREACH, som rapporteras när en socket-åtgärd inte hittar någon användbar väg till målet. Det är inte ett avvisat lösenord, ett utgånget certifikat eller bevis på att servern såg ett tunnelpaket och avvisade det.

Två olika åtgärder kan producera det i samma session. De betyder olika saker och tillhör olika ägare.

Vad koden rapporterar och vad den inte gör

Felet beskriver ett lokalt beslut: stacken kunde inte hitta en rutt till det begärda målet, så åtgärden lämnade aldrig maskinen. Det är ett påstående om vägen, inte om motpartens åsikt om dina inloggningsuppgifter. Att läsa det som ett autentiseringsfel skickar dig till certifikatarkiv och kontoåterställningar för ett problem de inte kan orsaka. Koden säger inte heller något om huruvida en brandvägg längre fram skulle ha tillåtit paketet, eftersom inget paket skickades.

Behåll loggraderna runt omkring när du registrerar det. Numret ensamt tappar målet, transporten och ögonblicket, och dessa tre fakta är det som gör posten tolkningsbar en vecka senare.

Vilken åtgärd misslyckades, och när

Ett fel medan klienten når VPN:ets yttre ändpunkt är ett annat fall än ett programfel efter att tunneln upprättats. I det första saknas transportvägen till servern eller har tagits bort. I det andra finns tunneln och något inuti den kan inte slå upp eller dirigera målet du bad om. Samma kod, annat lager, annan ägare. Tidsstämpeln i förhållande till anslutningsförsöket avgör vanligtvis vilket du har.

Citera den misslyckade åtgärden i stället för bara felet: anslutning till vilken adress, över vilken transport och vid vilken punkt i sekvensen. Just den formuleringen gör det möjligt för en andra person att återskapa beslutet.

Jämför ändpunkten och adressfamiljen

Registrera det uppslagna målet, transporten och porten. Om namnet returnerar både en IPv4- och en IPv6-adress förklarar en fungerande IPv4-kontroll ingenting om ett misslyckat IPv6-försök. Klienten kanske prövar familjen du aldrig testade, och att tvinga den andra familjen ändrar experimentet i stället för att rätta det.

Resolve-DnsName vpn.example.net -Type A,AAAA
Find-NetRoute -RemoteIPAddress 198.51.100.62
Get-NetConnectionProfile

Ruttförfrågan returnerar den bästa lokala adressen och rutten för det målet i nuvarande tillstånd, så kör den medan felet är närvarande. En frånkopplad adapter, ett ändrat nätverk eller en oväntad rutt ser alla annorlunda ut efter att allt återställts. En andra aktiv tunnel kan också fånga ändpunktsvägen, vilket ger denna kod för en klient och inte för den andra.

Kom ihåg vad ett ruttsvar är: ett lokalt beslut, inte tillstånd att skicka. Det kan inte säga om en brandvägg skulle acceptera datagrammet eller om något lyssnar i den bortre änden.

Andra socketfel och överlämningen

Fel 10054 är en annan rapport, och vid en UDP-mottagning kan det visa en ICMP-port-oåtkomlig kopplad till en tidigare sändning. Det är ett meddelande om en viss målport, inte ett påstående att det inte finns någon rutt, och de två leder till olika utredningar. Att behandla varje socketnummer som en variant av anslutning misslyckades är sättet en saknad rutt 'repareras' genom att installera om en klient.

Överlämningen som är användbar innehåller den exakta koden, den misslyckade åtgärden, ändpunkten och adressfamiljen, den valda rutten och tiden för varje nätverksändring. Rätta det påvisade vägproblemet genom den som äger den konfigurationen. Att byta certifikat eller stänga av motpartskontroll kan inte ge en rutt som inte finns, och båda gör den slutliga diagnosen svårare.

Relaterade artiklar