Felsöka problem med portutmattning i Windows
Någon nätverksanslutning som görs mellan datorer (TCP eller UDP-protokoll), det görs via portarna. Föreställ dig dessa som inträdespunkter eller gateways som används av en tjänst eller ansökan. Eftersom fler klientanslutningar görs, hamnar portarna i räkningen. I det här inlägget delar vi hur du felsöker Hamnutmattning frågor.
Det finns två typer av portar - Dynamiska portar och Definierade portar. Dynamiska portar gör att flera klienter kan ansluta till definierade portar. Webbplatser är ett bra exempel. De har vanligtvis port 80 definierad, men med en aktiv port kan de betjäna flera klienter. Eftersom det finns en gräns för Dynamisk port, börjar anslutningarna misslyckas när alla portar är upptagna. Det benämns hamnutmattning.
Felsök portutmattning i Windows
Det främsta motivet i den här felsökningsguiden är att identifiera vilken process eller applikation som utmattar porten. När du väl har bestämt det är nästa steg att fixa appen.
Symtom för att identifiera hamnutmattning:
1] Kan inte logga in på maskinen med domänuppgifter, men logga in med lokala kontorsarbeten. Det är möjligt att ett redan använt konto kan fungera, men det nya kommer att misslyckas. Det händer på grund av cachning.
2] Grupprincipuppdatering börjar misslyckas. Varje gång du försöker göra ändringar kan du få ett fel som säger "misslyckades på grund av brist på nätverksanslutning med domänkontrollanten" Det kan vara tillfälligt men det är ett tecken.
3] Fildelar eller nätverksenheter blir otillgängliga.
4] Fjärrskrivbord till servern där programmet är värd misslyckas.
Andra tecken inkluderar händelse id 4227, 4231 i händelsevisare för TCP med ett meddelande som tilldelningen av dynamisk port misslyckades. NetStat-kommandot visar ett stort antal poster för TIME_WAIT-tillstånd för en viss applikation, och så vidare.
Använd NetStat för Windows 10 och Windows Server 2016
- Öppna kommandotolken med förhöjda behörigheter.
- Kör kommandot
netstat -anobq
- Därefter letar du efter process ID som har maximala poster som BOUND.
Om du använder PowerShell kan du använda kommandot nedan för att identifiera processen med maximalt Bound.
Get-NetTCPConnection | Group-Object -Property State, OwningProcess | Välj -Property Count, Name, @ Name = "ProcessName"; Uttryck = (Get-Process -PID ($ _ .Name.Split (',') [- 1] .Trim (")) , Grupp | Sortera -Descendin
Många gånger stänger klienterna inte portarna korrekt. Även inte i bruk, dessa portar är inte lediga. Det är en av de största orsakerna till hamnutmattning.
Om behovet är frekvent kan du använda Netstat-kommandot i en loop. Utgången kan bli tillgänglig i en textfil som kan användas för att övervaka trenden. Här är vad manuset ser ut som:
@ECHO ON set v =% 1: slinguppsättning / a v + = 1 ECHO% datum%% tid% >> netstat.txt netstat -ano >> netstat.txt PING 1.1.1.1 -n 1 -w 60000> NUL goto loop
Använd Aktivitetshanteraren för att hitta maximala handtag
En något mer naturlig metod för att hitta sådana applikationer använder Task Manager. Medan PowerShell och Command Prompts har sina egna fördelar, om du vill se processen snabbt är det här en bättre metod.
- Öppna Aktivitetshanteraren och växla till Fliken Detaljer.
- Högerklicka på någon av kolumnerna och klicka på "Välj kolumner.”
- Lägg till "Handtag" från de tillgängliga alternativen.
- Klicka på kolumnrubriken för handtag för att sortera det med maximalt antal.
Microsoft föreslår att om några anslutningar misslyckas, kontrollera om antalet handtag är högre än 3000. Om så är fallet är applikationen skyldig. OS-tjänsterna är dock ett undantag till detta. För andra, sluta den processen en gång och försök sedan logga in med domänuppgifter och se om det lyckas.
Process Explorer
Du kan använda Process Explorer om Task Manager inte hjälper. Det är användbart för att spåra DLL-versionsproblem eller hantera läckor och ge insikt i rouge-applikationer. Process Explorer bör hämtas härifrån och installeras. Se till att du kör det med förhöjda behörigheter.
- Högerklicka på kolumnrubriken och välj sedan "Välj kolumner".
- Byt till fliken Prestanda och lägg till Hantera räkning.
- Från menyn, klicka på Visa> Visa nedre rutan.
- Klicka igen på menyn, välj Visa> Nedre paneldisplay> Handtag.
- Sortera handtagen i fallande ordning.
- Det kommer att avslöja processen (erna) med högsta handtagstalet
- Klicka för att markera en av processerna med topphandtaget.
- Nedre panelen kommer att avslöja typ för alla handtag. Portar eller uttag är vanligtvis med "Fil \ Device \ AFD" -iketter.
Stäng processen med ett stort antal handtag. Om programmet hämtar tillbaka kan det vara orsaken, och du måste fixa programmet eller fråga OEM: s utvecklare för att åtgärda det. Om du inte kan fixa det eftersom applikationen kräver det, bör du överväga att öka antalet portar som datorn kan använda. Nedre kommandot (exempel) kan ändra intervallet och höja det.
netsh int ipv4 sätta dynamicport tcp start = 10000 num = 1000
Den minsta startporten som kan ställas in är 1025. Den maximala ändporten får inte överstiga 65535.
Som sagt lösningen är fortfarande tillfällig. Som IT-administratör måste du hitta en bättre lösning för felsökning av portutmattning. Ibland kan flera servrar användas för att öka portarna, men det är en annan liga helt och hållet.