Computer >> 컴퓨터 >  >> 체계 >> Windows

Windows 11/10에서 포트 고갈 문제 해결

컴퓨터(TCP 또는 UDP 프로토콜) 간에 이루어진 모든 네트워크 연결은 포트를 통해 이루어집니다. 서비스나 애플리케이션에서 사용하는 진입점이나 게이트웨이라고 상상해 보십시오. 더 많은 클라이언트 연결이 이루어지면 포트 수가 줄어듭니다. 이 게시물에서는 포트 소진 문제를 해결하는 방법을 공유합니다. 문제.

포트에는 동적 포트의 두 가지 유형이 있습니다. 및 정의된 포트 . 동적 포트를 사용하면 여러 클라이언트가 정의된 포트에 연결할 수 있습니다. 웹사이트가 좋은 예입니다. 일반적으로 포트 80이 정의되어 있지만 활성 포트를 사용하여 여러 클라이언트에 서비스를 제공할 수 있습니다. 동적 포트에는 제한이 있으므로 모든 포트가 사용 중일 때 연결이 실패하기 시작합니다. 이를 포트 고갈이라고 합니다.

Windows 11/10의 포트 소모

Windows 11/10에서 포트 고갈 문제 해결

이 문제 해결 가이드의 주요 동기는 포트를 소모하는 프로세스 또는 응용 프로그램을 식별하는 것입니다. 결정했으면 다음 단계는 앱을 수정하는 것입니다.

포트 소진을 식별하는 증상:

1] 도메인 자격 증명으로 머신에 로그인할 수 없지만 로컬 계정으로 로그인하면 작동합니다. 이미 사용된 계정이 작동할 수 있지만 새 계정은 실패합니다. 캐싱 때문에 발생합니다.

2] 그룹 정책 업데이트가 실패하기 시작합니다. 변경을 시도할 때마다 "도메인 컨트롤러와의 네트워크 연결 부족으로 인해 실패했습니다."라는 오류가 표시될 수 있습니다. 일시적일 수 있지만 신호입니다.

3] 파일 공유 또는 네트워크 드라이브에 액세스할 수 없게 됩니다.

4] 애플리케이션이 호스팅되는 서버에 대한 원격 데스크톱이 실패합니다.

다른 표시에는 동적 포트 할당에 실패했다는 메시지와 함께 TCP용 이벤트 뷰어의 이벤트 ID 4227, 4231이 포함됩니다. NetStat 명령은 특정 애플리케이션 등의 TIME_WAIT 상태에 대한 방대한 수의 항목을 표시합니다.

Windows 11/10 및 Windows Server용 NetStat 사용

상승된 권한으로 명령 프롬프트를 엽니다.

다음 명령을 실행하십시오.

netstat -anobq

다음으로 최대 항목이 BOUND인 프로세스 ID를 확인합니다.

PowerShell을 사용한다면 아래 명령어를 사용하여 최대 Bound가 있는 프로세스를 식별할 수 있습니다.

Get-NetTCPConnection | Group-Object -Property State, OwningProcess | Select -Property Count, Name, @{Name="ProcessName";Expression={(Get-Process -PID ($_.Name.Split(',')[-1].Trim(' '))).Name}}, Group | Sort Count -Descendin

많은 경우 클라이언트가 포트를 올바르게 닫지 않습니다. 사용하지 않더라도 이러한 포트는 무료가 아닙니다. 포트 고갈의 가장 큰 원인 중 하나입니다.

자주 필요한 경우 루프에서 Netstat 명령을 사용할 수 있습니다. . 출력은 추세를 모니터링하는 데 사용할 수 있는 텍스트 파일에서 사용할 수 있습니다. 스크립트는 다음과 같습니다.

@ECHO ON
set v=%1
:loop
set /a v+=1
ECHO %date% %time% >> netstat.txt
netstat -ano >> netstat.txt

PING 1.1.1.1 -n 1 -w 60000 >NUL

goto loop

작업 관리자를 사용하여 최대 핸들 찾기

Windows 11/10에서 포트 고갈 문제 해결

이러한 응용 프로그램을 찾는 약간 더 자연스러운 방법은 작업 관리자를 사용하는 것입니다. PowerShell과 Command Prompt는 나름의 장점이 있지만, 그 과정을 빨리 보고 싶다면 이 방법이 더 좋습니다.

  • 작업 관리자를 열고 세부정보 탭으로 전환합니다. .
  • 열을 마우스 오른쪽 버튼으로 클릭하고 "열 선택을 클릭합니다. .”
  • 사용 가능한 옵션에서 "핸들"을 추가합니다.
  • 핸들 열 헤더를 클릭하여 최대 개수로 정렬합니다.

Microsoft는 연결에 실패한 경우 핸들 수가 3000보다 높은지 확인하도록 제안합니다. 그렇다면 응용 프로그램이 범인입니다. 단, OS 서비스는 예외입니다. 다른 사용자의 경우 해당 프로세스를 한 번 중지한 다음 도메인 자격 증명을 사용하여 로그인을 시도하고 성공하는지 확인하세요.

프로세스 탐색기

Windows 11/10에서 포트 고갈 문제 해결

작업 관리자가 도움이 되지 않는 경우 프로세스 탐색기를 사용할 수 있습니다. DLL 버전 문제를 추적하거나 누출을 처리하고 루즈 애플리케이션에 대한 통찰력을 제공하는 데 유용합니다. Process Explorer는 여기에서 다운로드하여 설치해야 합니다. 높은 권한으로 실행해야 합니다.

  1. 열 머리글을 마우스 오른쪽 버튼으로 클릭한 다음 '열 선택'을 선택합니다.
  2. 성능 탭으로 전환하고 핸들 수를 추가합니다. .
  3. 메뉴에서 보기> 하단 창 표시를 클릭합니다. .
  4. 메뉴를 다시 클릭하고 보기> 하단 창 보기> 핸들을 선택합니다. .
  5. 핸들을 내림차순으로 정렬합니다.
  6. 핸들 수가 가장 많은 프로세스를 표시합니다.
  7. 상단 핸들 수가 있는 프로세스 중 하나를 강조표시하려면 클릭하세요.
  8. 하단 패널에 모든 핸들의 유형이 표시됩니다. 포트 또는 소켓에는 일반적으로 "File \Device\AFD" 레이블이 있습니다.

핸들 수가 많은 프로세스를 닫습니다. 응용 프로그램이 다시 생성되면 원인이 될 수 있으며 응용 프로그램을 수정하거나 OEM 개발자에게 수정을 요청해야 합니다. 응용 프로그램에서 요구하여 수정할 수 없는 경우 컴퓨터에서 사용할 수 있는 포트 수를 늘리는 것을 고려해야 합니다. 아래 명령어(예시)는 범위를 변경하고 올릴 수 있습니다.

netsh int ipv4 set dynamicport tcp start=10000 num=1000

설정할 수 있는 최소 시작 포트는 1025입니다. 최대 끝 포트는 65535를 초과할 수 없습니다.

즉, 해결책은 아직 임시적입니다. IT 관리자는 포트 고갈 문제를 해결하기 위해 더 나은 솔루션을 찾아야 합니다. 때로는 여러 대의 서버를 사용하여 포트를 늘릴 수 있지만 이는 완전히 다른 리그입니다.

Windows 11/10에서 포트 고갈 문제 해결